集合最大子集算法_C4.5算法2

C4.5算法的基本原理

设S是s个数据样本的集合。假定类标号ci(I = 1,……,m)具有m个不同的值,设si是类Ci中的样本数。对一个给定的样本分类所需的期望信息由下式给出:

b28403c5bde166812b3a4e69afe4fd85.png

其中,pi是任意样本属于Ci的概率,并用si/s来估计。设属性A具有v个子集si,……,sv;其中,sj包含S中这样一些样本,它们在A上具有值aj。如果A选作测试属性,则这些子集对应于由包含集合S的节点生长出来的分枝。设sij是子集sj中类ci的样本数。根据由A划分成子集的熵由下式给出:

2e144b1e8a2880e73c718e0d6847c9e5.png

其中,项充当第j个子集的权,并且等于子集(即A值为aj)中的样本个数除以s中的样本总数。熵值越小,子集划分的纯度越高。对于给定的子集sj有:

0c6199d451c96619c6ce4c87990f552d.png

其中,pij=sij/sj是中的样本属于类ci的概率。

在A上分枝将获得的编码信息是:

ae18c10b3bfb59c3d23c1a2ce38b14b2.png

以上和ID3算法的基本原理相同,而C4.5所不同的是在后面使用信息增益比例来取代信息增益。

0ad7a8abb6afc9dcada6ff414b358491.png

其中,s1到s3是c个值的属性A分割S而形成的c个样本子集。

这时,在属性A上所得到的信息增益比为

971ad539161ea429972f9d366a4e8b95.png

C4.5算法计算每个属性的信息增益比。具有最高信息增益比的属性选作给定集合S的测试属性。创建一个节点,并以该属性标记,对属性的每个值创建分枝,并据此划分样本。

C4.5算法的实现

假设用S代表当前样本集,当前候选属性集用A表示,则C4.5算法C4.5formtree(S, A)的伪代码如下。

算法:Generate_decision_tree由给定的训练数据产生一棵决策树

输入:训练样本samples;候选属性的集合attributelist

输出:一棵决策树

(1)创建根节点N;

(2)IF S都属于同一类C,则返回N为叶节点,标记为类C;

(3)IF attribute list为空 OR S中所剩的样本数少于某给定值,则返回N为叶节点,标记N为S中出现最多的类;

(4)FOR each attribute list中的属性,计算信息增益率information gain ratio;

(5)N的测试属性test.attribute = attributelist具有最高信息增益率的属性;

(6)IF测试属性为连续型,则找到该属性的分割阈值;

(7)For each由节点N一个新的叶子节点

{

If该叶子节点对应的样本子集S’为空

则分裂此叶子节点生成新叶节点,将其标记为S中出现最多的类

Else

在该叶子节点上执行C4.5formtree(S’, S’.attributelist),继续对它分裂;

}

(8)计算每个节点的分类错误,进行剪枝。

0b3d6054a9aa41dd0fbc218f75a7e879.png

参考文献

[1] Han Jiawei,Micheline K.数据挖掘:概念与技术[M] TP274.范明,孟小峰 译.北京:机械工业出版社,2001:70-218

[2] 毛国君,段立娟,王实.数据挖掘原来与算法[M].北京:清华大学出版社,2005

[3] Quinlan J R. C4.5:Programs for Machine Learning[M]. NewYork:Morgan Kaufnan,1993

[4] Quinlan J R. Induction of decision tree[J]. Machine Learning 1986, 1(1):81-106

[5] 冯少荣. 决策树算法的研究与改进[J]. 厦门大学学报(自然科学版),2007,17(5):16-18

[6] 李慧慧,万武族. 决策树分类算法C4.5中连续属性过程处理的改进[M] TP301. 1006-2475(2010)08-0008-03

[7] 黄爱辉. 决策树C4.5算法的改进及应用[J].科学技术与工程, 2009,9(1):34-36

[8] J.R.Quinlan. Improved Use of Continuous Attributes in C4.5[J]. Journal of Artificial Intelligence Rearch 4 (1996) 77-90

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值