最近小芳的媽媽準備給小芳介紹相親對象,想問小芳願不願意去見見。
小芳:多大年紀了?
媽媽:26。
小芳:長的帥不帥?
媽媽:挺帥的。
小芳:收入高不?
媽媽:不算很高,中等收入。
小芳:是公務員不?
媽媽:是,在稅務局上班呢。
小芳:那好,我去見見。
以上小芳與媽媽的對話可以簡單歸納為以下的決策過程
其實以上小芳的決策過程與機器學習中的決策樹算法實作過程非常類似,決策樹顧名思義就是長得很像樹的一種模型,是機器學習中一種簡單而又經典的算法,接下來給大家簡單介紹一下決策樹的基本原理,并教大家學習如何使用scikit-learn來建構一個決策樹分類模型(決策樹也可以做回歸模型),最後使用此模型來預測鸢尾花的種類。
為了讓大家更好的了解決策樹模型的原理及實作過程,老shi再給大家舉個栗子
假設現在我們又采訪了一個妹紙,對以下10個男生做出相親與否的判斷,資料具體情況如下:
ok,這個栗子很簡單,隻有10個男生(樣本),包括編号列的6個已知條件(特征),最後一列是目标變量(因變量)思考一下,單單看這10條資料,我們能不能快速找出其中的規律呢?(最怕此時空氣突然安靜?)前面說過妹紙的決策過程與決策樹非常類似,而決策樹的實作過程又可以簡單歸納為以下流程圖
資料集就代表樣本資料,屬性集就是特征
聰明的同學想必已經從流程圖中注意到了一個很關鍵的東西--最大資訊增益。有同學可能會問,資訊增益是什麼東西??說到資訊增益,那就要從資訊熵說起了,很久很久以前...啊不,跑題了。。。簡單地說資訊熵就是随機變量的不确定度,資訊熵越大,随機變量的不确定度越大(還不明白??)比方說太陽明天從東邊升起,西邊落下,這件事的不确定度就是0,因為我們都知道這是個必然事件。而如果有個人說明天會下雨,那這個就不一定了,此時明天下雨的可能性就是不确定度,這樣說大家該明白了吧?
資訊增益就是按照某個特征劃分整個資料(族群),劃分前後資料(族群)資訊熵的內插補點大小,資訊增益越大,表明該特征越有區分度。比如,妹紙隻見帥的,醜的都不見,那相貌這個特征就是一個很有區分度的特征(資訊增益最大)因為這個特征可以最快讓妹紙把決策做出來,這時就不用再扯收入、職業、身高那些了,因為這些都不是妹紙最看重的特征。是以簡單地說,決策樹實作過程就是依次找出資訊增益最大的特征,然後劃分資料(族群)的過程,直到将原來的整個資料(族群)劃分開來或實作我們既定目标的過程。
以上說的都是按資訊增益來劃分資料(族群),這叫ID3算法,因為ID3算法會偏向取值類型較多的特征,後來人們在ID3算法基礎上作出了改進,提出了C4.5算法,C4.5算法是按照資訊增益率來劃分資料(族群)的,這樣可以有效避免算法偏向多取值特征的問題。
好的,到這裡相信大家已經對決策樹分類模型實作的原理有了一個基本認識。最後獻上利用決策樹模型預測鸢尾花種類(多分類)的模型代碼,有興趣的同學自己可以嘗試一下。下節課給大家帶來随機森林算法,不見不散~