从训练数据划分,到分类器性能评价均没有使用scikit-learn中的方法
代码
具体代码:https://github.com/kai123wen/MachineLearningAlgClass/tree/master/ID3
鸢尾花数据下载地址:https://archive.ics.uci.edu/ml/datasets/Iris
代码中有着详细的注释,直接看就好
tree.py
import
值得注意的问题
下面我放了几个网址,因为这些网址写的都很好了,没必要再复制一遍。看明白了这些网址,也就明白了对应的问题
ID3算法介绍:
参考:https://zhuanlan.zhihu.com/p/26760551
决策树中连续值的处理:
参考:
- https://blog.csdn.net/Leafage_M/article/details/80137305
- https://blog.csdn.net/u012328159/article/details/79396893
决策树中剪枝处理
由于处理鸢尾花数据没有必要进行剪枝,因此代码中没有这一部分内容,但是决策树的剪枝还是要知道的
参考:https://www.jianshu.com/p/794d08199e5e
confusion matrix 构建
关于confusion matrix
confusion matrix 在机器学习中常用来评价监督学习算法的性能
参考:https://www.geeksforgeeks.org/confusion-matrix-machine-learning/
通过 confusion matrix 计算 precision 、recall
注意confusion matrix用于分类问题时,有的分类问题是二分类的(如判断一种动物是否属于鱼),有的问题是多分类的(如鸢尾花的判断),两种问题虽然本质是一样的,但是在实现confusion matrix时还是有些不同
参考:https://www.python-course.eu/confusion_matrix.php