Weka中的C4.5的使用_第1页
Weka中的C4.5的使用_第2页
Weka中的C4.5的使用_第3页
Weka中的C4.5的使用_第4页
Weka中的C4.5的使用_第5页
已阅读5页,还剩9页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Weka 中 C4.5 的使用 林联锋 0809853F-II20-0014 2008-10-16 一、C4.5 以及 Weka的介绍 .1 二、Weka 的分类功能的使用 .2 2.1、Weka 界面简介 .2 2.2、Weka 接受的数据格式 .3 2.3、Weka 分类实例演示 .5 2.3.1、数据准备 .5 2.3.2、训练分类器 .6 2.3.3、建模结果 .10 2.3.4、模型运用 .12 三、总结. .14 四、附件: .14 一、C4.5 以及 Weka的介绍 由于 ID3 算法在实际应用中存在一些问题,于是 Quilan 提出了 C4.5 算法,严格上说C4.5 只能是 ID3 的一个改进算法。 C4.5 算法继承了 ID3 算法的优点,并在以下几方面对 ID3 算法进行了改进: 1、用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足; 2、在树构造过程中进行剪枝; 3、 能够完成对连续属性的离散化处理; 4、能够对不完整数据进行处理。 C4.5 算法有如下优点:产生的分类规则易于理解,准确率较高。其缺点是:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。此外,C4.5只适合于能够驻留于内存的数据集,当训练集大得无法在内存容纳时程序无法运行。 这里重点介绍对 C4.5 算法实现的一个著名软件 Weka。 Weka 的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis ),是一款免费的,非商业化(与之对应的是 SPSS 公司商业数据挖掘产品-Clementine )的,基于 JAVA 环境下开源的机器学习以及数据挖掘软件。它和它的源代码可在其官方网站下载。有趣的是,该软件的缩写 WEKA也是 New Zealand 独有的一种鸟名,而 Weka 的主要开发者同时恰好来自 New Zealand 的University of Waikato。 WEKA 作为一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学1习算法,包括对数据进行预处理,分类,回归、聚类、关联规则以及在新的交互式界面上的可视化。而开发者则可使用 Java 语言,利用 Weka 的架构上开发出更多的数据挖掘算法。本文将关注 Weka 的分类功能,并用实际例子对这一功能进行演示,希望可以对加深对 Weka的使用以及了解 C4.5 在决策中的重要作用。 二、Weka 的分类功能的使用 2.1、Weka界面简介 图 2.1 图 2.1 为 Weka 的启动后的界面,非常简介,我们将会用到界面中 Application选项下的 Explorer 功能。界面如 图 2.2: 2图 2.2 “ open file” 按钮可以让用户导入需要分析的数据文件。这里不做具体的操作介绍,详情请见:http:/www.cs.waikato.ac.nz/ml/weka/ 2.2、Weka接受的数据格式 跟多数电子表格或者数据分析软件一样,Weka 所处理的数据集如 图 2.3 的一个二维数据表格形式,文件以(.arff) 格式结尾。 3 图 2.3 这里我们要介绍一下 WEKA 中的术语。表格里的一个横行称作一个实例(Instance ),相当于统计学中的一个样本,或者数据库中的一条记录。竖行称作 一个属性(Attrbute ) ,相当于统计学中的一个变量,或者数据库中的一个字段。这样一个表格,或者叫数据集,在 WEKA 看来,呈现了属性之间的一种 关系(Relation) 。上图中一共有 14 个实例, 5 个属性,关系名称为“weather” 。 识别 ARFF 文件的重要依据是分行,因此不能在这种文件里随意的断行。空行(或全是空格的行)将被忽略。以“%” 开始的行是注释, WEKA 将忽略这些行。如果你看到的“weather.arff” 文件多了或少了些“%” 开始的行,是没有影响的。 除去注释后,整个 ARFF 文件可以分为两个部分。第一部分给出了头信息( Head information),包括了对关系的声明和对属性的声明。第二部 分给出了数据信息(Data information ),即数据集中给出的数据。从“data” 标记开始,后面的就是数据信息了。比如下面是我们将要分析的数据:(bank.arff): relation bank attribute age numeric attribute sex MALE,FEMALE attribute region INNER_CITY,RURAL,TOWN,SUBURBAN attribute income numeric attribute married YES,NO attribute children YES,NO attribute car YES,NO attribute mortgage YES,NO attribute pep YES,NO data 48,FEMALE,INNER_CITY,17546,NO,YES,NO,NO,YES 40,MALE,TOWN,30085.1,YES,YES,YES,YES,NO 51,FEMALE,INNER_CITY,16575.4,YES,NO,YES,NO,NO 23,FEMALE,TOWN,20375.4,YES,YES,NO,NO,NO 57,FEMALE,RURAL,50576.3,YES,NO,NO,NO,NO 57,FEMALE,TOWN,37869.6,YES,YES,NO,NO,YES 22,MALE,RURAL,8877.07,NO,NO,NO,NO,YES 58,MALE,TOWN,24946.6,YES,NO,YES,NO,NO 37,FEMALE,SUBURBAN,25304.3,YES,YES,YES,NO,NO .【详细部分见附件 bank.arff 文件】 4 2.3、Weka分类实例演示 2.3.1、数据准备 首先我们导入要分析的数据文件 bank.arff 到 Weka 中,如图 2.4: 图 2.4 从图中我们可以看出关于这个银行员工的信息:名字,性别,地区等。并对年龄作出一个简要的统计:包括最小,最大以及平均年龄等。右下角给出了年龄分布的直方图。当然用户可以查看员工的其他信息,点击“visualize All”, 可以得到下图关于员工全部信息的统计: 5 图 2.5 2.3.2、训练分类器 把选项卡从 process 切换到 classify,如图 2.6: 6 图 2.6 这一步骤我们要开始训练分类器。选择“Choose ”按钮,我们开始设置 classfiy的属性,如图 2.7: 图 2.7 然后选择“Filter ”按钮来过滤掉一些我们不需要的算法。如图 2.8: 7 图 2.8 我们数据集的输入属性中有“Binary” 型(即只有两个类的分类型)和数值型的属性,而 Class变量是“Binary” 的;于是我们勾选“Binary attributes”“Numeric attributes” 和“Binary class”。点“OK” 后回到树形图,可以发现一些算法名称变红了,说明它们不能用。选择“trees”下的“J48”,这就是我们需要的 C4.5 算法,见 图 2.9: 图 2.9 选择“J48 ”之后回到 Classifiy 选项卡页面,可以看到 Choose 旁边有“J48 C 0.25 M 2”其中 C 和 M 为其参数设置。当然也可以修改其参数设置,点击 Choose 右边的文本框,如 图 2.10: 8 图 2.10 这里我们选择默认值。接下来我们设置测试选项。选择 Clissify 选项卡中的“Test Option”。我们没有专门设置检验数据集,为了保证生成的模型的准确性而不至于出现过拟合(overfitting )的现象,我们有必要采用 10 折交叉验证(10-fold cross validation )来选择和评估模型。见 图 2.11: 图 2.11 92.3.3、建模结果 点“Start” 按钮开始让算法生成决策树模型。很快,用文本表示的一棵决策树,以及对这个决策树的误差分析等等结果出现在右边的“Classifier output” 中。同时左下的“Results list”出现了一个项目显示刚才的时间和算法名称。如果换一个模型或者换个参数,重新“Start”一次,则“Results list”又会多出一项。 我们看到“J48” 算法交叉验证的结果如下图: = Run information = Scheme: weka.classifiers.trees.J48 -C 0.25 -M 2 Relation: bank Instances: 300 Attributes: 9 age sex region income married children car mortgage pep Test mode: 10-fold cross-validation = Classifier model (full training set) = J48 pruned tree - children = YES | income 13106.6 | | | | | mortgage = YES: YES (12.0/3.0) | | | | | mortgage = NO | | | | | | income 18923: NO (10.0/3.0) | | | married = NO: NO (22.0/6.0) | income 30099.3: YES (59.0/7.0) children = NO | married = YES | | mortgage = YES | | | region = INNER_CITY | | | | income 39547.8: NO (4.0) | | | region = RURAL: NO (3.0/1.0) | | | region = TOWN: NO (9.0/2.0) | | | region = SUBURBAN: NO (4.0/1.0) | | mortgage = NO: NO (57.0/9.0) | married = NO | | mortgage = YES | | | age 28: YES (5.0/1.0) | | | age 39: NO (11.0) | | mortgage = NO: YES (20.0/1.0) Number of Leaves : 17 Size of the tree : 31 10 Time taken to build model: 0.05 seconds = Stratified cross-validation = = Summary = Correctly Classified Instances 206 68.6667 % Incorrectly Classified Instances 94 31.3333 % Kappa statistic 0.3576 Mean absolute error 0.379 Root mean squared error 0.4816 Relative absolute error 76.2791 % Root relative squared error 96.6145 % Total Number of Instances 300 = Detailed Accuracy By Class = TP Rate FP Rate Precision Recall F-Measure ROC Area Class 0.536 0.185 0.712 0.536 0.612 0.683 YES 0.815 0.464 0.673 0.815 0.737 0.683 NO = Confusion Matrix = a b - classified as 74 64 | a = YES 30 132 | b = NO 简要介绍下其中的某些数据: Correctly Classified Instances 206 68.6667 % 也就是说这个模型的准确度只有 69%左右。也许我们需要对原属性进行处理,或者修改算法的参数来提高准确度。 = Confusion Matrix = a b - classified as 74 64 | a = YES 30 132 | b = NO 这个矩阵是说,原本“pep” 是 “YES”的实例,有 74 个被正确的预测为“YES”,有 64 个错误的预测成了“NO” ;原本 “pep”是“NO” 的实例,有 30 个被错误的预测为“YES”,有 132个正确的预测成了“NO” 。74+64+30+132 = 300 是实例总数,而(74+132)/300 = 0.68667 正好是正确分类的实例所占比例。这个矩阵对角线上的数字越大,说明预测得越好。 右键点击“Results list” 刚才出现的那一项,弹出菜单中选择“Visualize tree” ,新窗口里可以看到图形模式的决策树。如 图 2.12: 11 图 2.12 2.3.4、模型运用 现在我们要用生成的模型对那些待预测的数据集进行预测了。注意待预测数据集和训练用数据集各个属性的设置必须是一致的。即使你没有待预测数据集的 Class 属性的值,你也要添加这个属性,可以将该属性在各实例上的值均设成缺失值。 在“Test Opion”中选择“Supplied test set”,并且“Set”成你要应用模型的数据集,这里是“bank-new.arff” 文件。 现在,右键点击“Result list”中刚产生的那一项,选择“Re-evaluate model on current test set”。右边显示结果的区域中会增加一些内容,告诉你该模型应用在这个数据集上表现将如何。如果你的 Class 属性都是些缺失值,那这些内容是无意义的,我们关注的是模型在新数据集上的预测值。 = Re-evaluation on test set = User supplied test set Relation: bank-new Instances: unknown (yet). Reading incrementally Attributes: 9 = Summary = Total Number of Instances 0 Ignored Class Unknown Instances 50 = Detailed Accuracy By Class = TP Rate FP Rate Precision Recall F-Measure ROC Area Class 0 0 0 0 0 ? YES 0 0 0 0 0 ? NO = Confusion Matrix = a b - classified as 12 0 0 | a = YES 0 0 | b = NO 现在点击右键菜单中的“Vi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论