weka入门教程II——分类

读研时转过一篇《weka入门教程》。当时机器学习还没有这么火。Weka其实非常方便,有图形界面,可以识别多种格式,自动切分测试集与训练集等功能。这篇主要介绍图形界面下分类的用法,其他机器学习任务大同小异。

weka可以从官方网站下载:https://www.cs.waikato.ac.nz/ml/weka/

安装就不说了,安装好后运行,Windows在菜单中可以找到,Linux运行weka.sh,主界面上单击Explorer打开分类主界面,如下图:

weka入门教程II——分类_第1张图片

单击Open File

weka入门教程II——分类_第2张图片
我们可以看到Weka支持多种文件,这里重点说一下csv,因为这种格式很容易和excel或者数据库文件进行转换。

CSV文件的第一行为标题行,即每一行的名字。Weka对CSV的支持并不是很友好,很多特殊字符不支持,所以注意将他们替换,我遇到问题的是,和'。内部应该没有用比较完善的开源CSV解决方案。打开文件后所有列名会被列举在Attributes栏里面,选中不需要的列,单击Remove进行删除。然后单击Classify 切换到分类页。在分类页,可以选择分类器和对分类器进行参数调整。单击Choose切换分类器,单击分类器名称所在的文件框可以调出参数调整对话框。常见的分类器Weka都有集成。之前我有文章介绍怎样引入LibSVM,可惜文章丢了,已经没有备份了。不过好消息是,Weka自集成SVM实现,名叫SMO,在Funtions里面。Java通过Weka调用LibSVM也可以参考。

选择好分类器之后,在Start按钮上方,Test options下方有一个下拉框,可以选择把哪个列作为类别。选择好之后就可以开始分类了,单击Start分类,结果会列在Result list中。分类过程有可能很慢,结束之前不能再次分类(当然可以另开一个窗口)。

测试集有几种选项,这里就不多做介绍了。感觉这测试部分有bug,至少在Supplied test set和Percentage split两种模式下有问题,因为我测试中明显发现测试中的数据量比我提供的测试文件的数据量或预保留的数据量少!如果发现数据量不对,可以通过Java调用,感觉是界面的问题,我用Java调用没有问题,只是这样统计也需要代码实现了。

你可能感兴趣的:(weka入门教程II——分类)