一般分類工作之流程如圖 2-2 所示。蒐集文件資料後,進行前置處理過濾雜訊,
再經由特徵挑選進一步地精簡特徵,盡量取出最有利於分類的特徵,而後將文件以特 殊的形式表現特徵(多數是採用向量表示法),經由分類演算法分類後轉為有用的資訊 進行應用。
圖 2-2 一般分類流程圖
應用於文件分類常見的演算法有決策樹(Decision Tree)、Naïve Bayesian、K-NN,
以及近期新興的SVM。決策樹是一個類似流程圖的樹狀結構,由各種不同的條件於不 同階段形成的節點及節點間的分支所構成;Naïve Bayesian 利用條件機率與獨立的假 設預測分類結果;而K-NN 則利用訓練資料與測試資料之間的距離,進行分類的動作;
SVM 分類器使用核心函數,進行訓練學習。
Data Collection
Preprocessing
Feature Selection
Classification
Application
2.1.1. 決策樹 (Decision Tree)
決策樹[28][30]是使用於資料探勘(Data Mining)與機器學習(Machine Learning)最 受歡迎的分類演算法之一。決策樹是一個類似流程圖的樹狀結構。此樹狀結構之內部 節點(Node) 表示某一種屬性的測試,如圖 2-3 所示,每個分枝(Branch)則代表一種測 試 結 果 , 而 每 個 樹 葉 節 點(Leaf Node) 則 代 表 類 別 (Class) 或 類 別 分 佈 (Class Distributions)。
圖 2-3 決策樹示意圖
決策樹歸納法(Decision Tree Induction)的基本演算法是一貪婪演算法(Greedy Algorithm),它是以從上到下遞迴的(Top-down Recursive)且採用 Divide-and-Conquer 的 方式來建構決策樹,使得訓練資料 (Training Data)中屬於同一類別的資料最後歸在此 決策樹的同一個樹葉節點(Leaf Node)中。由訓練資料建立好決策樹後,一筆新進的資 料可經由決策樹被歸到某個樹葉節點,完成此資料的分類工作。
在決策樹的每個節點上使用信息增益(Information Gain, IG),其是基於熵(Entropy) 的度量作為啟發資訊(Heuristic Information),並選擇某個能夠將樣本分類的最佳屬性。
這種度量稱作屬性選擇度量(Attribute Selection Measure)或分裂的優良性度量(Measure of the Goodness of Split)。透過 2.2.3 節的方法分別計算每個屬性的 IG,選 IG 值最高的 作為分裂的測試屬性。圖 2-4 為決策樹依測試屬性分枝的示意圖,若有 m 個屬性,則 此決策樹高度不會超過
m。用此方法以 Top-down Recursive 的方式建立出決策樹。
Root Node
Leaf Node Leaf Node
Set of possible answers Set of possible answers Branches
圖 2-4 決策樹測試屬性示意圖
圖 2-5 為著名的決策樹歸納演算法 ID3[26]的一種版本,使用 IG 以 Top-down Recursive 方式建立的過程:
1) 由根節點(Root Node)開始。
2.1.2. Naïve Bayesian Classifier
貝氏(Bayesian)分類法[11][12]是基於統計學所發展的分類方法,可以預測分類成 員關係的可能性,例如給定樣本屬於一個特定類別的機率。
現有一筆資料
d 和類別
ic ,依照貝氏定理(Bayes Theorem),
kd 屬於
ic 的機率為:
kMax height = m Attribute Test
#1
Attribute Test
#2 Attribute Test
#2 Attribute Test
#2
Subset 1 Subset 2 Subset 3
( ) ( ) ( )
件獨立(Class Conditional Independence)的假設。假設類別c 和
kd 的屬性值是條件獨立
i 的,也就是在屬性之間並不存在相依關係,如此一來P d c 可簡化為:
( | )i k而如此化簡之後所建構之分類器,即為Naïve Bayesian Classifier。儘管這個條件 獨立的假設在現實生活中鮮少成立,許多研究中Naïve Bayesian 卻有不錯的效果。
2.1.3. K-最鄰近分類法 (K-nearest Neighbor Classifier, K-NN)
2.1.3.1. 最鄰近分類 (Nearest Neighbor Rule, NN)
最鄰近分類法(Nearest Neighbor Rule, NN)在許多分類統計教科書中都有討論,如 [12][20],其所根據的基礎是「物以類聚」,換成數學語言來說:若以空間中的點來表
圖 2-6 NN 實例
圖 2-6 為 NN 的實例:訓練資料被分入兩個類別
C
1(三角形)與C
2(正方形),其中C
1的資料與未知資料x(圓形)最接近,於是 x 被標示屬於 C
1。2.1.3.2. K-最鄰近分類 (K-Nearest Neighbor Rule, K-NN)
在訓練資料雜訊很強的情況下,若只用最靠近的資料來決定類別,可能會失之武 斷,因此另外有一個常見的做法,先求取最接近的
k 個資料點,再根據對應的 k 個類
別資訊進行投票,以決定最後的類別。這種方法稱為k-最鄰近分類法(K-nearest
Neighbor Rule, K-NN),也就是對未知類別之資料求出前k 個最靠近的鄰居來投票決定
此資料之類別。圖 2-7 為 K-NN 的實例,取 k=3,同前例,有兩個類別
C
1(三角形)與C
2(正方形)。與未知資料
x(圓形)最接近的三個鄰居中,因為有兩個來自 C
2,於是x 被標示屬於 C
2。 決定k 值大小有以下兩個原則:
1)
k 值必須大到足以減少誤分 x 的機率。
2) 為了正確評估
x 真正屬於的類別,k 值必須夠小,讓選出來的參考資料盡量靠
近x。
Training data∈C2
Training data∈C1 Testing data x
圖 2-7 K-NN 實例
2.1.4. Support Vector Machines (SVM)
支援向量機(Support Vector Machines, SVM)最早由 Vapnik 於 1979 年提出[36],是 一種以統計學習理論(Statistical Learning Theory)為基礎,而發展出來的機器學習系 統。SVM 的應用領域相當廣,包含:生物資訊(Bioinformatics)、資訊探勘、影像識別 (Image Recognition)、文字分類(Text Categorization)、手寫數字辨識(Hand-written Digit Recognition)等範圍。
當有一些資料要分成兩類,這些資料點不一定位在二維空間 R2,可能在多維的空 間,SVM 的概念為找出一個超平面(Hyperplane)3,將分屬於兩個類別的資料點4分隔 開。這個超平面與最靠近的資料點之間的距離稱為邊界(Margin),其值越大越理想,
因為能將這些訓練資料盡量明確地區隔開。當有新進未知類別的資料,期望可利用此 超平面正確判定新資料所屬的類別,為此要盡量找出一個邊界值最大的超平面
3 超平面(Hyperplane),由高維空間對應到三維空間上的平面。
4 SVM 中的資料皆以向量(Vector)表示之,即每筆資料都是高維空間中的一個向量。
Training data∈C2
Training data∈C1 Testing data x
(Maximum-margin Hyperplane)或稱為最佳超平面(Optimal Hyperplane),而空間中最靠 近最佳超平面的資料點稱為支持向量(Support Vector)。
圖 2-8 SVM 概念示意圖
假設有
n 個資料點表示為:
{( , ),( , ),...,( , ) |JGx c
1 1 JJGx c
2 2 JJGx c
n n ∀ =i
1... ,n c
i∈ + −{
1, 1 }}
,意 即用±1 來標示資料點JGxi
所屬的類別。拿以上這些資料點作為訓練資料,找出最佳超平 面並用以建構SVM,表示為:
0 w x b⋅ − =
JG G (2.3)
其中wJG
代表margin,b 為一常數。
假設
x
1與x
2分別為+1 類別與−1 類別之 support vector,對於分別通過 x1與x
2且與 最佳超平面平行的兩個超平面,我們將其定義為p
1與p
2。經由(2.4)推導可得知要求得 最大的Margin 相當於求w
JG的最小值:
1 1
此外,由於support vector 為最佳超平面之訓練資料,因此不可能有其他訓練資料 存在於
p
1與p
2之間,則可得條件式(2.5): 劃最佳化問題(Quadratic Programming Optimization Problem, QP)。SVM 經過學習之後,對於未知類別的新資料,可以依照規則(2.6)分類之: