购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.5 实战:决策树算法在Weka中的实现

3.5.1 Weka探索者图形用户界面

Weka(Waikato Environment for Knowledge Analysis)作为一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理、分类、回归、聚类、关联规则及在新的交互式界面上的可视化。

开始将数据载入Explorer(探索者)并分析,启动Weka进入Weka GUI Chooser画面,从右侧Applications中的Explorer选项进入图形用户界面。

通过 Weka 的主要图形用户界面 Explorer(探索者)的菜单选择或表单填写的方式,Weka的所有功能皆可以被访问到。

在Weka Explorer下方依次有6个不同标签显示了Weka中6个不同的功能(不同的软件版本可能有着不同的标签),分别对应如下情况。

(1)Preprocess(预处理):在此项标签中通过“Open File”载入数据集,对数据集做预处理工作,同时也可使用Filter功能。

(2)Classify(分类):对数据集进行分类操作,并做出预测评估。

(3)Cluster(聚类):学习数据集的聚类,并且测量对应训练数据的聚类的对数似然,一般来说,对数似然越大就说明模型和数据拟合越好。

(4)Associate(关联规则):学习数据的关联规则并对其进行评估,此面板相对于Classify和 Cluster来说更简单,只有3种算法来确定规则,但还没有评估这些规则的手段。

(5)Select attributes(选择属性):通过此标签可以确定之前载入的数据集中相关的属性。这里有几种属性选择的方法可以通过此按钮来实现,并且可以通过右键单击历史列表中的条目来将对应的数据集可视化(Visualize Reduced Data)。

(6)Visualize(可视化):查看不同的二维数据点图并与其互动,并且帮助用户可视化一个数据集,但它并不是指某个分类或聚类模型的结果,而是指数据集本身。

3.5.2 决策树算法在Weka中的具体实现

通过Weka Explorer上的Classify面板,可以选择学习算法,Weka中的分类器包括贝叶斯(Bayes)分类器、决策树(Trees)、规则(Rules)、函数(Functions)、懒惰(Lazy)分类器及一个最终的杂项类(Misc.)分类器。表3-9展示了其中的决策树分类器。

表3-9 Weka中的决策树分类器

续表

从表3-9中的决策树分类器中可以看出 Weka 如何实现了 C4.5算法。启动 Weka Explorer 图形用户界面,在数据预处理标签“Open file”选项下可以从 arff 文件中读取训练数据集,在此,选择 weather nominal 训练集使用 Weka 提供的 J48(C4.5)算法进行测试 [21] ,weather nominal数据如表3-10所示。

表3-10 weather nominal数据

首先,从“Open file”读取该训练集,在 Attribute 一栏中会显示出该数据集的各个属性,同时列出属性的统计特性,并以直方图的方式显示出来。weather nominal 训练集的5个属性分别对应表3-10中的属性,并以直方图统计的方式显示。

通过 Weka Explorer 上的 Classify 面板,选择(Choose)J48(C4.5)算法对该数据集进行处理,结果如图3-10所示。

图3-10 J48(C4.5)算法处理结果

通过处理后的决策树规则为:

从以上文本信息可以得出:若outlook = sunny且humidity = high,则play的分类结果就是 no,结果数为3个;若 outlook = sunny 且 humidity = normal,那么 play 就为yes,结果数为2个。另外由最后两行可以看出,该树共有8个节点,其中叶节点有5个,根据weather nominal训练集J48(C4.5)算法生成的决策树如图3-11所示。

图3-11 根据weather nominal训练集J48(C4.5)算法生成的决策树

Weka通过这些简单的步骤就可以完成一个数据集在J48(C4.5)算法下的分类工作。

3.5.3 使用中的具体实例

以某高校计算机科学与技术专业的《C 语言程序设计》课程成绩为例,具体数据如表3-11所示,有平均上机时间、课本知识掌握程度、上课学习情况及平时成绩等因素。

表3-11 学生成绩综合判定数据集

表3-11共含有167条记录,其中包含111个正例和56个反例,用J48(C4.5)算法对该数据进行分类处理,并在Weka中实现。

通过处理后的决策树规则为:

其中,score 对应平时成绩,study 对应上课学习情况,a、b、c 分别对应好、一般和差,book对应课本知识掌握程度,d、e、f、g分别对应完全掌握、基本掌握、一般和不掌握,time对应平均上机时间。

根据学生成绩综合判定数据集J48(C4.5)算法生成的决策树如图3-12所示。

图3-12 根据学生成绩综合判定数据集J48(C4.5)算法生成的决策树

是否为优的分类结果如下:总数为167,正确数为147,百分率为88.02%,错误数为20,百分率为11.98%。

Weka 通过上面讲的一些步骤,就可以较好地完成一个数据集在 J48(C4.5)算法下的分类工作。以上充分展示了决策树算法在 Weka 中的实现。在现实生活中,类似这样的例子还有很多。只要处理好数据集,选择好算法规则,就可取得相应的结果。 Saw41St17IttcLMfKsd5OfsVMdFw84BKbC4HCbvaLH79AAnJb2K4ydLHuZZkDfZ6

点击中间区域
呼出菜单
上一章
目录
下一章
×