python数据分析与挖掘实战 第九章 拓展练习

版权声明:本文为博主原创文章,未经博主允许不得转载。完整代码都在我的个人博客:ttzx.ltd https://blog.csdn.net/qq_26978413/article/details/78459020

这一章的拓展练习感觉是比较简单的。基本上没有太多让人纠结的地方。没有特征提取和数据规约,让事情简单了不少。当然不包括写出C4.5的决策树,我也没有那么写。

  1. 读取数据,划分训练集和测试集,不用多说。
    这里写图片描述

  2. 虽然题目要求的使用决策树,不过我依然使用了SVC做了一次。很巧合的是,同样也是要把train放大,我这里放大了30倍,但好像这不是我测试中效果最好的一次,不过就这一把,有兴趣各位可以再试。结果如下:
    这是训练集:
    这里写图片描述

    这是测试集:
    这里写图片描述
    大概看看,感觉效果不是特别好,不过我也有做到过效果很好的结果。

3.决策树方法
由于题目要求的是c4.5算法,但是sklearn并没有c4.5的信息增益率的算法,所以我做了另外两个,也就是对应的ID3算法和CART算法的结果。如果有可以使用c4.5算法的办法,请告知我。
先看ID3算法的结果。
训练集(和上面SVC采用的是相同的训练集和测试集):
这里写图片描述

测试集:
这里写图片描述

可视化结果:
这里写图片描述

再看一下CART算法的结果:
训练集:
这里写图片描述

测试集:
这里写图片描述

决策树可视化:
这里写图片描述

结论:
由此看出决策树在分类过程中,虽然过程不同,但结果相似。
而我多次的试验中发现,ID3和CART两个算法下,结果也不是绝对相同的,也出现过分类结果不同的情况。请加以注意。
而SVC和决策树算法相比,效果就差了不少。当然,我这里给出的结果中,决策树法好像训练集是全部正确的结果,但这只是偶然结果,多数时候并不会全部正确。但总体而言,正确率是高于SVC的。
而SVC影响正确率有一个关键就是数据值的放大倍数,合适的放大倍数会使得结果的准确率提高很多。

展开阅读全文

没有更多推荐了,返回首页