(1)分类
分类树:对离散变量做决策树;
回归树:对连续变量做决策树;
(2)学习过程
★特征选择:指从训练数据中众多的特征中选择一个特征作为当前节点的分裂标 准,如何选择特征有着很多不同量化评估标准标准,从而衍生出不同的 决策树算法;
★决策树生成:根据选择的特征评估标准,从上至下递归地生成子节点,直到数 据集不可分则停止决策树停止生长。
★剪枝:决策树容易过拟合,一般来需要剪枝,缩小树结构规模、缓解过拟合。 剪枝技术有预剪枝和后剪枝两种;训练集用来决定树生成过程中每个结点划分所选择的属性;验证集在预剪枝中用于决定该结点是否有必要依据该属性进行展开,在后剪枝中用于判断该结点是否需要进行剪枝。
◆预剪枝:在决策树生成的过程中,决定该节点是否有必要按照该属性进行展开
◆后剪枝:在决策树完成后,自底向上判断结点是否需要进行剪枝。
1 预剪枝:
(1)每一个结点所包含的最小样本数目,例如10,则该结点总样本数小于10时,则不再分;
(2)指定树的高度或者深度,例如树的最大深度为4;
(3)指定结点的熵小于某个值,不再划分。
2 后剪枝:
总体思路:由完全树T0开始,剪枝部分结点得到T1,再次剪枝部分结点得到T2...直到剩下树根的树Tk;在验证数据集上对这k个树分别评价,选择损失函数最小的树Ta。
生成决策树算法示意:
特征选择:根据不同的划分依据有多种特征选择的可能;
量化划分方法有多种,例如:信息论度量信息分类,基于信息论的决策树算法有ID3(根据信息论的信息增益评估和选择特征)、CART(用信息增益率来选择属性)、C4.5(Gini指数(选Gini指数最小的特征s))
●ID3:根据信息论的信息增益评估和选择特征,每次选择信息增益最大的特征做判断模块。
信息熵(度量样本集合纯度):Ent(D)值越小,纯度越高;
信息增益(得知特征X的信息后,而使得Y的不确定性减少的程度):信息增益越大,则意味着使用属性a划分所获得的纯度提升越大;
Ent(D/a)表示特征a被固定时的条件熵;I(D,a)表,a之间的互信息;D为所有样本数量,Dv为其特征类别v的样本数量。
计算实例:
温度 (Feature) | 湿度(Feature) | 风速(Feature) | 活动(label) |
炎热 | 高 | 弱 | 取消 |
炎热 | 高 | 强 | 取消 |
适中 | 高 | 弱 | 取消 |
寒冷 | 正常 | 弱 | 进行 |
适中 | 正常 | 强 | 进行 |
✮基于Sklearn框架的决策树算法代码使用:
●C4.5:根据信息论的信息增益率评估和选择特征;C4.5 并没有直接选择增益率最大的候选划分属性,而是使用了一个启发式:先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的;
计算实例:
温度 (Feature) | 湿度(Feature) | 风速(Feature) | 活动(label) |
炎热 | 高 | 弱 | 取消 |
炎热 | 高 | 强 | 取消 |
适中 | 高 | 弱 | 取消 |
寒冷 | 正常 | 弱 | 进行 |
适中 | 正常 | 强 | 进行 |
●CART:根据信息论的基尼指数(Gini index)评估和选择特征;选择基尼指数最小的属性作为最优划分属性。
计算实例:
温度 (Feature) | 湿度(Feature) | 风速(Feature) | 活动(label) |
炎热 | 高 | 弱 | 取消 |
炎热 | 高 | 强 | 取消 |
适中 | 高 | 弱 | 取消 |
寒冷 | 正常 | 弱 | 进行 |
适中 | 正常 | 强 | 进行 |
✮基于Sklearn框架的决策树算法代码使用: