简介:
C4.5算法是一种用于分类和回归的机器学习算法,它是ID3算法的改进版本。(ID3算法详细可见我的博客:ID3决策树算法) C4.5算法使用信息增益率来选择最重要的特征,并使用剪枝技术来减少决策树的复杂度。它可以处理离散型和连续型特征,并可以处理缺失值。C4.5算法是一种非常流行的机器学习算法,广泛应用于各种领域,如文本分类、图像分类、生物信息学等。
1.学习C4.5算法
C4.5 算法是一种决策树生成算法,它使用信息增益比 (gain ratio,如何计算熵和信息增益参考:ID3决策树算法) 来选择最优分裂属性,具体步骤如下:
1、计算标签样本的类别熵 ()
2、对于每一个属性,计算该属性的熵 ()。
3、对于每一个属性,计算该属性对于分类所能够带来的信息增益 (=
)。
4、对于每一个属性,计算训练集属性D经验熵(自身熵)
5、计算每个属性的信息增益比 (gain ratio =),即信息增益与类别信息的比值选择具有最大信息增益比的属性作为分裂属性。
2.利用C4.5算法的例子:
假设我们有一个数据集,其中包含了一些关于天气、温度、湿度条件和是否应该进行户外活动等信息。我们想要构建一个决策树来预测在特定天气条件下是否应该进行户外活动。
1.标签(结果是否外出打球)的熵(类别熵):
14天中,9天打球,5天不打球,熵为:
2.天气的信息增益为:
晴天【5天】的熵:
Overcast(阴天)【4天】的熵:
雨天(rainy)【5天】的熵:
那么,天气的属性熵为:
= 5/14*0.971+4/14*0+5/14*0.971=0.693
则信息增益为:=0.940-0.693=0.247
天气的自身熵值:
信息增益率:=0.247/1.577 = 0.1566
接下来依次类推计算:
2.温度的自身熵值:
信息增益率:=0.029/1.557 = 0.0186
3.湿度的自身熵值:
信息增益率:=0.151/1.0 = 0.151
4.有风的自身熵值:
信息增益率:=0.048/0.985 = 0.049
最后得到信息增益率排序:编号(0.247) 、天气(0.1566)、 温度(0.0186)、湿度(0.151)、是否有风(0.049)
信息增益排序:天气 >湿度>有风>温度
最后根据信息增益率最高的特征作为当前节点的特征,并将数据集划分为不同的子集,将每个子集作为一个新的节点或根节点。对于每个子集,重复上述步骤,直到所有数据都被分类或者达到预设的停止条件,得到完整的决策树。
3.C4.5算法的优缺点:
C4.5算法的主要优点是可解释性很好,它可以通过信息增益率来评估每个特征的重要性,并可以通过决策树来解释模型的决策过程。能够处理多分类问题:C4.5算法能够处理多分类问题,可以生成多叉树,每个节点对应一个多分类的决策。能够处理缺失值:C4.5算法对于缺失值有较好的处理能力,在计算信息增益时,能够对缺失值进行合理处理,不会将缺失值简单地视为一类。
C4.5算法的主要缺点是它容易过拟合,当数据集中存在噪声或者数据不平衡时,C4.5算法容易产生过拟合现象。此外,C4.5算法也容易受到特征选择的影响,如果特征选择不当,可能会导致模型的性能下降。