当前位置: 首页 > 科技观察

数据挖掘领域十大经典算法之C4.5算法(附超详细代码)

时间:2023-03-19 00:01:45 科技观察

数据挖掘领域十大经典算法如下:介绍C4.5是决策树算法的一种。决策树算法作为一种分类算法,其目的是将n个具有p维特征的样本分为c类。常见的决策树算法包括ID3、C4.5和CART。基本思想下面举例说明C4.5的基本思想。上面的数据集有四个属性,属性集A={weather,temperature,humidity,windspeed},有两个类别标签,类别集L={going,Cancel}。1、类别信息熵的计算类别信息熵表示所有样本中各类别不确定性的总和。根据熵的概念,熵越大,不确定性越大,解决问题所需的信息量也越大。2.计算每个属性的信息熵每个属性的信息熵相当于一个条件熵。他代表的是在某个属性条件下,各个范畴的不确定性之和。一个属性的信息熵越大,这个属性中的样本类别就越不“纯粹”。3.计算信息增益=熵-信息增益的条件熵,这里是类别信息熵-属性信息熵,代表信息不确定性降低的程度。如果一个属性的信息增益越大,说明用这个属性来划分样本可以更好的降低划分样本的不确定性。当然选择这个属性可以更快更好的完成我们的分类目标。信息增益是ID3算法的特征选择指标。但我们假设每个属性中每个类别只有一个样本,则属性信息熵等于0,无法根据信息增益选择有效的分类特征。因此,C4.5选择用信息增益率来提高ID3。4.属性分裂信息测度的计算分裂信息测度用于考虑某一属性分裂时分支的数量信息和大小信息。我们称这些信息为属性的内在信息(instrisicinformation)。信息增益率使用的是informationgain/intrinsicinformation,这会导致属性的重要性随着内在信息的增加而降低(也就是说,如果属性本身很不确定,那么我会不太倾向于选择它),这可以看作是对单纯使用信息增益的补偿。5.计算信息增益率(下面是错误的,应该是IGR=Gain/H)。天气的信息增益率最高,选择天气作为分割属性。发现拆分后,天气为“多云”时类别为“纯”,因此定义为叶子节点,选择非“纯”的节点继续拆分。在子节点间重复过程1~5。至此,就算完成了C4.5在这个数据集上的计算过程,也构建出了一棵树。算法过程总结如下:优点、缺点、优点生成的分类规则易于理解,准确率高。缺点在构建树的过程中,需要对数据集进行多次顺序扫描排序,导致算法效率低下。代码代码已经在github上实现,这里也贴出测试数据集为MNIST数据集,访问地址为train.csv运行结果