1、2.1格式转换方法 原始数据是老师直接给的arff文件,因此不用转换,可以直接导入。但如果原始数据是excel文件保存的xlsx格式数据,则需要转换成Weka支持的arff文件格式或csv文件格式。由于Weka对arff格式的支持更好,这里我们选择arff格式作为分类器原始数据的保存格式。转换方法:假如我们准备分析的文件为“breast-cancer.xlsx”,则在excel中打开“breast-cancer.xlsx”,选择菜单文件-另存为,在弹出的对话框中,文件名输入“breast-cancer”,保存类型选择“CSV(逗号分隔)”,保存,我们便可得到“breast-cancer.csv
2、”文件;然后,打开Weka的Exporler,点击Open file按钮,打开刚才得到的“filename”文件,点击“save”按钮,在弹出的对话框中,文件名输入“breast-cancer”,文件类型选择“Arff data files(*.arff)”,这样得到的数据文件为“breast-cancer.arff”。1 2.2如何建立数据训练集,校验集和测试集 通过统计数据信息,发现带有类标号的数据一共有286行,为了避免数据的过度拟合,必须把数据训练集和校验集分开,目前的拆分策略是训练集200行,校验集86行。类标号01条,而类标号为recurrence-events的数据有85为no-
3、recurrence-events的数据有2条,为了能在训练分类模型时有更全面的信息,所以决定把包含115条no-recurrence-events类标号数据和85条recurrence-events类标号数据作为模型训练数据集,而剩下的86条类标号类no-recurrence-events的数据将全部用于校验数据集,这是因为在校验的时候,两种类标号的数据的作用区别不大,而在训练数据模型时,则更需要更全面的信息,特别是不同类标号的数据的合理比例对训练模型的质量有较大的影响。另外,我们为了做预测测试,我们将分类标号为no-recurrence-events的86行数据集的分类标号去掉,作为预测数
4、据集。 2.3预处理具体步骤 第一步:把breast-cancer.arff文件复制一份,作为总的训练数据集。文件名称为build_model.arff。第二步:从breast-cancer.arff文件数据里面选取分类标号为no-recurrence-events的86行数据作为校验数据集(validate_data.arff)。第三步:从把剩下的breast-cancer.arff文件改名为train_data.arff。第四部:由于老师给的全部都是有类标号的数据集,为了我们方便进行预测测试,我们将分类标号为no-recurrence-events的86行数据集的分类标号去掉,作为预测数据
5、集。2 3. 实验过程及结果截图 3.1决策树分类 用“Explorer”打开刚才得到的“train-data.arff”,并切换到“Class”。点“Choose”按钮选择“tree (weka.classifiers.trees.j48)”,这是WEKA中实现的决策树算法。选择Cross-Validatioin folds=10,然后点击“start”按钮: 训练数据集训练决策树得出的结果 使用不同配置训练参数,得到的实验数据:配置不同的叶子节点的实例个数 实例数/叶节点 4 5 6 2 3 准确率 62.5% 62.5% 62.5% 63.5% 63.5% 结果分析:使用决策树时,每个叶
6、子节点最优的实例个数为2或者3。3 校验数据集校验决策树得出的结果 初步结果分析:使用决策树进行分类,对于已知的86个类标号为no-recurrence-events的数据进行比较准确的分类,准确率达到86%;该数据一般,并且有一定的缺陷,因为该结果是以训练集的低准确率作为前提的。4 数据挖掘实验报告 3.2 K最近邻算法分类 点“Choose”按钮选择“laze-ibk”,这是WEKA中实现的决策树算法。 训练数据集训练KNN得出的结果 K值 1 2 3 5 6 7 8 9 10 4 准确率 66.5% 64% 65% 67% 66.5% 66.5% 66% 66% 67% 68.5% 使用
7、KNN算法分类时,K最优值为4。5 校验数据集校验KNN得出的结果 对使用k=4训练出来的分类模型进行校验的结果,准确率达到88.3%,算是一个比较合理的分类结果。6 数据挖掘实验报告 3.3 朴素贝叶斯分类 点“Choose”按钮选择“bayes”,这是WEKA中实现的决策树算法。 训练数据集训练Nave Bayes得出的结果 得出的准确率为66% 校验数据集校验Na评价结果中准确率仅仅达到79%,结果不是非常让人满意。7 3.4 三类分类方法的校验结果比较 决策树 K最近邻 朴素贝叶斯 校验准确率 86% 88.3% 79% 训练 混淆矩阵 校验 混淆矩阵标准误差 0.4464 0.375
8、6 0.437 比较结果分析:根据上述数据,虽然决策树有比较好的准确率和相对较好的标准误差,但是在这背后,很有可能是以较大错误率作为代价,这点可以从训练混淆矩阵中得到印证;而朴素贝叶斯分类算法的准确率相对较低,而标准误差也较高,综合评价可以得知,当前最好的分类算法是KNN算法,并且它是最优设置参数为k=4。8 3.5 训练最优模型 使用预处理中的buildmodel_data.arff数据文件训练分类模型,算法为k=4的KNN。数据集训练KNN得出的结果 9 使用最终模型对测试集进行预测结果 10 数据挖掘实验报告 4.三种算法在进行测试的性能比较 4.1实验结果 决策树的测试结果:11 KNN测试结果:12 朴素贝叶斯测试结果:比较分析结论:性能分析应该包括两个部分,一个部分是测试速度,另一个部分是测试的质量。由于本次使用所使用的数据量不是很多,在测试速度的对比上相差太少,无法进行准确的分析。而在测试质量上,可以从上述数据中得到,决策树和朴素贝叶斯依然是准确率较低;而相比之下,KNN具有较高的准确率,从性能角度上讲,KNN算法略胜一筹。5.实验总结 本次实验进行比较顺利,使我对如何在Weka中进行分类分析有了更深刻的了解,对Weka中进行分类分析的KNN算法,朴素贝叶斯算法和决策树算法都有了进一步的理解,同时也深刻体会到数据预处理对于数据挖掘的重要性。13 14
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1