1. 程式人生 > >C4.5決策樹學習(基於集體智慧程式設計程式碼)

C4.5決策樹學習(基於集體智慧程式設計程式碼)

我在上一篇實驗報告中有總結了ID3,C4.5,CART各決策樹的不同,其中,有關於ID3和C4.5的不同,見文章.

上篇文章可能並沒有側重於這兩種的不同,於是我仔細研究了一下,並採用《集體智慧程式設計》一書中的有資訊熵和決策樹的程式碼,見github地址,自行進行資訊增益率的計算.

我的理解,看上文圖中的公式,就能看出,SI(D,A)分裂資訊值(以下簡稱SI)簡直跟熵的計算方式一模一樣,就是看屬性的純度,只含有少量的取值的話,純度會比較高,否則的話,純度越低,SI的值也就越大,最後得到的資訊增益率越低.

說起來是比較簡單的,實際操作一不留神還是會出現一些問題,特別是資訊增益率=資訊增益 / SI,對於資訊增率,我一不留神經常直接寫成分裂後的新熵值,以至於尋找錯誤花了很長時間.

具體更改如下: