ID3算法的作者昆蘭基于上面的不足,對(duì)ID3算法做了改進(jìn),這就是C4.5算法,也許你會(huì)問(wèn),為什么不叫ID4,ID5之類(lèi)的名字呢?那是因?yàn)闆Q策樹(shù)當(dāng)時(shí)太火爆了,它的ID3一出來(lái),別人二次創(chuàng)新,很快就占了ID4,ID5,所以他另辟蹊徑,取名C4.5算法,后來(lái)的進(jìn)化版為C4.5算法。
C4.5算法與ID3算法的區(qū)別主要是在于它在生產(chǎn)決策樹(shù)的過(guò)程中,使用信息增益比來(lái)進(jìn)行特征選擇。
實(shí)際上,信息增益準(zhǔn)則對(duì)于可取值數(shù)目較多的屬性會(huì)有所偏好,為了減少這種偏好可能帶來(lái)的不利影響,C4.5決策樹(shù)算法不直接使用信息增益,而是使用“信息增益率”來(lái)選擇最優(yōu)劃分屬性,信息增益率定義為:
Gain_ratio(Y,X)=Gain(Y,X)/H(X)
其中,分子為信息增益,分母為屬性X的熵。
需要注意的是,增益率準(zhǔn)則對(duì)可取值數(shù)目較少的屬性有所偏好。所以一般這樣選取劃分屬性:先從候選屬性中找到信息增益高于平均水平的屬性,再?gòu)闹羞x擇增益率最高的。
雖然C4.5改善了ID3算法的幾個(gè)問(wèn)題,仍然有優(yōu)化的空間。
1,由于決策樹(shù)算法非常容易過(guò)擬合,因此對(duì)于生成的決策樹(shù)必須要進(jìn)行剪枝。剪枝的算法有非常多,C4.5的剪枝方法有優(yōu)化的空間。思路主要有兩種:一種是預(yù)剪枝,即在生成決策樹(shù)的時(shí)候就決定是否剪枝。另一個(gè)是后剪枝,即先生成決策樹(shù),再通過(guò)交叉驗(yàn)證來(lái)剪枝。
2,C4.5生成的是多叉樹(shù),即一個(gè)父節(jié)點(diǎn)可以有多個(gè)節(jié)點(diǎn)。很多時(shí)候,在計(jì)算機(jī)中二叉樹(shù)模型會(huì)比多叉樹(shù)運(yùn)算效率高。如果采用二叉樹(shù),可以提高效率。
3,C3.5算法只能用于分類(lèi),如果將決策樹(shù)用于回歸的話(huà),可以擴(kuò)大它的使用范圍。
4,C4.5算法由于使用了熵模型,里面有大量的耗時(shí)的對(duì)數(shù)運(yùn)算,如果是連續(xù)紙還有大量的排序運(yùn)算。如果能夠加以模型簡(jiǎn)化可以減少運(yùn)算強(qiáng)度但不犧牲太多準(zhǔn)確性的話(huà),那就更好了。
以上內(nèi)容為大家介紹了PythonC4.5算法,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。