2021-07-28数据挖掘算法之C4.5算法

数据挖掘算法之C4.5算法

C4.5算法是一种决策树,在ID3基础上实现,解决分类问题,属于监督学习,目标是根据已知的样本——每个样本具有多个不同的属性,属于某一类别,判断给出的元组的类别标签。
决策树的非叶节点为属性,分支代表属性值,叶节点为类别标签。
问题的关键在于如何确定节点——分裂点
我们的类别预测是由不确定逐步到确定,分裂点应该是对预测结果确定性影响最大的属性,称为样本最优属性。
信息熵:消除不确定性所需信息量的度量,信息熵越大表明事物随机性越强。

在这里插入图片描述

类别信息熵:所有样本中的各种类别出现的不确定性之和,计算方法为
在这里插入图片描述
pi为各类别占总样本数的比例
属性信息熵info:在某一属性(条件)确定的条件下,各类别出现的不确定性之和,相当于剔除了一个不确定性因素,其他剩余属性的不确定性之和,计算方法为属性值占样本总数的比例×该属性值对应的信息熵
在这里插入图片描述
信息增益Gain:类别信息熵 - 属性信息熵,表示该属性对信息不确定性的减少程度,信息增益越大,说明该属性对预测结果确定性贡献越大,选择该属性能帮助我们更好更快的完成分类预测。
ID3利用信息增益来选择分裂点,但是假如每个属性每个类别仅有一个样本,信息熵为0,那么信息增益就无法实现有效区分分裂点。因此C4.5进行改进,引进属性分裂信息度量和信息增益率的概念,利用信息增益率来判断。
属性分裂信息度量H:计算属性熵,即各属性值占样本总比例qi×log2(qi)之和,表示属性本身的不确定性程度,属性熵越大,属性本身的不确定性越大。
信息增益率IGR:IGR=Gain/H,表示属性本身的不确定性越大,对最终结果的不确定性减少就越小,消除了属性本身不确定性对预测结果的影响。

明确判断分裂点的依据后,接下来是阐述算法思想及过程
1、选择IGR最大的属性作为根节点
2、判断分枝后类别标签是否一致,若一致,则执行3,不一致则执行4
3、将相应的类别标签作为该分枝的叶节点输出
4、继续选择剩余的IGR最大的属性作为分裂点
5、重复2,直到所有分支都生成叶节点,结束

剪枝
在决策树创建时,不可避免的会存在不具有代表性的特例样本数据,剪枝就是为了减少这类数据对最终预测结果的影响,解决过拟合问题。剪枝的方法为统计度量,分为先剪枝和后剪枝。
先剪枝:提前停止树的构造,即确定终止条件。如决策树的高度,错误率高于某值等
后剪枝:在决策树构造完成之后根据频繁项集对子树进行合并。
C4.5采用悲观剪枝法不需要新的数据,通过计算机实现时,表现为函数中的一个参数。

实例:利用R语言通过C4.5算法完成下列预测

在这里插入图片描述
第一步:导入excel数据
所用的包:CARN ——Packages xlsx #只能读取xlsx格式的文件

install.package(xlsx)  #下载相关包
library(xlsx)    #导入相关包
Ex2<-read.xlsx(file="E:Ex2_DecisionTree_Sampledata.xlsx",1) #读Excel文件,注意file为文件路径,与其他编程语言不同,不需要分号,1为文件中第1个sheet表

导出结果如图

在这里插入图片描述
第二步:数据预处理
特别注意数据预处理的顺序,这里23之间顺序可以调换,但是4一定要放在最后,否则在执行第四步时会出现变量名称不一致的问题。
1、去掉预测数据行

Ex2 <- Ex2[-22,]

2、将各属性值替换成数值型数据
原因是在创建分类树的过程中,J48函数不支持string类型的数据
在这里插入图片描述

Ex2
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

行走在IT界的小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值