• 沒有找到結果。

第二章 研究方法

第五節 建立自動分類器

一、隨機森林演算法(Random Forest)

決策樹(Decision Trees)為一種樹狀結構的監督式(supervised)機器學習 演算法,適用於各種分類問題(Quinlan, 1986)。決策樹會列出一系列的決策 問題,將資料庫內的樣本依次分群,通過將大量資料有目的地分類,從中找 到在各類樣本間最具有鑑別性的資訊。依照給定的訓練樣本的各項特徵值,

決策樹會遞迴地對訓練樣本進行劃分,選擇最佳的特徵值及分類門檻,使該 節點延伸出的子節點內的資料類別有最高的同質性。通常在決策樹架構內,

位在最上層的特徵值具有最高的鑑別度,如圖 2.12 的 Feature B。通常在以 下三種情況下,決策樹便不再進行分支:(1)子節點內的每筆資料都屬於同 一類別、(2)子節點內只包含 1 筆資料、(3)繼續進行分支對於資料庫內同質 性的改善有限,即雖然節點內有不同類別的樣本,但在各項特徵值的數據上 無太大的差異。在一層一層的將訓練資料庫內的樣本做分類之後,最終目的 是讓每個子集的資料全屬於同一類別或某一類占壓倒性的多數。決策樹的 優點是決策階段明確且易於視覺化(圖 2.12),缺點則是若沒有對分支層數做 限制或進行後續的剪枝(pruning),很容易產生過度擬合(overfitting)的情況 (Quinlan, 1987)。一個分類器只要夠複雜,即使資料品質不佳也能達到百分 之百的分類正確度,但卻無法應用到未來資料的預測,如此便是所謂的過度 擬合。

圖 2.12 決策樹演算法架構示意圖

隨機森林演算法的概念便是將多棵決策樹結合(圖 2.13),以達到更穩定 的分類效果(Breiman, 2001)。在訓練過程中,會先將訓練樣本隨機取樣,產 生 k 個訓練子集,每個子集再各自訓練,產生 k 棵決策樹。建構子集的過 程為依次隨機抽選,每一次抽到的樣本都會放回,因此有機會在一個子集內 抽選到重複的樣本,同時某些樣本是沒有被抽到的。若原始資料庫內含有 N 筆資料,則每個訓練子集也會重複抽選放回直到含有 N 筆訓練樣本,這種 方法稱為 Bagging (Breiman, 1996),不僅使每個子集內的樣本具有差異性,

也確保每一棵決策樹使用的都不是全部的訓練樣本。除了訓練樣本,每棵決 策樹使用的特徵值也是隨機取樣,從 M 個特徵值中,選擇 m 個(m < M)做 為分類依據。透過對訓練樣本及特徵值的隨機取樣,每棵決策樹皆是使用不 同的訓練樣本及訊號特徵值建構分類器,因此訓練出來的決策樹皆是互相 獨立的。實際運算時,每棵決策樹都會得出各自的分類結果,而最終分類結

果則是由這 k 棵決策樹進行投票(voting)決定,以所有決策樹中相對多數的 初步判釋結果為最終結果。隨機森林演算法在訓練分類器時,會根據各項特 徵值的分類效果優劣進行權重分配,本研究讓演算法自動調整各特徵值的 權重,因人為調整權重易產生主觀判定,便喪失了使用機器學習演算法時的 客觀性。

而透過隨機森林產生的決策樹也沒有必要進行剪枝,因為在訓練樣本 及特徵值取樣的過程中已經確保了隨機性,雖然單棵樹的架構可能是複雜 且有過度擬合的情況,但在多棵決策樹的運作下,只要一開始的抽樣具有足 夠的隨機性,便能避免整體演算法過度擬合的情形發生(Breiman, 2001)。若 隨機森林演算法產生過度擬合的情況,除了可能是抽樣時的隨機性不夠高,

另一個原因便是演算法內所包含的決策樹棵數不夠多,無法有效反映大數 法則(Law of Large Numbers) (Bernoulli, 1713; Breiman, 2001)。本計畫最終使 用之隨機森林演算法內包含了 100 棵決策樹。

二、分類器建構

在建立分類器時,常用來評估訓練樣本分類效果的方式有以下三種:

(一) Holdout Validation

Holdout 是指從資料庫中隨機挑選 n%的資料做為訓練集(Training set),

對演算法進行訓練,挑選的過程會從每種類型的資料都挑選 n%;剩下的 (100-n)%資料則是做為測試集(Testing set),進行分類器的測試(Schneider, 1997)。訓練的分類效果則是用測試集的測試結果與真實答案進行比對(圖 2.14)。

圖 2.14 Holdout Validation 示意圖

(二) K-fold Cross Validation

K-fold 是先將資料庫平均分成 K 個子集,每個子集中各種類的資料會 有相近的比例,然後每次使用其中 1 個子集做為測試集,剩下(K-1)個子集

則做為訓練集,反覆執行 K 次,每一次的測試都會得到 1 個分類正確度,

再將 K 次的結果平均後得到最終的分類效果(圖 2.15) (Schneider, 1997)。

圖 2.15 5-fold Cross Validation 示意圖

(三) Leave-one-out Cross Validation

Leave-one-out 為假設在有 N 筆資料的資料庫中,在每次的訓練過程都 只挑出 1 筆資料做為測試集,剩下的(N-1)筆資料則做為訓練集,反覆執行 N 次,因此每筆資料都會被用做訓練及測試,分類效果則是把全部資料的測 試結果與真實答案進行比對(圖 2.16) (Schneider, 1997)。Leave-one-out Cross Validation 也可以視為 K 等於資料數量的 K-fold Cross Validation。

圖 2.16 Leave-one-out Cross Validation 示意圖

經過測試後,由於 Holdout Validation 並非交叉驗證,本計畫使用的訓 練資料庫也不算特別大(<1000 筆),因此每一次訓練的分類正確度會嚴重受 到該次挑選的訓練集與測試集資料差異的影響,造成分類結果間有較大的 標準差。Leave-one-out Cross Validation 雖然可以有效反映整體資料庫的分 類效果,但計算量將過於龐大,因此本計畫折衷採用 K-fold Cross Validation 方法,其中 K 為 5。

三、混淆矩陣

混淆矩陣是最常被用來呈現監督式機器學習演算法效能的工具,它能 夠有效且清楚的表示分類器的正確度及對於各種類事件的敏感度(Kohavi and Provost, 1998)。在混淆矩陣中(表 2.4),True Positive (TP)代表實際屬於 A 類的樣本,演算法也判定為 A 類的數量;False Negative (FN)代表實際屬 於 A 類的樣本,卻被演算法判定為 B 類的數量;False Positive (FP)代表實 際屬於 B 類的樣本,卻被演算法判定為 A 類的數量;True Negative (TN)代

表實際不屬於 A 類的樣本,演算法也判定不為 A 類的數量。橫列代表的是

在混淆矩陣中,True Positive (真陽性)表示為預測為正,實際也為正;

False Positive (假陽性)表示為預測為正,實際為負;False Negative (假陰性) 表示為預測為負、實際為正;True Negative (真陰性)表示為預測為負、實際 也為負。而混淆矩陣中時常使用以下三項指標評估演算法效能:

(一) 正確度(Accuracy):

代表所有被正確分類的樣本佔總體樣本數量的比例。其計算方式如下:

𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 = 𝑇𝑃 + 𝑇𝑁

𝑇𝑃 + 𝑇𝑁 + 𝐹𝑃 + 𝐹𝑁 式(2.8)

(二) 敏感度(Sensitivity)

代表某一類別的樣本中,被正確分類的樣本的比例,又稱為召回率 (Recall)。其計算方式如下:

𝑆𝑒𝑛𝑠𝑖𝑡𝑖𝑣𝑖𝑡𝑦 = 𝑇𝑃

𝑇𝑃 + 𝐹𝑁 式(2.9)

(三) 陽性預測值(Positive Predictive Value, PPV)

代表所有被分類為某一類的樣本中,實際屬於該類別的樣本的比例,又 稱為準確率(Precision)。其計算方式如下:

𝑃𝑃𝑉 = 𝑇𝑃

𝑇𝑃 + 𝐹𝑃 式(2.10)

(四) 協調分數(F1-score)

為敏感度和陽性預測值的調和平均數,用以衡量分類器精確度的一種指 標,最大值是 1,最小值是 0。計算方式如下:

F1 = 2

1

𝑃𝑃𝑉+ 1 𝑆𝑒𝑛𝑠𝑖𝑡𝑖𝑣𝑖𝑡𝑦

式(2.11)

四、分類器運作過程

本計畫整體進行地動訊號分類器建置與應用流程如圖 2.17 所示,先蒐 集欲自動分類之地動事件訓練樣本,將訊號做基本前處理後計算訊號特徵

值,再使用隨機森林演算法建構自動分類器,之後便可將連續地動記錄輸入 分類器內,快速得到各測站記錄到的崩塌事件發生時間,再做進一步的驗證。

圖 2.17 地動訊號分類器建置與應用

相關文件