cart決策樹使用「基尼指數」(gini index)來選擇劃分屬性。書上並沒有寫出具體的例子供參考,這裡給出乙個例子。
首先先列出求取基尼指數所需要用的公式。
資料集d的純度可用基尼值來度量。gini(d)越小,則資料集d的純度越高。(pk指的是正例在總體中的比例)
屬性a的基尼指數定義為:
求取得出屬性a的基尼指數後,再求取其他屬性的基尼指數,最後比較獲得基尼指數最小的屬性為最優劃分屬性,並繼續求取次級最優劃分屬性,以此類推,直到排序完成。
本例子運用的資料是書上給出的西瓜資料集2.0
這是色澤屬性的圖示。
根據圖示寫出程式。
依次求取色澤、根蒂、敲聲、紋理、臍部、觸感的基尼指數。如:# 求取基尼值
defgini_index_single
(a,b)
: single_gini =1-
((a/
(a+b))**
2)-(
(b/(a+b))**
2)return
round
(single_gini,4)
# 求取基尼指數
defgini_index
(a,b,c,d,e,f)
: zuo = gini_index_single(a,b)
zhong = gini_index_single(c,d)
you = gini_index_single(e,f)
sum= a+b+c+d+e+f
gini_index = zuo*
((a+b)
/sum
)+ zhong*
((c+d)
/sum
)+ you*
((e+f)
/sum
)return
round
(gini_index,4)
defgini_index2
(a,b,c,d)
: zuo = gini_index_single(a,b)
you = gini_index_single(c,d)
sum= a+b+c+d
gini_index2 = zuo*
((a+b)
/sum
)+ you*
((c+d)
/sum
)return
round
(gini_index2,
4)
通過比較得出,紋理屬性的基尼指數最小,為0.3046,為當前的最優劃分屬性。第一次分叉結束,接下來進行第二次分叉。(此時「紋理」屬性不再作為候選劃分屬性。)
以圖中第乙個分支節點(紋理=「清晰」)為例,計算其他屬性的基尼指數。
首先先計算該節點的純度。(即基尼值)
此時再計算其他屬性的基尼指數,紋理清晰的色澤、根蒂、敲聲、臍部、觸感的基尼指數分別為0.3333、0.1481、0.1852、0.1481、0.1481。「根蒂」、「臍部」、「觸感」三個屬性的基尼指數相等,且都比該節點的數值要小(0.3457<0.1481),所以該節點應當繼續進行分叉。此時我們選擇使用屬性「根蒂」繼續進行分叉。當我們使用「蜷縮」屬性進行計算時,由於該樣本中紋理清晰且根蒂蜷縮的西瓜都是好瓜,所以該節點無法繼續進行分叉。(即該節點基尼值為0,沒有更小的基尼值了)def
gini_index_single
(a,b)
: single_gini =1-
((a/
(a+b))**
2)-(
(b/(a+b))**
2)return
round
(single_gini,4)
gini_index_single(7,
2)0.3457
我們換用另外乙個節點「稍蜷」,發現可以繼續進行分叉,繼續分叉。def
gini_index_single
(a,b)
: single_gini =1-
((a/
(a+b))**
2)-(
(b/(a+b))**
2)return
round
(single_gini,4)
gini_index_single(5,
0)0.0
經過計算,最後得到的決策樹如下:
機器學習西瓜書筆記
概念 致力於通過計算的手段,利用經驗來改善系統自身的效能。其中,經驗以資料的形式存在。基本術語 資料集 記錄的集合。示例 樣本 每條記錄,關於乙個事件或物件的描述,反應事件或物件在某方面的表現或性質的事項。屬性 特徵 一條記錄 乙個樣本由多個屬性 特徵組成。屬性值 屬性或特徵的值。示例對應於乙個座標...
機器學習西瓜書 基本術語
一組記錄的集合,例如 注 d dd又稱為樣本的維數 資料集中每條記錄是關於乙個事件或物件的描述,例如 反映事件或物件在某方面的表現或性質的事項,例如 屬性上的取值,例如 屬性張成的空間,例如 假設有三種屬性 色澤 根蒂 敲聲,就可以張成乙個用於描述細化的三維空間,每個西瓜都可以在這個空間中找到自己的...
機器學習(西瓜書) 緒論筆記
正如我們根據過去的經驗來判斷明天的天氣,吃貨們希望從購買經驗中挑選乙個好瓜,那能不能讓計算機幫助人類來實現這個呢?機器學習正是這樣的一門學科,人的 經驗 對應計算機中的 資料 讓計算機來學習這些經驗資料,生成乙個演算法模型,在面對新的情況中,計算機便能作出有效的判斷,這便是機器學習。另一本經典教材的...