简易数据挖掘过程及结果分析
上一篇已经写了详细的weka教程,这次来分析一下数据处理的套路和处理出来的结果。
本次数据挖掘的使用的数据集是从UCI机器学习知识库中下载的car evaluation,下载地址:http://archive.ics.uci.edu/ml/ ,或者点击car下载。
1.将下载好的格式转化为weka推荐的arff格式
打开car.names,发现它是描述文件内容的文档,有这么一段说了数据的特性:
7. Attribute Values:
buying v-high, high, med, low
maint v-high, high, med, low
doors 2, 3, 4, 5-more
persons 2, 4, more
lug_boot small, med, big
safety low, med, high
打开car.data,发现它是储存数据的二维数组,将其另存为.csv文件,用excel打开,在第一行插入它各行的特性名称
再用weka打开另存为.arff文件即可。
在这里,weka会将doors和persons存为string类型,我们需要打开arff文件,将其改成Nomalize类型,最终结果如下图
2.数据分类
classifier选择J48(C4.5),TestOption选择 十折交叉验证,Start
3.结果分析
Classifier Output中,首先在Result List中Visualize Tree,观察可视化的树
可以看出,树的根节点选择了safety属性,说明safety的信息增益率最大,以它做分裂结点能得到更纯的子结点。接下来,分裂结点选择的属性依次是persons, buying, maint, lug_boot, doors.
观察输出结果:
=== Summary ===
Correctly Classified Instances 1596 92.3611 %
Incorrectly Classified Instances 132 7.6389 %
Kappa statistic 0.8343
Mean absolute error 0.0421
Root mean squared error 0.1718
Relative absolute error 18.3833 %
Root relative squared error 50.8176 %
Total Number of Instances 1728
正确分类样例正确分类的样例:1596个,占92.36%,错误分类的样例:132个,占7.64%。
Kappa Statistic = 0.8343:卡巴统计量,用于评判分类器的分类结果和随机分类的差异度。K=1表示分类结 果完全与随机分类结果相异(理想情况),K=0表示分类结果与随机分类相同(表示分类器没有效果),K=-1表示分类结果比随机分类还要差。所以K越接近于1越好。
Mean absolute error = 0.0421:平均绝对差,用于评判预测标签和实际标签之间的差异度。MAE = 1/n *{SUM ( f(i) – y(i) ) | i <=n } f(i)是分类器的预测值,y(i)是实际值。
Root mean squared error = 0.17181:均方根误差,是预测标签与真实标签偏差的平方和与测试样本数n比值的平方根。它可以很好的反映预测的精密度,值越小,说明预测越精密。
Relative absolute error(相对绝对误差) = 18.3833% 和 Root relative squared error(根相对平方误差)=50.8176%:值越小实验越准确。
Total Number of Instances = 1728 总的样本数为1728。
首先要了解True Positive(真阳性)、False Positive(假阳性)、True Negatives(真阴性)、False Negatives(假阴性)。
预测输出 | 预测输出 | ||
p | p` | ||
真实值 | p | 真阳性(TP) | 假阴性(FN) |
真实值 | p` | 假阳性(FP) | 真阴性(TN) |
对于class是unacc来说,
TP(True Positive):预测结果是unacc,真实标签也是unacc,
FP(False Positive):预测结果是unacc,真实标签不是unacc,
(另外还有TN(True Negative)和 FN(False Negative),分别表示假正元比率和假假元比率)
TPR(True Positive rate): 决定了一个分类器或者一个诊断测试在所有阳性样本中能正确区分的阳性的性能(比例),即为:真阳性/(假阴性+真阳性)
FPR(False Positive rate): 决定了在所有阴性的样本中有多少假阳性的判断,即为:假阳性/(真阴性+假阳性)
Precision:精确率,TP / ( TP + FP),真正元在被分为是正元之中所占的比例,即预测的阳性的正确率。
Recall:召回率,TP / ( TP + FN),真正元在所有被准确分类的元中所占的比例,等于TP Rate。
F-measure:F值是precision和recall之间的调和平均,因为P和R之间往往有此消彼长的关系,如果你想识别出更多的unacc,则FP值会增加,precision会降低,而如果想让误判的结果少一些,使召回率增高,那么识别出的unacc往往会减少,使得精确率降低。
ROC Area:ROC曲线将FP rate和TP rate定义为x 轴和y 轴,因此ROC曲线描述了真阳性(获利)和假阳性(成本)之间的博弈。每一个预测结果在ROC曲线中以一个点代表。ROC area就是ROC曲线下面的面积。可以在result list里选择visualize threshold curve看每一类别(unacc, acc, good, v-good)的ROC曲线
每一个点代表每一次预测中FPR下相应的TPR值。
点击Save储存为arff文件后,可以看到它每一次预测的各种参数。然后总共有27次预测,为什么是27次,我暂时也不知道。。。
本文系作者 @rinbn 原创发布在 噓だ。未经许可,禁止转载。