Spark MLlib 決策樹算法(一)——理論基礎

決策樹算法進行分類的基本依據

在本文的內容中主要參考《Spark MLlib 機器學習算法、源碼及其實戰詳解》介紹了一些決策樹的基本理論知識,只要內容爲決策樹的特徵選擇。在特徵選擇中主要以信息熵作爲特徵選擇的主要依據進行處理依據。

1 決策樹

決策樹(Decision Tree)是一個樹結構(可以是二叉樹或者非二叉樹),決策樹又節點和有向邊組成。
決策樹節點類型分類:內部節點,葉子節點。內部節點表示屬性,外部節點表示一個類。其每一個內部節點表示一個特徵屬性上的測試,每一個分支代表這個特徵屬性在某個值閾上的的輸出,而每個葉子節點代表一個類型。
決策樹分類的本質:從訓練集上歸納出一組分類規則,通常採用啓發式學習的方法,即局部最優。具體做法是每一次挑選feature時都挑選當前條件下最優的那個featrue作爲劃分規則。
決策書學習的三個步驟:
(1)特徵選擇
(2)決策樹生成
(3)決策樹的修剪

2 特徵選擇

特徵選擇的標準:找出局部最優秀特徵,判斷這個特徵對當前數據集的分類效果。也就是按照這個特徵進行分類之後,數據集是否更加有序(不同類的數據儘量被分開)
在當前節點用哪個屬性特徵作爲判斷進行切分(也叫分類規則),取決於切分後節點數據集合中類別的有序純度。

衡量節點的有序純度:
(1)熵
(2)基尼
(3)方差

(1)熵

1)信息量

信息量是由一個事情發生的概率決定的。經常發生的事情沒有什麼信息量。在信息論中,香農用概率表示一個事件包含的信息量的大小,大概率事件發生的信息量較小,小概率事件包含有較大的信息量。(我們不妨這樣理解,每一種類型的時間包含的信息量的總數是相同的,因爲其經常發生所有每一個時間發生所攜帶的信息量較小。)
信息量的具體定義如下:

Ie=log2pi

根據上述的公式可知:當pi 的值越大時,Ie 的值越小。
例如,有26個英文字母,每個字母在文章中出現的次數是平均數,則每一個字母的信息來量大小爲:

Ie=log2126=4.7

而每個漢字有2500個假如每個漢字出現的次數是平均數,那麼每一個漢字的信息量爲:
Ie=log212500=11.3

2)信息熵

信息熵:信息量的期望,信息熵的公式如下:

H(x)=E(I(x))=i=1np(xi)I(xi)=i=1np(xi)logbp(xi)

值得注意的是:在上述公式中的b 可以取值爲2可以取值爲其他值,當取值爲2時單位爲bit

條件熵的公式:

H(x|y)=i=1np(xi|y)logbp(xi|y)

表示在已知某一個特定的條件y 的情況下,信息xi 的不確定程度(熵)。

3)信息增益

分類前,數據中可能出現各種類的情況,比較混亂,不確定性強,熵比較高;分類後,不同類的數據得到較好的劃分,在一個劃分中大部分數據是同一類的數據,比較有序,不確定性降低,熵比較低。信息增益就是用於評價這種熵的變化。
信息增益:特徵A 對訓練數據集D 的信息增益爲g(D,A) ,定義爲集合D 的經驗熵H(D) 與特徵A 在給定條件D 的經驗條件熵H(D|A) 之差,即:

g(D,A)=H(D)H(D|A)

在上述公式中,H(D) 根據信息熵的公式計算得到,而H(D|A) ,D 根據A 劃分爲nD1...Dn ,那麼H(D|A) 就是所有H(Di) 的期望(平均值):

H(D|A)=i=1n|Di||D|H(Di)

4)信息增益比

信息增益只是一個相對的值,因此信息增益的大小在一定程度上依賴於信息熵H(D) 的大小,爲了更好地反應信息增益判斷分類的依據,我們通過信息增益比來反映這一個過程。
信息增益比的定義如下:特徵A對訓練數據集D的信息增益比gR(D,A) 定義爲其信息增益g(D,A) 與分裂信息熵splitinfo(A) 之比,具體的計算公式如下:

gR(D,A)=g(D,A)splitinfo(A)

其中splitinfo(A)=H(A)=vj=1|Dj||D|log2(|Dj||D|)

(2)基尼

定義公式如下:

i=1Cfi(1fi)

其中,fi 是一個分區內部第i 個標籤的頻率,C 是該分區中的類別總數。Gini 是不純度度量的是類型別分錯的可能性(類型的概率乘以分錯的概率)

(3)方差

方差定義的公式:

1Ni=1N(yiμ)

其中,yi 是某個實例的標籤,N 是實例的總數,μ 是所有實例的均值。對應的信息增益比可以參考熵的中的概念。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章