一、什么是决策树
- 非参数学习算法
- 解决二分类问题
- 天然解决多分类问题
- 也能解决回归问题(将叶子节点中所有样本的平均值作为预测值)
二、信息熵
熵越大,数据越不稳定
熵越小,数据越稳定
pi表示这群样本中第i类样本所占的比例
例如:{1,0,0}
H = - 1 * log(1) = 0(最稳定,一定会取1)
from sklearn.tree import DecisionTreeClassifier
#树最高深度,熵(默认是基尼系数)
dt_clf = DecisionTreeClassifier(max_depth=2, criterion="entropy")
dt_clf.fit(X,y)
三、基尼系数
性质和信息熵相同
四、CART
- scikit-learn中实现决策树的方式:cart
- 复杂度:
–预测:O(logm)
–训练:O(nmlogm)
- 对决策树剪枝:降低复杂度,解决过拟合
1、利用参数max_depth可以解决过拟合
2、参数:min_samples_split =10
意义:对于一个节点来说,至少要有多少个样本数据,才对节点继续拆分
3、参数:min_samples_leaf=1
对于叶子节点来说,至少要有几个样本
4、参数:min_leaf_nodes=4
最多有多少个叶子节点
五、决策树解决回归问题
六、决策树的局限性
决策边界都是与x、y轴平行的