第二章 文獻探討
2.3 分類
2.3.2. 決策樹(Decision Tree)
國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
圖 2.5:核函數映射,資料來源:林宗勳(2000)
如何選擇適用的核函數對於支援向量機亦是相當重要的一個部份,目前常見的核 函數則有以下三種。
1.線性(𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿): K�xi , xj� = xi∙ xj (2.16) 2.多項式(𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝐿𝐿𝑃𝑃𝑃𝑃𝐿𝐿𝐿𝐿𝑃𝑃): 𝐾𝐾�𝑥𝑥𝑖𝑖 , 𝑥𝑥𝑗𝑗� = �𝛾𝛾𝑥𝑥𝑖𝑖 𝑥𝑥𝑗𝑗+ 𝛾𝛾�𝑑𝑑,𝛾𝛾 > 0 (2.17) 3.徑向基函數(𝑅𝑅𝐿𝐿𝑅𝑅𝐿𝐿𝑅𝑅𝑅𝑅 𝐵𝐵𝐿𝐿𝑅𝑅𝐿𝐿𝑅𝑅 𝐹𝐹𝑅𝑅𝐿𝐿𝐹𝐹𝐹𝐹𝐿𝐿𝑃𝑃𝐿𝐿): 𝐾𝐾�𝑥𝑥𝑖𝑖 , 𝑥𝑥𝑗𝑗� = 𝐿𝐿𝑥𝑥𝑒𝑒 �−�𝑥𝑥𝑖𝑖−𝑥𝑥𝜎𝜎2𝑗𝑗�2� (2.18) 本研究選擇使用徑向基函數(RBF)核函數,其具有以下特點:能分類非線性且高 維之資料,只須調整 Cost 與 Gamma 兩項參數,減少操作之複雜性,亦可達較高 之預測能力。
2.3.2.決策樹(Decision Tree)
決策樹的發展久遠,是資料探勘中的分類技術,命名由來在於所生成的分類或預 測模型顯示方式為一種樹狀結構的模型,其方法的原理是藉由分類的規則來分類 資料,分類的規則一般而言都是自上而下,每個事件都可能引出兩個或多個事件,
導致不同的結果並從中歸納出資料中各屬性間的關係,所產生出樹狀的結構。而
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
產生出來的決策樹,也能利用來做樣本的預測。
進一步解釋,如下圖中,每個節點代表一個屬性,樹葉代表分類類別,而每個分 枝代表屬性的某個值或某個範圍。由樹的根節點開始,按照分類的問題與屬性展 開各節點,經由分枝條件走至樹葉,樹葉部份則為得到的結果,從根節點到樹葉 的過程,可轉換歸納成相對應的分類法則,就是決策樹的最大特色:
1. if (Attribute1 = condition1 and Attribute2 = condition4) then class1 2. if (Attribute1 = condition3) then class1
3. if (Attribute1 = condition2 and Attribute3 = condition6) then class2 .
. .
圖 2.6:決策樹,資料來源:本研究整理
而如何做到決策樹生成?使用訓練資料來建立決策樹,每一個節點,依據屬性選 擇指標,從現有未被挑選過的屬性中,選出分類能力最好的屬性做為樹的內部節 點,利用內部節點的所有不同資料做節點分割(Splitting Node),產生出對應的 分支,針對每一個新產生的分支,將訓練資料重新排列,以進行下一個內部節點
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
的產生,重複上面的過程,直到所有的新產生節點都是樹葉節點為止。
在上述決策樹生成中,顯而易見屬性選擇指標扮演關鍵角色,屬性選擇指標主要 功能是用來選擇出某一個屬性,透過該屬性,將帶有類別標記的資料作適當的分 類。理想情況是:所挑選的屬性可以使得分類結果中,同類別所包含的資料集合 具有高同質性。因此,屬性選擇指標也稱為分割條件。屬性選擇指標,根據不同 的決策樹演算法有不同的形式,常見的有 Quinlan(1979、1992)提出的 ID3、C4.5 演算法,使用「資訊獲利(Information Gain)」做為屬性選擇指標。
ID3 與 C4.5 演算法雖有不同,本質上仍是透過熵(Entropy)為分割概念,所謂的 熵是對某個系統之不確定性或混亂程度的度量方法,在這我們指的是某屬性中,
資料分佈的分散程度,混亂程度愈高則愈無規則,決策樹就是要降低屬性中資料 分佈的分散程度,最低者即是最佳的樹狀結構。熵值計算方式為:
Entropy(S) = � −
𝑐𝑐 𝑖𝑖=1
𝑃𝑃𝑖𝑖log2𝑃𝑃𝑖𝑖 (2.19) 其中
S=資料集合
C=類別數目
𝑃𝑃𝑖𝑖 = 類別 i 在資料集合中出現的機率
ID3 在建構決策樹過程中,就是以熵為基礎,計算出資訊獲利的值,並選擇最大 的資訊獲利值作為分類屬性。圖 2.7 中,x 軸代表某類別顯現的機率,y 軸代表 熵值大小,當出現的機率為 0.5 時,表示資料的不確定性最高,熵的值最大,相 對地,當某類別顯現的機率越低或越高,則熵值愈小,代表資訊的凌亂程度愈低。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
圖 2.7:熵值分佈範圍,資料來源: 陳士杰
至於資訊獲利的計算方式,假設屬性 A 中有 n 個不同值{a1,a2 ,…, an},
而資料集合 S 會因為這些不同值而分割出 n 個不同的資料子集合{s1,s2 ,…,
sn},屬性 A 在資料集合 S 的資訊獲利 Gain(S, A)被定義為:
Gain(S, A) = Entropy(S) − �|𝑆𝑆𝑗𝑗|
|𝑆𝑆| Entropy�𝑆𝑆𝑗𝑗�
𝑛𝑛 𝑗𝑗=1
(2.20)
其中
Entropy(S):資料集合 S 整體的亂度
Entropy(𝑆𝑆𝑗𝑗):資料子集合 𝑆𝑆𝑗𝑗 的亂度,其中j = 1, 2, …, n
|𝑆𝑆
𝑗𝑗|
|𝑆𝑆|
:第 j 個子集合之資料個數佔總資料集合的比率(即:權重)Gain(S, A)表示利用屬性 A 對資料集合 S 進行分割的獲利,Gain 值愈大,表示 屬性 A 內資料的凌亂程度愈小,用來分類資料會愈佳;Gain 值愈小,表示屬性 A
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
內資料的凌亂程度愈大,用來分類資料會愈差。
ID3 演算法所使用的資訊獲利會傾向選擇擁有許多不同數值的屬性,例如一個產 品資訊的資料集中,「產品編號」欄位,每一個產品的產品編號皆不同,若依產 品編號進行分割,會產生出許多分支,且每一個分支都是很單一的結果,其資訊 獲利會最大。但這個屬性對於建立決策樹是沒有意義的。
C4.5 演算法利用屬性的「獲利比率(Gain Ratio)」克服此問題。計算屬性 A 的 獲利比率時,除資訊獲利外,尚需計算該屬性的「分割資訊值(Split
Information)」:
SplitInfo(S, A) = − �|Sj|
|S|
n j=1
∙ log2|Sj|
|S| (2.21)
求出屬性 A 的分割資訊值後,獲利比率 GainRatio(A)則為:
GainRatio(A) = Gain(S, A)
SplitInfo(S, A) (2.22)
擁有最大獲利比例的屬性被設為分割屬性。C4.5 可說是 ID3 的改進版本,在 ID3 基礎上增加了對連續屬性的處理以及對選擇擁有許多不同數值但不具意義的屬 性之處理。
在建構決策樹的過程中,增加樹的階層固然可以提高預測精確度,但是很重要的 一點是必須注意到是否造成過度學習,當在相同的精準度的結果時,如果樹的階 層愈少是愈好的。此論述根據奥卡姆的剃刀理論(Occam's Razor)而來:「當實驗
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
取得的事實能夠得到說明時,不應增添不必要的假設,應把它一剃而盡。」最簡 單的解釋就是最好的解釋。當選擇某一個屬性做為決策樹的一個內部節點,若會 導致該屬性的指標值低於事先定義的臨界值時,則應該停止此一節點及其以下的 所有子節點之成長,至於臨界值的定義則常運用統計門檻值加以衡量。