Weka 简介
WEKA作为一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理,分类,回归、聚类、关联规则以及在新的交互式界面上的可视化。
Weka是基于java,用于数据挖掘和知识分析一个平台。来自世界各地的java爱好者们都可以把自己的算法放在这个平台上,然后从海量数据中发掘其背后隐藏的种种关系;也许你只是出于对数据的狂热爱好,但也许你的发现会蕴含着无限的商机。
打开Weka,首先出现一个窗口。这是一个很简单的窗体,提供四个按钮:Simple CLI、Explorer、Experimenter、KnowledgeFlow。
Simple CLI 应该是一个使用命令行的界面,有点像SAS的编辑器;
Explorer 是则是视窗模式下的数据挖掘工具(一般都用这个);
Experimenter 运行算法实验,管理算法方案之间的统计检验的环境。
KnowledgeFlow 这个环境本质上和Explorer 所支持的功能是一样的,但他有一个可以拖放的界面,优势是支持增量学习(incremental leaning)
Exlporer
先打开Weka Exlporer感受一下它的强大吧。它有六个标签页,分别是Preprocess、Classify、Cluster、Associate、 Select attributes、Visualize。
在Preprocess中Open一个数据文件(Weka使用的数据文件是.arff,其实是一个文本数据集,格式并不复杂,用notepad打开一看就明白了)。当然也可以Open URL或Open DB。
打开数据文件后,可以使用Filter进行一下过滤,相当于“预处理的预处理”。
Filter提供了许多算法来过滤数据,比如 filters/unsupervised/instance/normalize应该是一个标准化的算法。当然,也可以编写你自己的算法!
这时窗体上已经给出这个数据集的一些基本特征了,比如有多少属性,各属性的一些简单统计量,右下方还给出一些可视化效果比如柱状图。通过这些可以初步了解这个数据集了。但这些都是很直观的可以看出来。
接下来的两个标签页是classify(分类)和cluster(聚类),接触数据挖掘的人对它们一定不会陌生。同样Weka有许多分类和聚类算法可供选择,在这里面称为clasifier和clusterer。
classify 主要是训练和测试关于分类和回归的学习方案
Cluster 主要是从数据中学习聚类、
Associate这是一个用于发掘Associate Rules(关联规则)的模块。对商学略有涉猎的人一定熟知沃尔玛发现了啤酒和尿布销售的关系这一佳话。有了Weka Associate,任何一家超市都可以做到这一点了。将前面导入的数据使用Associator进行发掘,就可以发现其中无数隐藏的关系。Weka提供了Apriori、PredictiveApriori、Tertius等多种关联规则发掘算法,不过我感觉这已经够用了。选定一个算法,进行一些必要的设置,包括支持度上界、下界,每次运算的支持度递减值,等等。另外一个重要的参数:所需要生成的关联规则个数。太不可思议了,以前我们能从海量数据中发现一个关联规则就已经沾沾自喜,现在Weka居然问你想生成多少关联规则!
参数设置完成,点Start,就可以去喝茶了。不一会,10条关联规则已经生成,可以提交给老板了。当然,你还可以分析一下哪些规则比较有用,哪一条有潜在收益,这就需要business sense了。
Select attributes是针对单属性的分析,
Visualize则提供了许多可视化效果,交互式的二维图像。
状态栏
状态(Status)栏出现在窗口的最底部。它显示一些信息让你知道正在做什么。
例如:
如果 Explorer 正忙于装载一个文件,状态栏就会有通知。
提示在状态栏中的任意位置右击鼠标将会出现一个小菜单。 这个菜单给了你两个选:
1. Memory Information. 在 log 栏中显示 WEKA 可用的内存量。
2. Run garbage collector. 强制运行 Java 垃圾回收器, 搜索不再需要的内存空间并将之释放,从而可为新任务分配更多的内存。注意即使不强制运行,垃圾回收也是一直作为后台任务在运行的。