一、ID3算法
-
原理
- 信息熵(Entropy):信息熵用于衡量数据集的混乱程度。对于数据集DDD,包含nnn个类别标签,其信息熵H(D)H(D)H(D)计算公式为:
H(D)=−∑k=1npklog2pkH(D)=-\sum_{k = 1}^{n}p_k\log_2p_kH(D)=−k=1∑npklog2pk
其中pkp_kpk是数据集中属于第kkk类样本的比例。例如,在一个简单的天气分类数据集中(晴天、雨天、多云),若晴天样本占比p1=0.4p_1 = 0.4p1=0.4,雨天p2=0.3p_2 = 0.3p2=0.3,多云p3=0.3p_3 = 0.3p3=0.3,则信息熵H(D)=−0.4log20.4−0.3log20.3−0.3log20.3H(D)=-0.4\log_20.4 - 0.3\log_20.3-0.3\log_20.3H(D)=−0.4log20.4−0.3log20.3−0.3log20.3。 - 信息增益(Information Gain):用于衡量特征对数据集纯度的提升程度。假设数据集DDD,属性aaa有VVV个不同取值{
a1,a2,⋯ ,aV}\{a^1,a^2,\cdots,a^V\}{
a1,a2,⋯,aV}。使用属性aaa对DDD进行划分,得到VVV个子集{
D1,D2,⋯ ,DV}\{D^1,D^2,\cdots,D^V\}{
D1,D2,⋯,DV}。信息增益g(D,a)g(D,a)g(D,a)计算公式为:
g(D,a)=H(D)−∑v=1V∣Dv∣∣D∣H(Dv)g(D,a)=H(D)-\sum_{v = 1}^{V}\frac{|D^v|}{|D|}H(D^v)g(D,a)=H(D)−v=1∑V∣D∣∣Dv∣H(Dv)
例如,在一个判断水果是苹果还是香蕉的数据集中,有“颜色”这个属性(红、绿)。若红色样本中苹果占比高,绿色样本中香蕉占比高,通过这个属性划分数据集后纯度提升,信息增益较大。 - 构建树时,从根节点开始,计算每个特征的信息增益,选择信息增益最大的特征作为当前节点的划分特征。对于划分后的子集,重复此步骤,直到满足停止条件(如所有样本属于同一类别、没有可用于划分的特征或子集样本数量小于阈值)。
- 信息熵(Entropy):信息熵用于衡量数据集的混乱程度。对于数据集DDD,包含nnn个类别标签,其信息熵H(D)H(D)H(D)计算公式为:
-
应用场景
- 适用于处理离散型特征的分类问题。例如,在文本分类中,根据文章中的词汇(离散特征)判断文章所属类别(如体育类、科技类)。
-
优点
- 算法简单易懂,容易实现。计算信息熵和信息增益的概念直观,能够很好地处理离散特征。
- 对小规模数据表现良好,能快速构建决策树。
-
缺点
- 倾向于选择取值较多的属性,可能导致过拟合。例如,一个特征有很多不同的值,每个值对应的类别比较单一,这个特征会被优先选择,但可能只是巧合,对新数据的泛化能力差。
- 只能处理离散型属性,无法直接处理连续型属性。
二、C4.5算法
-
原理
- 信息增益比(Gain Ratio):为了克服ID3算法倾向于选择取值较多属性的问题,C4.5算法引入信息增益比。首先计算属性aaa的固有值Ha(D)H_a(D)Ha(D):
Ha(D)=−∑v=1V∣Dv∣∣D∣log2∣Dv∣∣D∣H_a(D)=-\sum_{v = 1}^{V}\frac{|D^v|}{|D|}\log_2\frac{|D^v|}{|D|}Ha(D)=−v=1∑V∣D∣∣Dv∣log2∣D∣∣Dv∣
信息增益比gR(D,a)g_R(D,a)gR(D,a)计算公式为:
gR(D,a)=g(D,a)Ha(D)g_R(D,a)=\frac{g(D,a)}{H_a(D)}gR(D,a)=Ha(D)g(D,a)
例如,在一个植物分类数据集中,有一个特征“叶子形状”有多种取值。通过计算信息增益比,可以更平衡地考虑这个特征的划分效果。 - 树的构建过程与ID3类似,从根节点开始,计算每个特征的信息增益比,选择信息增益比最大的特征作为划分特征,在划分后的子集上重复此步骤,直到满足停止条件。
- 信息增益比(Gain Ratio):为了克服ID3算法倾向于选择取值较多属性的问题,C4.5算法引入信息增益比。首先计算属性aaa的固有值Ha(D)H_a(D)Ha(D):
-
应用场景
- 同ID3一样,主要用于分类问题,尤其在处理离散型特征的分类任务时表现出色。例如,在医疗诊断中,根据患者的症状(离散特征)判断疾病类型。
-
优点
- 克服了ID3算法对取值较多属性的偏好,使得决策树的构建更加合理。
- 能够处理离散型和连续型属性。对于连续型属性,先将其离散化,再进行处理。
-
缺点
- 计算信息增益比相对复杂,算法效率比ID3稍低。
- 连续型属性的离散化过程可能会丢失信息,影响决策树的性能。
三、CART算法(分类与回归树)
-
原理 - 分类任务
- 基尼指数(Gini Index):用于衡量数据集的纯度。对于数据集DDD,基尼指数Gini(D)Gini(D)Gini(D)计算公式为:
Gini(D)=∑k=1npk(1−pk)=1−∑k=1npk2Gini(D)=\sum_{k = 1}^{n}p_k(1 - p_k)=1 - \sum_{k = 1}^{n}p_k^2Gini(D)=k=1∑npk(1−pk)=1−k=1
- 基尼指数(Gini Index):用于衡量数据集的纯度。对于数据集DDD,基尼指数Gini(D)Gini(D)Gini(D)计算公式为:

最低0.47元/天 解锁文章
1236

被折叠的 条评论
为什么被折叠?



