參考書籍:機器學習--周志華 / 數(shù)據(jù)挖掘?qū)д?/ 統(tǒng)計學習方法
參考代碼鏈接:https://blog.csdn.net/weixin_40683253/article/details/81941583#commentsedit
博主還非常nice地給我發(fā)了數(shù)據(jù)集语御,感謝席怪!
1. 概念
決策樹是基于樹結(jié)構(gòu)來進行決策的挂捻。根結(jié)點包含樣本全集刻撒,葉結(jié)點對應于決策結(jié)果。其他的每個結(jié)點對應于一個屬性測試耿导,每個結(jié)點包含的樣本集合根據(jù)屬性測試的結(jié)果被劃分到子節(jié)點中声怔。
屬性:{色澤,根蒂舱呻,敲聲醋火,紋理,臍部箱吕,觸感}
屬性值: eg:色澤={青綠芥驳,烏黑,淺白}
2. 最優(yōu)劃分屬性選擇算法
信息熵(information entropy):D的信息熵:
為當前樣本集合D中第類樣本所占的比例茬高。
的值越小兆旬,則D的純度越高宿饱。
ID3算法:以信息增益(information gain)為準則來選擇劃分屬性愚铡。
屬性a對樣本集D進行劃分所獲得的信息增益:
表示D中所有在屬性a上取值為的樣本邑雅。
信息增益越大,使用屬性a來進行劃分所獲得的純度提升越大。選取信息增益最大的屬性作為劃分屬性。
C4.5算法:以增益率則來選擇最優(yōu)劃分屬性(先從候選劃分屬性中找出信息增益高于平均水平的屬性色冀,再從中選擇增益率最高的)
增益率:
CART算法:以基尼指數(shù)(來選擇劃分屬性。
基尼值:
3. python實現(xiàn)
完整代碼: