目录
一.决策树
决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。
- sklearn中调用决策树
from sklearn.tree import DecisionTreeClassifier
dt_clf = DecisionTreeClassifier(max_depth=2, criterion="entropy", random_state=42)
dt_clf.fit(X, y)
非参数学习算法,可以解决分类问题,也可解决回归问题(叶子节点的平均值)
问题:
每个节点在哪个维度做划分,某个维度在哪个值做划分
二.信息熵
熵在信息论中代表不确定的度量。
- 熵越大,数据的不确定性越高
- 熵越小,数据的不确定性越低
如果是两类的话,信息熵:
可以看出,两个类别时,概率分别为0.5时,信息熵是最大的,也最不稳定
划分后信息熵降低(使系统更确定)
使用信息熵
from sklearn.tree import DecisionTreeClassifier
dt_clf = DecisionTreeClassifier(max_depth=2, criterion="entropy", random_state=42)
dt_clf.fit(X, y)
三.基尼系数
基尼系数越高,整体随机性越强,不确定越高
使用基尼系数
from sklearn.tree import DecisionTreeClassifier
dt_clf = DecisionTreeClassifier(max_depth=2, criterion="gini", random_state=42)
dt_clf.fit(X, y)
四.CART与超参数
复杂度
预测:O(logm)
训练:O(n*m*logm)
减枝:降低复杂度,解决过拟合
- 限制整棵树最大深度
- 一个节点最少有多少样本数据,才拆分
- 叶子节点至少应该有几个样本
- 叶子节点最多样本数
五.决策树解决回归问题
叶子节点平均值投票