C4.5算法原理
C4.5算法与ID3算法相似,C4.5算法对ID3算法进行了改进,用信息增益比来选择特征。
信息增益比的公式如下图所示:
IR(Y,X)=HX(Y)I(Y,X)
- 输入: 训练数据集
D,特征集
A,阈值
ϵ
- 输出: 决策树T
- 如果
D中所有实例属于同一类
Ck,则置
T为单节点树,并将
Ck作为该节点的类,返回
T.
- 如果
A=∅,则置T为单节点树,并将D中实例数最大的类
Ck作为该节点最大的类,返回
T.
- 否则,按上式计算
A中各特征的对
D 的信息增益比,选择信息增益比最大的特征
Ag.
- 如果
Ag的信息增益比小于阈值
ϵ,则置T为单结点树,并将
D中实例数最大的类
Ck作为该结点的类,返回
T.
- 否则,对
Ag的每一可能值
ai,依
Ag=ai将
D分割为子集若干非空
Di,将
Di中实例数最大的类作为标记,构建子结点,由结点及其子结点构成树
T,返回
T.
- 对结点
i,以
Di为训练集,以
A−Ag为特征集,递归地调用1-5步,得到子树
Ti,返回
Ti.
代码实现
python
Implementation of C4.5 algorithm in python.
Java http://weka.sourceforge.net/doc.dev/weka/classifiers/trees/J48.html
参考资料
机器学习之决策树(Decision Tree)及其 Python 代码实现