機器學習演算法2 決策樹

2021-07-17 04:39:32 字數 2537 閱讀 8585

本文總結於《machine learning in action》一書

一. 決策樹的一般流程

1. 收集資料:可以使用任何方法

2. 準備資料:數構造演算法只適應於標稱型資料,因此數值型資料必須離散。

3. 分析資料:可以使用任何方法,構造樹完成之後,我們應該檢查圖形是否符合預期。

4. 訓練資料:構造樹的資料結構

5. 測試資料:使用經驗樹計算錯誤率

6. 使用演算法:此步驟可以適應於任何監督學習演算法,而使用決策樹可以更好地理解資料的內在含義。

二. 決策樹的優缺點

缺點:可能會產生過渡匹配問題

適應資料型別:數值型和標稱型

三. 決策樹相關說明

(1)k近鄰與決策樹的對比:

k近鄰最大的缺點是無法給出資料的內在含義,決策樹的主要優勢在於資料形式非常容易理解。

(2)決策樹的目的:

決策樹的乙個重要任務是為了資料中蘊含的知識資訊,因此決策樹可以使用不熟悉的資料集合,並從中提取

一系列規則,在這些機器根據資料集建立規則時,就是機器學習的過程。

(3)應用領域

專家系統經常使用決策樹

四. 資訊理論

在決策樹中,劃分資料集的大原則為:將無序的資料變得更加有序。因此,這裡,資訊理論就變得尤為重要,資訊理論

是量化處理資訊的分支科學。

(1)資訊增益(information gain):

在劃分資料集之前之後資訊發生的變化成為資訊增益。知道如何計算資訊增益,我們就可以計算每個特性值

劃分資料集獲得的資訊增益,獲得資訊增益最高的特徵就是最好的選擇。

(2)夏農熵(shannon entropy)簡稱熵

集合資訊的度量方式成為夏農熵或簡稱熵,即資訊的期望值。

資訊的定義——符號xi的資訊定義

l(xi) = -log2

p(xi)

p(xi)

表示選擇該分類的概率

因此,熵的定義為:

h =  -sum(p(xi) * log2(p(xi)))      i = 1,2,...,n

熵計算將會告訴我們如何劃分資料集是最好的資料組織方式。

另外,度量集合無序程度的方法還有乙個,稱為基尼不純度(gini impurity),簡單的說就是乙個從乙個資料集中隨

機選取子項,度量其被錯誤分類到其他組裡的概率。

五. 額外補充關於python的知識點

1. 列表推導(list comprehension)

列表推導可以大量簡化**,使用很方便。可以通過乙個示例來介紹

示例:featlist = [example[i] for example in dataset]

等價於:

featlist=[ ]

for example in dataset:

更詳細的資料可以參考:

2. 集合的一種使用用途:

從列表中建立集合是python語言中得到列表中唯一元素值的最快方法。

3. python中關於列表作為函式的引數:

python語言在函式中傳遞的是列表的引用,在函式內部對列表物件的修改,將會影響該列表物件的整個生命

週期。4. python中函式的一種使用方法:

python中的函式可以像類(class)一樣使用新增屬性值。同樣地,可以使用內建函式hasattr()或者__dict__方法

來檢查函式或類的屬性值。

六. 遞迴建立決策樹

1. 決策樹的工作原理:

得到原始資料集,然後基於最好的屬性值劃分資料集(依據夏農熵),由於特徵值可能多於兩個,因此可能存在

大於兩個分支的資料集劃分。第一次劃分之後,資料將被向下傳遞到樹分支的下乙個節點,在這個節點上,我們可以

再次劃分資料。因此,我們可以採用遞迴的原則處理資料集。

2. 遞迴的終止條件1:

程式遍歷完所有劃分資料集的屬性,或者每個分支下的所有例項都具有相同的分類。如果所有例項具有相同的

分類,則得到乙個葉子節點或者終止塊。任何到達葉子節點的資料必然屬於葉子節點的分類。

3. 遞迴的終止條件2:

這裡,需要強調的是,除上述每個葉子節點的標籤完全相同,還存在另外一種情況,即使用完了所有特徵,仍

然不能將資料集劃分成僅包含唯一類別的分組。此時應該挑選出現次數最多的類別作為返回值。

七. 使用matplotlib繪製決策樹圖:需仔細研究

八. 小結

上述構造決策樹的方法稱之為id3。id3演算法可以用於劃分標稱型資料集。構建決策樹時,我們通常採用遞迴的方法

將資料集轉化為決策樹。且不需要構造新的資料結構,直接使用python中的字典儲存樹節點資訊即可。缺點在於,id3

演算法無法直接處理數值型資料,儘管我們可以通過量化的方法將數值型資料轉化為標稱型資料,但是如果存在太多的

特徵劃分,id3演算法仍會面臨其他問題。

後續將介紹其它的決策樹構造演算法,最為出名的是c4.5和cart

注意事項:決策樹構造存在過度匹配(overfitting)問題。為了減少過度匹配問題,可以裁剪決策樹,去掉一些不必要

的葉子節點,或者合併相鄰的無法產生大量資訊增益的葉節點,以此來消除過度匹配問題。

機器學習(2) 決策樹

前言 決策樹是一種機器學習的方法。決策樹是一種樹形結構,其中每個內部節點表示乙個屬性上的判斷,每個分支代表乙個判斷結果的輸出,最後每個葉節點代表一種分類結果。決策樹需要監管學習。監管學習就是給出一堆樣本,每個樣本都有一組屬性和乙個分類結果,也就是分類結果已知,那麼通過學習這些樣本得到的決策樹,這個決...

機器學習 2 決策樹

用年齡 收入 是否學生 信用度高低來判斷是否購買電腦為例子 資訊 如果待分類的事物可能劃分在多個類之中,則符號xi的資訊定義為 上例中,買電腦的概率為9 14,那麼yes的資訊為 同理,no的資訊為 資訊熵 即資訊期望值。公式如下 即 在決策樹id3演算法中,選擇使用資訊獲取量 informatio...

機器學習演算法 決策樹

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