id3决策树 鸢尾花 python_C4.5决策树Python代码实现
C4.5決策樹(shù)Python代碼實(shí)現(xiàn)
????我們知道C4.5決策樹(shù)與ID3決策樹(shù)最主要的區(qū)別就是C4.5使用信息增益率來(lái)劃分最優(yōu)屬性。因?yàn)槭褂眯畔⒃鲆鎭?lái)劃分屬性的話會(huì)存在以下這些缺點(diǎn):對(duì)可取屬性多的特征有偏好,比如如果把“編號(hào)”這一列當(dāng)作特征也考慮在內(nèi),那么可以計(jì)算處它的信息增益大于其他的候選特征,因?yàn)椤熬幪?hào)”有17個(gè)可取的數(shù)值,產(chǎn)生17個(gè)分支,每個(gè)分支節(jié)點(diǎn)僅包含一個(gè)樣本,顯然這些分支節(jié)點(diǎn)的純度最大。但是,這樣的決策樹(shù)顯然不具有泛化能力,無(wú)法對(duì)新樣本進(jìn)行有效預(yù)測(cè)。
而使用C4.5決策樹(shù)算法:使用“信息增益率”來(lái)選擇最優(yōu)劃分屬性,可以很好的克服上述缺點(diǎn)。
所以C4.5代碼和ID3代碼的主要區(qū)別就是劃分最有屬性這一段。C4.5的劃分做法是從候選劃分特征中找出信息增益高于平均水平的特征,分別除以比率IVAL,然后再?gòu)闹羞x擇增益率最高的。IVAL公式如下:
Dv是對(duì)應(yīng)特征下的屬性樣例個(gè)數(shù),D是所有樣例個(gè)數(shù)。
上述代碼表達(dá)的意思就是從所有信息增益中選出大于平均值的信息增益,計(jì)算他的信息增益率,從而求出最高的信息增益率。
C4.5選取最優(yōu)劃分屬性的代碼如下,先計(jì)算信息增益,再計(jì)算最優(yōu)信息增益率:
其余代碼在ID3已經(jīng)詳細(xì)講解過(guò),在這里不再贅述。代碼如下所示:
下一期CART決策樹(shù)講完后,會(huì)將所有代碼上傳百度網(wǎng)盤。請(qǐng)大家持續(xù)關(guān)注,謝謝大家!
總結(jié)
以上是生活随笔為你收集整理的id3决策树 鸢尾花 python_C4.5决策树Python代码实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: django手机访问_Django从入门
- 下一篇: python批量处理txt_浅谈Pyth