机器学习笔记-决策树
0x00 系列文章目录
0x01 摘要
决策树,decision tree,是一种通过一层层判断分支来进行分类的算法,这种结构类似一棵倒着的树,所以叫决策树。决策树的树根在最上方,树杈和叶子在下方。
0x02 详细介绍
2.1 决策树
下面是一个简单的决策树的示意图:
决策树最重要的两个问题就是思考特征选择的标准和分割点选择。
谁来做上一级分割点主要的依据是信息熵增益(ID3,还可以选信息增益比ID4.5、CART基尼指数)最大,也就是说选取划分节点的标准是划分后的信息熵越低越好。
需要调整的超参数:
- 决策树的最大深度,他决定了分割点的个数,可以减少模型复杂度弱化过拟合的情况
- 决策树的每个叶子所有的最小样本数
- 决策树的最多叶子数
0x02 实验
鸢尾花数据已经集成到sklearn了 可以直接用
iris = load_iris()
建立模型后可以通过以下方式查看各个特征的重要程度:
print(decision_tree_model.feature_importances_)
特征之和为1,越大的特征值表示预测是作用较大。
0xFE 总结
决策树简单易懂,是一种非参数模型,需要注意的是这种算法容易过拟合,需要对模型的超参数进行调参,还可以使用多个决策树构成随机森林对结果投票、预剪枝、后剪枝等方法进行调优。
关于决策树更多信息可以参考:
深入浅出理解决策树算法(一)-核心思想
深入浅出理解决策树算法(二)-ID3算法与C4.5算法