数据挖掘学习笔记(二)C4.5

来源:互联网 发布:康师傅 统一 知乎 编辑:程序博客网 时间:2024/03/29 20:30

一:概念

C4.5算法是机器学习和数据挖掘领域中的一整套用于处理分类问题的算法。

是有监督学习类型的算法,即:给定一个数据集,所有实例都用一组属性、参数来描述,每个实例都仅属于一个类别,通过在给定数据集上学习得到一个从属性到类别的映射,进

而可以利用这个映射来分类新的未知实例。

二:算法过程

首先,用根节点表示给定的数据集;

然后,从根节点开始在每个节点上测试一个特定的属性,把节点数据集划分成更小的子集,并用子树表示;循环此过程;

最后,得到每个子集都是纯净的,即,子集中的所有实例都属于同一个类别,此时树停止生长。

三:特征选取

C4.5算法使用增益(gain)、增益率(gain ratio)等信息论准则来对数据集进行选择。

gain(A)是指属性A的值而导致的熵的期望压缩,或是定义为,执行一个测试所导致的类别分布的熵的减少量。(感觉这描述太学术了,其实就是执行一次分类之后,整个数据集

变得规则和整齐一些了,数据集的混乱程度减小了)。贪心算法+深度优先搜索,计算遍历每个属性的信息增益。所以会生成一个完全的的决策树。

鉴于增益准则的一个缺陷,过于偏向选择具有更多输出结果的测试,选择最高信息增益作为测试属性,所以提出了一个用信息增益率来校正这一负面效应。

GainRatio(A)=Gain(A)/Entropy(A);

四:算法特性

决策树剪枝:为了避免过度拟合训练数据,所以必须对树进行剪枝。这里其实还应考虑到,数据集中的噪声数据,也被加入到了决策树当中,因此剪枝阶段的任务就是利用统计学

方法,去掉最不可靠、可能是噪声的一些枝条。

当然也要防止过分剪枝,这里是针对数据集稀疏时的情况。

剪枝方法:先剪枝和后剪枝

先剪枝(pre-pruning)在建树过程中,当满足一定条件,如特征参数gain或是gainratio达到某个预先设定的阈值时,节点不在继续分裂,这时就把这个节点所有数据归为同类,

取这个子集中平率最大的类作为此类的类别标识。或是存储他们的概率分布函数。

后剪枝(pos-pruning)在完全建树的过程之后,用一个测试数据集合(Ajusting set)来做测试用实例,然后从叶子剪枝开始,如果剪枝过后,测试用例的准确率没有降低,那么

就不保留这个叶子,继续下一个叶子的剪枝试验,最终形成一颗错误率尽可能小的决策树。

缺失值处理:

1)忽略训练数据及上在属性a上没有值的实例。2)用最常用的值或者均值代替3)选取独特的新值来代替他4)直接用概率最大的那个实例集合代替这个子集的类别;

五:总结

为了确认分类器的最终版本,必须使用交叉验证之类的严格评估过程。


公式在这里,方便查阅,时刻结合着物理意义来理解公式。比如信息熵的减少,混乱程度的减少等等~



0 0
原创粉丝点击