17 機器學習 決策樹分類演算法原理

2021-09-27 11:42:57 字數 2312 閱讀 9804

決策樹(decision tree)——是一種被廣泛使用的分類演算法。

相比貝葉斯演算法,決策樹的優勢在於構造過程不需要任何領域知識或引數設定

在實際應用中,對於探測式的知識發現,決策樹更加適用

通俗來說,決策樹分類的思想類似於找物件。現想象乙個女孩的母親要給這個女孩介紹男朋友,於是有了下面的對話:

女兒:多大年紀了?

母親:26。

女兒:長的帥不帥?

母親:挺帥的。

女兒:收入高不?

母親:不算很高,中等情況。

女兒:是公務員不?

母親:是,在稅務局上班呢。

女兒:那好,我去見見。

這個女孩的決策過程就是典型的分類樹決策。

實質:通過年齡、長相、收入和是否公務員對將男人分為兩個類別:見和不見

假設這個女孩對男人的要求是:30歲以下、長相中等以上並且是高收入者或中等以上收入的公務員,那麼這個可以用下圖表示女孩的決策邏輯:

上圖完整表達了這個女孩決定是否見乙個約會物件的策略,其中:

圖中紅色箭頭表示了上面例子中女孩的決策過程。

這幅圖基本可以算是一顆決策樹,說它「基本可以算」是因為圖中的判定條件沒有量化,如收入高中低等等,還不能算是嚴格意義上的決策樹,如果將所有條件量化,則就變成真正的決策樹了。

決策樹分類演算法的關鍵就是根據「先驗資料」構造一棵最佳的決策樹,用以**未知資料的類別。

決策樹:是乙個樹結構(可以是二叉樹或非二叉樹)。其每個非葉節點表示乙個特徵屬性上的測試,每個分支代表這個特徵屬性在某個值域上的輸出,而每個葉節點存放乙個類別。使用決策樹進行決策的過程就是從根節點開始,測試待分類項中相應的特徵屬性,並按照其值選擇輸出分支,直到到達葉子節點,將葉子節點存放的類別作為決策結果。

假如有以下判斷蘋果好壞的資料樣本:樣本紅

大好蘋果11

1121

0130

1040

00樣本中有2個屬性,a0表示是否紅蘋果。a1表示是否大蘋果。假如要根據這個資料樣本構建一棵自動判斷蘋果好壞的決策樹。

由於本例中的資料只有2個屬性,因此,我們可以窮舉所有可能構造出來的決策樹,就2棵,如下圖所示:

顯然左邊先使用a0(紅色)做劃分依據的決策樹要優於右邊用a1(大小)做劃分依據的決策樹。

當然這是直覺的認知。而直覺顯然不適合轉化成程式的實現,所以需要有一種定量的考察來評價這兩棵樹的效能好壞。

決策樹的評價所用的定量考察方法為計算每種劃分情況的資訊熵增益:

如果經過某個選定的屬性進行資料劃分後的資訊熵下降最多,則這個劃分屬性是最優選擇

熵:資訊理論的奠基人夏農定義的用來資訊量的單位。簡單來說,熵就是「無序,混亂」的程度。

通過計算來理解:

3.2.1 原始樣本資料的熵

樣例總數:4

好蘋果:2

壞蘋果:2

熵:-(1/2 * log(1/2) + 1/2 * log(1/2)) = 1

資訊熵為1表示當前處於最混亂,最無序的狀態。

3.2.2 兩顆決策樹的劃分結果熵增益計算

樹1先選a0作劃分,各子節點資訊熵計算如下:.

因此選擇a0劃分後的資訊熵為每個子節點的資訊熵所佔比重的加權和:e = e1*2/4 + e2*2/4 = 0

選擇a0做劃分的資訊熵增益g(s, a0)=s - e = 1 - 0 = 1.

事實上,決策樹葉子節點表示已經都屬於相同類別,因此資訊熵一定為0。

樹2先選a1作劃分,各子節點資訊熵計算如下:

因此選擇a1劃分後的資訊熵為每個子節點的資訊熵所佔比重的加權和:e = e1*2/4 + e2*2/4 = 1。也就是說分了跟沒分一樣!

選擇a1做劃分的資訊熵增益g(s, a1)=s - e = 1 - 1 = 0.

因此,每次劃分之前,我們只需要計算出資訊熵增益最大的那種劃分即可。

經過決策屬性的劃分後,資料的無序度越來越低,也就是資訊熵越來越小

梳理出資料中的屬性

比較按照某特定屬性劃分後的資料的資訊熵增益,選擇資訊熵增益最大的那個屬性作為第一劃分依據,然後繼續選擇第二屬性,以此類推

機器學習分類器 決策樹

一 決策樹 經常使用決策樹來處理分類問題,決策樹也是最經常使用的資料探勘演算法,不需要了解機器學習的知識,就能搞明白決策樹是如何工作的。knn演算法可以完成很多分類任務,但它最大的缺點就是無法給出資料的內在含義,決策樹的主要優勢在於資料形式非常容易理解 決策樹能夠讀取資料集合,其乙個重要任務是為了資...

機器學習演算法 決策樹

決策樹類似一中策略或者條件選擇,其中各個節點代表選擇條件,各個葉子結點代表可能達到的結果,決策樹 decision tree 是乙個樹結構 可以是二叉樹或非二叉樹 其每個非葉節點表示乙個特徵屬性上的測試,每個分支代表這個特徵屬性在某個值域上的輸出,而每個葉節點存放乙個類別。使用決策樹進行決策的過程就...

機器學習演算法 決策樹

決策樹的使用主要是用於分類。年齡收入 信用是否學生 是否買電腦年輕高 高是是中年 低中否否 老年中低否 是對於一些適合分類的資料中,考慮各種因素對結果的影響大小進行決策,一般是先選取區分度較高的因素。比如說,年齡大小這個因素在很大程度上影響我們的結果 是否買電腦。那麼,年齡因素將作為第乙個決策因素出...