一、思维导图
二、补充笔记
分类决策树的最优属性选择方法:信息增益(ID3采用),信息增益与信息增益率结合(C4.5采用),基尼系数(CART采用)。
(1)信息增益
设当前样本集合D中第k类样本所占的比例为pk (k = 1,2,….n),则D的信息熵为:
熵越小,数据纯度越高。
如果离散属性a有V个可能的取值,使用a对样本D进行划分,则产生V个分支结点,其中第v个分支结点所包含的数据记为Dv,可以计算的Dv熵,然后根据每个分支结点的数据量给每个分支结点分配一定的权重,那么可以计算出用属性a对样本集D进行划分的信息增益为:
ID3决策树的学习算法以信息增益作为准则来选择划分属性。
(2)信息增益率
信息增益偏爱属性取值多的属性(既V比较大的属性),那么为了降低这种情形的影响,在计算信息增益的时候,要给V比较小的属性赋予较大的权值,或者给V比较大的属性赋予较小的权值。
一般而言,V越大,IV(a)也会越大。但是,如果只采用信息增益率作为划分的标准,那么它对属性少的就有所偏好。所以,C4.5使用的是,先从候选划分属性中,找出信息增益高于平均水平的属性,再从中选择信息增益率最高的。
(3)基尼指数
基尼系数反映了从数据集D中,随机抽取出两个样本,其类别标记不一致的概率。基尼指数越小,数据纯度越高。
CART决策树使用“基尼指数”来选择划分属性。
(4)随机森林的构造方法:
以CART决策树作为基学习器。
1、 重采样
对数据集D进行T次有放回的采样,每次采样m个样本,(m的大小和D中样本的数量相等)。这样就生成了T个采样集。
2、 随机选择一部分特征作为训练特征
使用第t个采样集训练第t个决策树模型,在训练时,特征选取第t个采样集的一部分特征。
3、分类场景下,T个决策树进行投票,少数服从多数。回归场景,对T个决策树的结果进行算数平均。
三、sklern代码
(1)决策树,sklearn中采用的CART决策树(二叉树的数据结构成熟)
from sklearn import tree
clf = tree.DecisionTreeClassifier(criterion='entropy',max_depth=100)
clf = clf.fit(features.values,label.values)
(2)计算准确率
from sklearn.metrics import accuracy_score
accuracy_score(label.values, yp)
(3)回归树
rgs = tree.DecisionTreeRegressor(max_depth=4)
rgs = rgs.fit(boston_features, boston_target)
(4)随机森林
rgs = RandomForestRegressor(n_estimators=15)
rgs = rgs.fit(boston_features, boston_target)
四、参考书目
周志华,机器学习