設s是s個資料樣本的集合。假定類標號ci(i = 1,……,m)具有m個不同的值,設si是類ci中的樣本數。對乙個給定的樣本分類所需的期望資訊由下式給出:
i是任意樣本屬於c
i的概率,並用s
i/s來估計。設屬性a具有v個子集s
i,……,s
v;其中,s
j包含s中這樣一些樣本,它們在a上具有值a
j。如果a選作測試屬性,則這些子集對應於由包含集合s的節點生長出來的分枝。設s
ij是子集s
j中類c
i的樣本數。根據由a劃分成子集的熵由下式給出:
j有:
ij/s
j是i的概率。
在a上分枝將獲得的編碼資訊是:
1到s3是c個值的屬性a分割s而形成的c個樣本子集。
這時,在屬性a上所得到的資訊增益比為
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)計算每個節點的分類錯誤,進行剪枝。
[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
學堂君的歷史合輯:
菜鳥也愛資料分析之spss篇
問卷設計與統計分析
線性回歸
量表信效度分析
聚類分析
時間序列分析
粉絲常見問題
【加入團隊】:招募,我們是認真的!
集合最大子集演算法 折衷演算法
我們直接來看乙個問題。給定乙個由n個整數組成的集合,其中n 40,每乙個整數都小於或等於 我們用例子來說明。例題1 輸入集合為 n 6,s 42 也就是從集合的6個元素中選擇適當的元素組成乙個子集,使得子集所有元素的和最大,並且該和小於或等於42。答案 該子集為,它的元素和為34 5 2 41,就是...
C4 5演算法詳解
首先,c4.5是決策樹演算法的一種。決策樹演算法作為一種分類演算法,目標就是將具有p維特徵的n個樣本分到c個類別中去。相當於做乙個投影,c f n 將樣本經過一種變換賦予一種類別標籤。決策樹為了達到這一目的,可以把分類的過程表示成一棵樹,每次通過選擇乙個特徵pi來進行分叉。那麼怎樣選擇分叉的特徵呢?...
資料探勘 C4 5演算法
c4.5演算法是機器學習和資料探勘領域中的一整套用於處理分類問題的演算法。該演算法是有監督學習型別的。計算公式 樣本資料 outlook temperature humidity windy playgolf?sunny 8585 false nosunny 8090 true noovercast...