《机器学习》周志华-CH4(决策树)

4.1基本流程

决策树是一类常见的机器学习方法,又称"判别树",决策过程最终结论对应了我们所希望的判定结果。

一棵决策树 { 一个根结点 包含样本全集 若干个内部结点 对应属性测试,每个结点包含的样本集合根据属性测试结果划分到子结点中 若干个叶结点 对应决策结果 一棵决策树 \begin{cases} 一个根结点 &包含样本全集 \\ 若干个内部结点 & 对应属性测试,每个结点包含的样本集合根据属性测试结果划分到子结点中 \\ 若干个叶结点 & 对应决策结果 \\ \end{cases} 一棵决策树⎩ ⎨ ⎧一个根结点若干个内部结点若干个叶结点包含样本全集对应属性测试,每个结点包含的样本集合根据属性测试结果划分到子结点中对应决策结果

决策树的生成是一个递归过程

有三种情况会递归返回

4.2划分选择

关键在于如何选择最优划分属性

我们希望决策树分支结点所包含的样本尽可能属同一类别,即"纯度"(purity)越来越高

4.2.1信息增益

"信息熵"(information entropy)是度量样本纯度的一种指标


学习一棵能预测是不是好瓜的决策树。 ∣ y ∣ = 2 |y|=2 ∣y∣=2

数据集一共17个西瓜,正例8个,反例9个。则 P 1 = 8 17 P_{1}=\frac{8}{17} P1=178, P 2 = 9 17 P_{2}=\frac{9}{17} P2=179

计算当前属性集合{色泽,根蒂,瞧声,纹理,脐部,触感}每个属性信息增益。



同理其他信息增益 { G a i n ( D , 根蒂 ) = 0.143 G a i n ( D , 敲声 ) = 0.141 G a i n ( D , 纹理 ) = 0.381 最大,选为划分属性 G a i n ( D , 脐部 ) = 0.289 G a i n ( D , 触感 ) = 0.006 同理其他信息增益 \begin{cases} Gain(D,根蒂)=0.143 &\\ Gain(D,敲声)=0.141 & \\ Gain(D,纹理)=0.381 & 最大,选为划分属性 \\ Gain(D,脐部)=0.289 & \\ Gain(D,触感)=0.006 & \\ \end{cases} 同理其他信息增益⎩ ⎨ ⎧Gain(D,根蒂)=0.143Gain(D,敲声)=0.141Gain(D,纹理)=0.381Gain(D,脐部)=0.289Gain(D,触感)=0.006最大,选为划分属性

4.2.2增益率

信息增益准则对可取值数目较多的属性有所偏好

C 4.5 C_{4.5} C4.5决策树算法不直接使用信息增益,而是使用"增益率"(gain ratio)

增益率准则对可取值数目较少的属性有所偏好。

C 4.5 C_{4.5} C4.5并不是直接使用增益率:先找信息增益高于平均水平的,再选择增益率最高。

4.2.3基尼参数

CART决策树使用"基尼指数"选择划分属性

4.3剪枝处理

剪枝(pruning)是用来解决"过拟合",比如分支过多,把训练集自身的一些特点当作所有数据的一般性质。

4.3.1预剪枝

4.4连续与缺失值

4.4.1连续值处理

由于连续属性的可取值数目不再有限,连续属性离散化技术可派上用场。比如二分法(bipartition-)对连续属性进行处理( C 4.5 C_{4.5} C4.5决策树机制)

给定样本集 D D D,连续属性 a a a

假定 a a a在 D D D上出现了 n n n个不同值,从小到大排序

4.4.2缺失值处理

比如一些缺失属性值进行训练样例

(1)如何在属性缺失的情况下进行划分属性选择?

(2)给定划分属性,若该属性上的值缺失,如何对样本进行划分?



举例,数据集看之前 C 4.5 算法策略如上页一样的解决方案 C_{4.5}算法策略如上页一样的解决方案 C4.5算法策略如上页一样的解决方案

D D D一共有17个样例{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17},各样例权值均为1

以属性"色泽"为例,属性上无缺失值的样例子集


4.5多变量决策树

若我们把每个属性视为坐标空间中的一个坐标轴,则 d d d个属性描述的样本就对应了 d d d维空间中的一个数据点寻找,寻找不同样本的分类边界。

决策树形成的分类边界特点:轴平行(axis-parallel),分类边界由若干个与坐标轴平行的分段组成


相关推荐
兴趣使然黄小黄1 小时前
【AI-agent】LangChain开发智能体工具流程
人工智能·microsoft·langchain
出门吃三碗饭1 小时前
Transformer前世今生——使用pytorch实现多头注意力(八)
人工智能·深度学习·transformer
l1t1 小时前
利用DeepSeek改写SQLite版本的二进制位数独求解SQL
数据库·人工智能·sql·sqlite
说私域1 小时前
开源AI智能名片链动2+1模式S2B2C商城小程序FAQ设计及其意义探究
人工智能·小程序
开利网络2 小时前
合规底线:健康产品营销的红线与避坑指南
大数据·前端·人工智能·云计算·1024程序员节
非著名架构师2 小时前
量化“天气风险”:金融与保险机构如何利用气候大数据实现精准定价与投资决策
大数据·人工智能·新能源风光提高精度·疾风气象大模型4.0
熙梦数字化3 小时前
2025汽车零部件行业数字化转型落地方案
大数据·人工智能·汽车
刘海东刘海东3 小时前
逻辑方程结构图语言的机器实现(草稿)
人工智能
亮剑20183 小时前
第2节:程序逻辑与控制流——让程序“思考”
开发语言·c++·人工智能
hixiong1233 小时前
C# OpenCVSharp使用 读光-票证检测矫正模型
人工智能·opencv·c#