阿里音乐流行趋势预测大赛一起做-(2)weka初识

原创 2016年04月09日 20:59:30

本次比赛第一赛季我们团队大赛先用weka对数据进行预处理。weka是一款开源的,免费的,基于JAVA环境下开源的机器学习(machine learning)以及数据挖掘(data mining)软件。我非常喜欢这个软件,很容易上手,功能很强大,也不需要很多的编程,图形化做的比较好。打算在数据预处理上主要使用weka。

weka下载安装

weka软件下载网址,根据自己的操作系统选择Windows还是Mac,32位还是64位,强烈推荐装64位系统,因为赛题数据较大,约500M,如果想一次性读取的话,大概需要3.5G内存,而32位系统最大的物理寻址内存也就是4G,再加上系统其它占用,无法一次性导入这么大的数据。当然你也可以分批次导入,这样麻烦一些,需要自己研究一下。

软件下载

在此选择版本的时候需要注意一下,分两种:stable version和developer version,两者的区别是后者多了个package manager,可以安装最新的包;还有就是根据你电脑是否有JAVA 虚拟机选择版本,如果你电脑本身没有装过JAVA虚拟机,就要选择如下红色方框内版本:
这里写图片描述
如果电脑里已经装过了JAVA虚拟机,选择红色方框下面那个下载安装即可。下载好后安装基本和普通软件安装方法一致。

设置环境变量

安装后需要设置一下环境变量:
首先你应该知道你jdk装在哪了!
我的电脑>右键>属性>高级>环境变量,在系统变量下方 点新建。
1.新建JAVA_HOME
变量名:JAVA_HOME
变量值:jdk的安装路径至根目录,比如说你装到了d盘,文件夹的名字是jdk1.7.5 那么这里你就粘贴D:\jdk1.7.5 不要加;号,一定是根目录,也就是看到第一个文件夹是bin的目录。大小写看清楚了,别乱加符号,写好点确定。
2.添加path变量
在系统变量里找到path变量双击点开,别的不要动,点到变量值里按键盘Home键,确保光标在第一个位置,写%JAVA_HOME%\bin;记得打; 分号,还要提示全是英文状态的符号前后没有什么空格。我只是为了你方便看清楚。
3.新建classpath变量
这个变量可配可不配
在系统变量里点新建
变量名: classpath
变量值: .;
变量值我就写的 点分号 就可以了! 有确定的就点确定!ok配好了!

weka更改默认内存,导入大文件

点击我的电脑>所有程序>weka3.6.13>weka3.6,就打开了weka。
注意还有一个图标weka3.6(with console)是命令行界面,我们初学者一般不用。
打开weka3.6后的界面如下:
这里写图片描述
我们选择红框里的第一项:explorer,打开后,我们就要导入数据,如下选择preprocess用来做数据预处理,然后点击open file打开要导入的文件,这里我们选择主办方提供的500M数据mars_tianchi_user_actions.csv
这里写图片描述
导入后可能会出现 out of memory错误,这是因为weka默认的内存不足引起的,具体查看方法:
首先找到weka的安装路径,我的安装路径是D:\Program Files\Weka-3-6,路径下有个RunWeka.ini文件,用记事本打开,里面有一行代码:
maxheap=1024M,这个是我的系统weka给我分配的内存,操作系统不同,weka版本不同这个默认内存可能不一样。由于weka软件运行本身也需要内存,所以虽然数据是500M,但是打开处理这500M数据需要的内存远不止500M。所以我们要更改此处默认设置,由于我的电脑是8G内存,我给weka分配5G内存,我将此处代码更改为maxheap=5120M。更改完后保存该文档并关闭。
更改weka内存后重新打开mars_tianchi_user_actions.csv文件,慢的话可能需要1~3分钟才能打开。打开后鼠标移动到最下面的任务栏,右键点击后出现memory information,如下图
这里写图片描述
左键单击后,等候几秒任务栏就会出现内存使用信息,如下图
这里写图片描述
free为目前空闲的内存,total为目前使用的内存,两者相减发现仅仅执行打开操作,已经使用了将近1G的内存。后面做其他的处理还需要消耗内存,所以默认内存大小设置稍微大一些比较好。

weka示例简析

我们简单介绍一下weka的数据可视化,让大家对weka的简便易用有个直观了解。
我们选择open file,打开mars_tianchi_songs文件,出现如下界面
这里写图片描述
我们以publish_time为例来说明,因为song_id,artist_id取值太多,右下角无法显示。两个红框里的distinct表示publish_time里包含的不同数值的个数,unique表示某数值仅出现一次的这种情况数值个数。
再来看右下角的图,横坐标表示publish_time的取值范围,纵坐标表示,该值重复出现了多少次。注意红框里标注的class:gender表示将每个纵坐标内的gender进行了统计显示。gender在这里表示男,女,乐队组合,分别用红,绿,蓝三种颜色表示(不一定对应上述的男,女,乐队组合)。假如绿色表示男,红色表示女,蓝色表示乐队组合。此图给出的信息是:
1. publish_time取值范围从19630322到20160207。时间跨度挺大。
2. 从左到右看,早期的时候只有绿色,后来逐渐出现了红色,然后才出现了蓝色。说明gender这个字段对publish_time还是有一定的辨别效果的。
当然,也可以选择class的选项为其他几个字段。
实际上,此处存在一个问题,publish_time是日期类型,而weka默认的类型为numeric,也就是数字型。这点需要做修改。这些后续再介绍。

总结

至此,我们已经会用weka对数据做一个基本的可视化操作了。不难发现,weka对数据预处理的能力非常强大,不像Python,R那样需要写函数,再作图。weka直接点点点就帮我们都做好啦,实在太方便啦。

相关文章推荐

天池大坑-阿里音乐尝试(1)

简单尝试一下阿里音乐,最多做到baseline吧,主要是想熟悉一下流程和工具 so,第一步将数据导入SQL中,百万级有Mysql就可以了,还是习惯windows下的XAMPP+NaviCat,简单好...

阿里音乐流行趋势预测大赛一起做-(7)初赛总结之用户分类

音乐预测大赛的初赛今天轰轰烈烈地谢幕了,先来看看排名前10的队伍吧    我们队的成绩在切换数据后一直没有特别大的长进,虽然成绩没有达到预期,但是初赛这些天还是涌现并实现了一些不错的思路,有一些还...

深度学习-LSTM网络-代码-示例

一、 LSTM网络原理 要点介绍 (1)LSTM网络用来处理带“序列”(sequence)性质的数据,比如时间序列的数据,像每天的股价走势情况,机械振动信号的时域波形,以及类似于自然语言这种本身带有...

阿里音乐流行趋势预测大赛一起做-(7)初赛总结之用户分类

音乐预测大赛的初赛今天轰轰烈烈地谢幕了,先来看看排名前10的队伍吧 我们队的成绩在切换数据后一直没有特别大的长进,虽然成绩没有达到预期,但是初赛这些天还是涌现并实现了一些不错的思路,有一些还没有...

Python - MySQL 数据库 与 CSV 读取

到 http://www.lfd.uci.edu/~gohlke/pythonlibs/ 下载whl安装包,pip install  *.whl 安装 # -*- coding: utf-8 -*...

阿里音乐流行趋势预测大赛—浅尝辄止(二)

本篇博文接上一篇博文浅尝辄止(一)的内容,这里主要介绍竞赛给的数据中时间戳的处理方法,时间戳是形如“1426406400”形式的一组时间计数,我们需要将其转化为正常的时分秒的形式,然后再将转化后的结果...

阿里音乐流行趋势预测大赛一起做-(5)温故知新

比赛进行到现在已经有十天了,我们队伍已经进入瓶颈期了,具体表现就是: 1、每次线下预测结果都感觉不错,应该可以提升成绩吧,至少和现在成绩相当吧,结果10点成绩出来就傻眼了,成绩一直掉掉掉。 2、黔...

阿里音乐流行趋势预测大赛一起做-(2)weka初识

本次比赛第一赛季我们团队大赛先用weka对数据进行预处理。weka是一款开源的,免费的,基于JAVA环境下开源的机器学习(machine learning)以及数据挖掘(data mining)软...

阿里音乐流行趋势预测大赛一起做-(1)介绍

动机 去年在同学推荐下参加了阿里的“资金流入流出预测大赛”,当时对数据挖掘的了解仅存在模糊的概念上,看了那本《大数据时代》后热血沸腾了几天,趁着这三分钟热度还没冷,就在什么都不懂的情况下报名开始...

阿里音乐流行趋势预测大赛一起做-(3)思路

最近几个月忙着写论文,比赛给抛到脑后了(汗颜。。)。昨天阿里给了短信通知,说今天可以提交成绩了,于是抓紧搞起,结果也没赶上截止时间(早上10点)提交。无论如何今天也要提交一次成绩试试水。比赛的详细思路...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:阿里音乐流行趋势预测大赛一起做-(2)weka初识
举报原因:
原因补充:

(最多只允许输入30个字)