weka 初探

来源:互联网 发布:第四类接触知乎 编辑:程序博客网 时间:2024/06/12 20:14

1实用对象:实现许多标准的机器学习库,适合中等规模的机器学习,超大规模效果不是最好。

2下载地址:http://www.cs.waikato.ac.nz/ml/weka/

3.安装对应java jdk,配置环境变量,并在classpath添加waka.jar(若需连接数据库,需要安装其他库)

4.举例

 DIR\Weka-3-6>java weka.classifiers.bayes.NaiveBayesMultinomial -t spam_train_1000.arff -T spam_test.arff 

#weka.classifiers.bayes.NaiveBayesMultinomial   贝叶斯分类算法

样本格式:
头:relation + attribute
数据:
(单词索引号  出现次数)*k  +(分类索引号 是否垃圾邮件) 
 
@RELATION cs229spam
@ATTRIBUTE f1 NUMERIC
@ATTRIBUTE f2 NUMERIC 
...
@ATTRIBUTE f1447 NUMERIC
@ATTRIBUTE class {spam,non_spam}
@DATA 
%非垃圾邮件

{25 1, 103 1, 116 1, 143 1, 276 1, 333 1, 415 1, 422 1, 601 1, 682 1, 703 1, 752 1, 766 1, 796 7, 848 2, 893 1, 1004 1, 1045 2, 1137 1, 1198 1, 1230 1, 1357 1, 1439 5, 1448 non_spam}
%垃圾邮件
{12 1, 18 2, 33 2, 40 2, 46 1, 62 2, 82 2, 91 2, 135 2, 231 2, 276 2, 280 4, 281 2, 292 5, 294 2, 311 1, 326 1, 337 3, 344 2, 351 1, 377 2, 531 1, 564 2, 614 2, 685 4, 788 2, 796 11, 807 1, 827 2, 831 2, 859 2, 880 4, 896 3, 899 1, 969 2, 998 5, 1004 2, 1028 2, 1055 1, 1063 3, 1088 2, 1135 2, 1151 2, 1155 2, 1183 2, 1240 2, 1322 2, 1371 2, 1377 2, 1431 2, 1444 6, 1446 2, 1448 spam}

具体的arff文件格式说明http://baike.baidu.com/view/1380214.htm


引用:

使用WEKA作数据挖掘,面临的第一个问题往往是我们的数据不是ARFF格式的。幸好,WEKA还提供了对CSV文件的支持,而这种格式是被很多其他软件所支持的。此外,WEKA还提供了通过JDBC访问数据库的功能。
在这一节里,我们先以Excel和Matlab为例,说明如何获得CSV文件。然后我们将知道CSV文件如何转化成ARFF文件,毕竟后者才是WEKA支持得最好的文件格式。面对一个ARFF文件,我们仍有一些预处理要做,才能进行挖掘任务。
.* -> .csv
我们给出一个CSV文件的例子(bank-data.csv )。用UltraEdit打开它可以看到,这种格式也是一种逗号分割数据的文本文件,储存了一个二维表格。
Excel的XLS文件可以让多个二维表格放到不同的工作表(Sheet)中,我们只能把每个工作表存成不同的CSV文件。打开一个XLS文件并切换到需要转换的工作表,另存为CSV类型,点“确定”、“是”忽略提示即可完成操作。
在Matlab中的二维表格是一个矩阵,我们通过这条命令把一个矩阵存成CSV格式。
csvwrite('filename',matrixname) 
需要注意的是,Matllab给出的CSV文件往往没有属性名(Excel给出的也有可能没有)。而WEKA必须从CSV文件的第一行读取属性 名,否则就会把第一行的各属性值读成变量名。因此我们对于Matllab给出的CSV文件需要用UltraEdit打开,手工添加一行属性名。注意属性名 的个数要跟数据属性的个数一致,仍用逗号隔开。
.csv -> .arff 的两种方法
将CSV转换为ARFF最迅捷的办法是使用WEKA所带的命令行工具。
第一种:(命令行)
运行WEKA的主程序,出现GUI后可以点击下方按钮进入相应的模块。我们点击进入“Simple CLI”模块提供的命令行功能。在新窗口的最下方(上方是不能写字的)输入框写上
java weka.core.converters.CSVLoader  filename.csv > filename.arff 
第二种:(界面)
打开Weka的Explorer界面,在preprocess->open file打开iris.csv,通过save可以将CSV文件另存为ARFF文件

例子:
csv文件 1.csv
x,y,z,class
2,5,1,A
2,3,4,B
转化后文件,1.arff
@relation 1


@attribute x numeric
@attribute y numeric
@attribute z numeric
@attribute class {A,B}


@data
2,5,1,A
2,3,4,B