第三章 系統架構與研究方法
3.8. 機器學習
國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
23
據王石番(1991)書中內容,信度檢定需達到 0.80 以上信度係數標準。
3.8. 機器學習
過去在文字訊息機器自動分類的應用上,大都運用於垃圾郵件和垃圾訊息的過濾 機制上,對於訊息多類別分類的運用則在少數。而災難發生時對於資訊的需求具 有較大的急迫性,網路上傳遞的文字訊息卻過於龐大遠超出人力所及之上,難於 有效的時間內提供足夠決策或參考的資訊,在這樣的矛盾下,若能透過機器學習 的方式建立自動分類模式,簡化災難時的巨量文字訊息為可用的資訊,提供救災 防災單位進一步的運用。
機器學習(Machine Learning)所關注的是電腦程式所能達到的學習,如何 透過結合統計、機率等方法將經驗累積達到自動學習的效果。只要給定問題的範 圍和訓練資料(Training Data),由資料中選擇特徵資訊(Feature Selection),然 後建構資料的模型(Model Selection),把模型當做學習的成果,我們可以將之用 來預測未知資料內容(如類別)。
3.8.1. TFIDF
在一般情形下,一個詞彙出現在文件中的次數越高,代表這個詞彙在文章中越重 要,但並不是所有詞頻(Term Frequency)較高的詞彙,都具有好的文章代表性。
因此我們也會注意詞彙在整個文件集中,出現的篇數有多少來看詞彙的重要性。
詞彙在文件集合中出現的篇數越少,表示越可以被用來區隔文件,反之,出現篇 數越多時表示詞彙狠普遍不具有代表性。詞彙出現的文件頻率和其重要性具有反 比關係,所以,衍生出逆向文件頻率(Inverse Document Frequency)作為詞彙普 遍重要性的度量。
綜合上述兩個要素,Salton 提出 TF-IDF(Term Frequency - Inverse Document
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
24
Frequency)這種統計方法[20],在資訊檢索(Information Retrieval)領域中,常 用來評估一個詞彙對於一個文件集的重要程度。其算式如下所示:
tf(𝑡, 𝑑) = f(𝑡, 𝑑)
∑{f(𝑤, 𝑑): 𝑤 ∈ 𝑑}
t:詞彙,d:文章(資料集中的發文)
f(t.d):該詞彙在文章中出現的次數
∑{f(𝑤, 𝑑): 𝑤 ∈ 𝑑}:
該文章的詞彙總數詞頻(Term Frequency,TF)是指一個詞彙於文件中出現的頻率,為了避免 單純使用詞彙次數會出現的偏差(在一份長文字文件裡出現的次數會高於短文字 文件),除以文章中的詞彙總數來標準化數值。
idf(𝑡, 𝐷) = log |𝐷|
|{𝑑 ∈ 𝐷: 𝑡 ∈ 𝑑}|
t:詞彙,D:資料集,d:文章
|D|:資料集中的文章總數
|{𝑑 ∈ 𝐷: 𝑡 ∈ 𝑑}|:出現該詞彙的文章數
逆向文件頻率(Inverse Document Frequency,IDF)是用來表示一個詞彙在 整個文件庫中的普遍重要程度。如果包含某個詞彙的文件越多,代表這詞彙在文 件庫中較不具有分辨的重要性,IDF 的數值就較低。
結合詞頻與逆向文件頻率的想法,可以得到 TF-IDF = tf × idf 的計算式。
若一個詞彙在文件中具有高的詞頻,而在整個文件庫中有較低的文件頻率,會有 高的 TFIDF 權重數值。這個 TFIDF 的方式會傾向於會傾向於過濾掉太常見的詞彙,
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
25
保留較重要的詞彙。
3.8.2.
向量空間模型向量空間模型(Vector Space Model)的概念最早由 Salton 於 1975 年提出[21],
是一個應用於資訊擷取與過濾、索引文件和評估相關性的一個代數模型。向量空 間模型中,將每個文件的重要詞彙作為代表文件的屬性,聯集所有的屬性表示為 高維向量空間中的的獨立維度,形成文件的屬性向量。每個維度為文件中的關鍵 詞彙,給予每個詞彙一個權重數值,代表詞彙在文件中的重要性,即能表示文件 在高維空間中的情形。如下圖 3 的向量空間示意圖,每一個文件由三個詞彙權重
組成了一個向量 ,計算出每個詞彙的權重數值就可以決定文件在
空間中的位置。
圖 3、向量空間示意圖
在本研究中,我們先將每篇發文的內容視為一個文件,挑選出具有代表性的 詞彙作為維度,把每個文件表示成一條向量內容。向量中的每一個維度是一個獨 立的詞彙內容,如下式子所示:
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
26
再計算每篇文件中這些詞彙的 TF-IDF(Term Frequency - Inverse Document Frequency)權重數值,代入上式中詞彙所屬的維度位置,便可以得到每篇文件 的屬性向量。
3.8.3.
文件特徵選取特徵選取(Feature Selection)又被稱為子集選取,依據特定的評估指標,從原有 的特徵集合中挑選出具有鑑別能力的有效特徵,產生最佳的特徵子集合,使得績 效評估指標可以到達最佳化。也就是說,特徵選取是在我們訓練分類器模型時,
在無損機器學習演算法的效能的情形下,過濾掉沒有效用、不具關鍵影響力和具 有類似鑑別能力的雜訊特徵,僅保留下真正對效能指標有影響的特徵資料,來達 到降低特徵空間維度的目的。對於文件分類的特徵選取就是刪除對於分類準確沒 有影響的詞彙特徵。
文件分類時特徵選取的方法,常被使用的統計指標有資訊量增益比例
(Information Gain)、共同資訊量(Mutual Information)和卡方分析(CHI-Square Test),利用上述統計方法計算每個詞彙指標值,排序後以特定閾值(threshold)
過濾的方式,挑選出有影響力的特徵詞彙子集合。在先前 Yiming Yang 對文件分 類時特徵選取方法的研究[22]中發現,卡方分析(CHI-Square Test)和資訊量增 益比例(Information Gain)的效果優於共同資訊量(Mutual Information)。在我 們的研究中選擇卡方分析作為特徵選取的統計方法。
卡方分析(χ2 Statistic measure, CHI-Square Test)的方法又稱為獨立性檢定,
是用來確定兩個組別的獨立性,使用在文件分類的特徵選取上,即表示用來觀察 詞彙與類別之間的獨立性,越高的數值代表詞彙與類別的相關性越高。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
27
卡方分析的數值計算方式如下公式:
詞彙
是 否
類 別
是 A C
否 B D
t:詞彙 c:類別
A:同時出現指定詞彙與類別的數量 B:出現指定詞彙但是不在類別中的數量 C:類別中其他非指定詞彙的數量
D:不在類別中也非指定詞彙的數量
計算每個詞彙與類別的數量,我們每個詞彙取得兩個卡方值,一個為平均卡 方值( ),一個為最大卡方值( ),如下式子:
平均卡方值代表的是詞彙與所有類別的平均關係,一般來說數值越高代表詞 彙與大部分類別有較好的相關性。最大卡方值代表詞彙與某類別特別高相關性,
或許對所有類別並非都具有好的相關性,但是對某個類別特別有高相關,可能具 有好的鑑別力。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
28
3.8.4.
支持向量機(Support Vector Machine)在我們的研究中所使用的機器學習方法,是一種監督式學習(Supervised Learning)
法。監督式學習是由有標示的訓練資料中學習建立一個模型,在利用模型來預測 其他資料的標示,前項敘述中的專家文件分類,即為監督式學習的標示。
常用於文件分類的監督式學習方法有單純貝氏分類(Naïve Bayes)和支持向 量機(Support Vector Machine, SVM)。單純貝氏分類是一種基於統計機率所發展 的分類法,當樣本越大時越能夠得到好的預測績效。機率構成的分類模型雖然有 簡單快速,但是真實世界的資料,或許無法總是滿足其屬性資料完全獨立的假設。
因此,在本研究中採用 SVM 作為分類的演算法。
SVM 是以統計為基礎的機器學習演算法,是一種處理二元分類(Binary Classification)的方法,在高維度的空間中尋找一個超平面(Hyperplane)將兩 個類別分隔開。這樣的超平面可能有很多個,SVM 的目的在找出最佳的超平面,
使兩個類別的邊界(Margin)幅度最大話,能夠明顯區分兩個類別。
對於多類別(Multi-Class)分類問題,單獨使用一個 SVM 分類器是不足的,
因此對於多類別分類常用的方法有一對多(One-Against-All, OAA-SVM)、一對 一(One-Against-One, OAO-SVM)和有向非循環圖(Directed Acyclic Graph, DAG-SVM)三種,根據 Duan[23]利用五個不同資料集對於 OAA-SVM、OAO-SVM 與 DAG-SVM 三種方法進行測試,整體而言, 1000 筆以下的的資料集以 OAO-SVM 與 DAG-SVM 的錯誤率較低。在本研究中,資料集中已完成專家分類 的筆數最多為 1,056 筆,所以我們選擇使用 OAO-SVM 作為機器學習建立分類器 模組的方法。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
29
3.8.5.
交叉驗證(Cross Validation)在實際的應用上我們通常只能取樣一部分的資料,因此模組的績效評估目的,則 在於求得與資料母體間的最小誤差。為了確定模組的效度問題,研究者通常會使 用折半樣本(Holdput Method Sample),以隨機的方式將樣本分成兩半,以其中一 半的樣本來建立最佳模組,並以此模組來預測另一半樣本,看看預測誤差的變異 數是否達顯著水準,判定模組的預測效度。折半樣本法的缺點,是如果只切割一 組的訓練與測試資料,一旦選擇到的資料不具有代表性的組合,誤差就沒有估計 的意義。為了避免這樣的限制,方法上我們可以使用重複取樣的方式來交叉驗 證。
交叉驗證(Cross validation)是統計學上將數據樣本分割成較小子集的方法,
可以在一個子集上做分析,剩下的子集用來做後續的比對與驗證。一開始的子集 稱之為訓練集(Training Set)其他的子集稱為測試集(Testing Set)。本研究中,
我們所採用的方法是 K 折交叉驗證(K-Fold Cross Validation)。K-Fold 是將資料 分割成 K 個子集,其中一個子樣本被留作驗證模組使用,其餘 K-1 個子集被用 來訓練,如下圖 4 的 K 折交叉驗證示意圖。交叉驗證重複 K 次,每個子集都被 驗證一次,平均 K 次的結果得到一個評估值。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
30
圖 4、K 折交叉驗證示意圖 Training
Testing
Experiment 1
Experiment 2
Experiment 3
Experiment 4
Experiment 5
Total
‧
相關 true positive(tp) false negative(fn)
不相關 false positive(fp) true negative(tn)
tp:正確正例,屬於類別系統判斷為相關。
fn:錯誤負例,屬於類別系統判斷為不相關。
fp:錯誤正例,不屬於類別系統判斷為相關。
tn:正確負例,不屬於類別系統判斷為不相關。
Precision = 𝑡𝑝
𝑡𝑝 + 𝑓𝑝 Recall = 𝑡𝑝
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
32
以同時分屬多種類別)以及類別的文件篇數分不均的情形,F 度量又細分為 Micro-F-measure 與 Macro-F-measure 兩種。Micro-F-measure 是全部文件一起累 加統計,不分類別,容易受到少量的大類別表現好壞的影響。Macro-F-measure 考慮每個類別的成效後再做平均,因此容易受到大量的小類別影響。