简介:
C5.0算法是昆兰在C4.5算法的基础上提出的商用改进版本,目的是对含有大量数据的数据集进行分析。
计算过程:
C5.0算法的训练过程大致如下。
假设训练的样本集S共有n个样本,训练决策树模型的次数为T,用Ct表示t次训练产生的决策树模型,经过T次训练后最终构建的复合决策树模型表示为C*。
用表示第i个样本在第t次模型训练中的权重(i=1,2,3,…,n;t=1,2,3,…,T);
用表示的归一化因子,再用βt表示权重值的调整因子,并定义0-1函数:
表示第i个第t次训练的分类结果,最后进行如下步骤样本训练。
① 初始化参数:设定训练决策树模型次数T(T一般默认为10),并赋予每个训练样本相同的权重值=1/n,令t=1开始第一次训练。
② 计算每个样本的归一化因子值
并且,使其满足
③ 为每个样本赋予归一化的权重值,构建当前的决策树模型Ct。
④ 计算第t次训练分类错误率
⑤ 分支:如果εt>0.5,修改训练次数T=T−1,返回步骤①重新训练;
如果εt=0,结束整个训练,令t=T转入步骤⑧;
如果0<εt≤0.5,转入步骤⑥。
⑥ 计算调整因子:用错误率计算本次训练调整因子βt=εt/(1-εt),错误率高,调整因子高。
⑦ 更新样本权重值
,调低被正确分类样本的权重值。
⑧ 结束判断:如果t=T,结束训练过程转入⑨,否则令t=t+1,返回步骤②。
⑨ 复合模型:最终根据
计算求得复合决策树模型。
C5.0算法的优缺点:
优点:
构建决策树的时间更快,生成的决策树规模更小;
可以处理数据遗漏和输入字段很多的问题;
可以自动修剪决策树,提高分类精度;
缺点:
对于连续型变量,需要进行离散化处理;
对于噪声数据和异常值敏感。
C5.0算法相较于C4.5算法的提升:
执行效率更高,内存使用更少
生成的决策树更小,拥有更少的叶子结点
支持Boosting技术,提高分类精度
支持加权和成本敏感学习
借鉴:《机器学习》
吴恩达 机器学习课程