• 沒有找到結果。

學習演算法(learning algorithms)

二、 相關方法研究

2.2 學習演算法(learning algorithms)

首先,我們使用幾個資料探勘常見的學習演算法,包括決策樹(Decision Tree)、貝氏 分類器(Bayesian Classifier)、類神經網路(Artificial Neural Networks ,ANN)[7]、支援向量 機(Support Vector Machines ,SVM)和法則歸納法(Rule Induction)。

決策樹使用 Ross Quinlan 發展的 C4.5 演算法[5],貝氏分類器使用簡單貝氏分類器 (Naive Bayes Classifier)[6],支援向量機使用 Chih-Jen Lin 等人發展的 LIBSVM[8],法則 歸納法使用決策表(Decision Table)[9]。

2.2.1 簡單貝氏分類器(Naive Bayes Classifier)

貝氏分類器以貝氏定理(Bayesian Theorem)為基礎,是一種基於統計機率所發展的演 算法,假設有n個屬性X1,X2,...,Xn,t個類別值c1,c2,…,ct,要判斷一筆資料x=(x1,x2,…,xn) 的類別為何,是根據事後機率p(cj|x)來判定,而此機率的計算方式如下:

(2.1) 由式(2.1),可以得到以下

(2.2) 若有一類別值ci滿足

(2.3) 則x的類別值就會被判定為ci

而簡單貝氏分類器[

6],是假設在類別值給定的條件下,屬性間彼此互相獨立,在此 假設下,可將式(2.2)轉變成

(2.4)

再利用式(2.3),就可以得到 x 的類別值。

2.2.2 類神經網路(Artificial Neural Networks ,ANN)

類神經網路[7]是模仿生物神經網路的能力。類神經元是生物神經元的簡單模擬,它

5

從外界環境或者其它類神經元取得資訊,並加以簡單的運算,再輸出其結果至外界環境 或者其它類神經元。其主要結構是由神經元(neuron)、層(layer)和網路(network)三個部份 所組成。分為輸入層(Input layer)、輸出層(Output layer)和隱藏層(Hidden layer),如圖 2,

三層連結型成一個神經網路,其中輸入層只從外部環境接收資訊,不做任何計算,只將 資訊傳遞至下一層,而輸出層則是只將資訊輸出至外部環境。而分析計算部分均在隱藏 層完成,隱藏層介於輸入層和輸出層之間,提供類神經網路處理神經元間的交互作用與 問題的內在結構的能力。各層之間的各個神經元之間的連結都有其權重,例如,圖 2 的輸入層的I1和隱藏層的H2之間的連結,其權重記為wi1,h2。類神經網路即是希望透過簡 單的函數計算所有連結之權重。當有未知資料須判定類別時,即可利用已計算出之權重 得到輸出類別為何。

圖 2. 類神經網路之示意圖

2.2.3 支援向量機(Support Vector Machines ,SVM)

支援向量機[8]是以統計學習理論(Statistical Learning Theory)為基礎發展出來的分類 方 法 。 概 念 為 在 一 群 在 多 維 空 間 中 的 資 料 , 希 望 能 在 該 空 間 中 找 出 一 個 超 平 面 (Hyperplane),使得屬於兩個類別的資料可藉此超平面區分開來。超平面和兩個類別距 離最近的點之間稱為邊界(Margin),SVM 即是希望找出邊界最大之超平面,即為最佳超 平面(Optimal Hyperplane),如此可明確的區隔兩個類別的資料,如圖 3。而最靠近最佳 超平面之資料稱之為支援向量(Support Vector)。當有未知資料須判定類別時,即是計算

6

該未知資料與最佳超平面之關係,以判定該資料之類別。

圖 3. 支援向量機之示意圖

2.2.4 決策表(Decision Table)

法則歸納法(rule induction)是一種由多個 if-else 規則對資料進行細分的技術,在一系 列有意義的規則中,顯示資料蘊含的關聯性。例如,零售業者可以瞭解百分之七十的顧 客於購買真皮牛仔褲後,均購買塑膠皮帶,因此這兩者間有其一定之關連性,可稱之為 法則。瞭解法則之存在,有助於知道顧客與產品之特質,然而並非每一項法則均有其實 用價值,資料之實用性與否仍須視企業性質而定。

在實際應用上,如何界定該法則是否有實用價值是最大的問題,通常會先將資料中 發生次數太少的項目先予以刪除。利用法則試圖找出最佳特徵值,將包含此特徵值的資 料全部找出來並加以聚合形成一個子集合,反覆執行直到該子集合中的每一個記錄都屬 於同一類別為止,即為所謂的法則歸納法。

而決策表[9]為法則歸納法中其中一種演算法,是透過表格的方式檢視所有條件以及 動作,以找出有實用價值之法則,圖 4 為一決策表之範例,此為印表機故障時的處理方 法決策表,表格上方為印表機故障的條件,下方為排除故障之動作,例如,當印表機無 法列印(Printer dose not print)且紅色警示燈閃爍(A red light is flashing)時,可檢查或更換 墨水匣(check/replace ink)和檢查紙匣(check for paper jam)。

7 圖 4. 決策表之範例

2.2.5 決策樹(Decision Tree)

在這五種學習演算法中,其中決策樹[5]是以樹狀結構為基礎的分類方法,其優點在 於可以轉換成易於了解的決策法則,相較於支援向量機、類神經網路等其它學習演算 法,決策樹具有較高的可讀性,並且可表示為多個 if-else 的規則,圖 5 為一決策樹之範 例 , 這 棵 決 策 樹 根 據 天 氣 情 況 分 類 「 是 否 適 合 打 網 球 (PlayTennis) 」, 例 如 : <

Outlook=Sunny,Temperature=Hot,Humidity=High,Wind=Strong >,會被這棵決策樹判 定為 PlayTennis=No,此一決策樹的 if-else 規則如圖 6。決策樹在文獻中已經被證明在 實務應用上是可以運作的,例如: 1993 年加州理工學院噴氣推進實驗室與天文學家合 作開發 SKICAT 系統,成功幫助天文學家發現遙遠的星體[10]以及 1995 年 Lehnert 等人 利用決策樹來做醫療系統上的文字分類(text classification)[11]。

圖 5. 根據天氣情況分類「是否適合打網球(PlayTennis)」之決策樹

8 圖 6. 「是否適合打網球(PlayTennis)」決策樹之 if-else 規則

2.2.6 五種學習演算法之優缺點

表 1 為以上五種演算法之優缺點比較,這五種演算法均有分類速度快之優點,簡單 貝氏分類器的訓練速度快,可是該演算法須符合屬性彼此之間需為獨立關係之假設,但 在實務應用上此假設通常不存在,且該演算法無法直接處理連續值之屬性,需假設該屬 性符合常態分配(normal distribution)或是對該連續值之屬性做分類,轉成離散值才可處 理。類神經網路的應用相當廣泛,但訓練時是利用迭代的方式,所以計算量相當大,在 訓練上需要花費較多的時間,而且在訓練時,無法預知需要幾層隱藏層以及多少神經元 為最佳。支援向量機在訓練和分類速度上都很快,但它對雜訊相當的敏感,在求解時會 限制所有訓練資料一定能找出超平面予以切開,因此在執行前使用者需先給定一誤差參 數放寬該限制,此參數對結果通常會有很大的影響。決策表可整理出易懂的 if-else 規則,

有較高之可讀性,但在眾多法則中,如何界定何者才為實用之法則是有其困難的,且該 演算法需要較長的訓練時間,且該演算法也不易處理連續值之屬性。決策樹的優勢在於 有相當高的可讀性,可轉成易懂的 if-else 規則,也可從決策樹中挑選出較為關鍵之屬性,

且訓練和分類速度都快,但是當類別過多時,決策樹的準確度會降低。

因此,為保持預測準確度與預測結果可讀性之間的平衡,我們採用以決策樹為基礎

9