第二章 、 文獻探討
3.2 演算法
國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
3.2 演算法
3.2.1 監督式學習(Supervised learning)
此研究採用監督式學習的方法訓練模型,透過以標籤好的訓練資料建立模型 或是函數,並依此模式推測新的實例。訓練資料是由輸入的物件或變數和預期的 輸出所組成,然而監督式學習函數的輸出可以是一個連續的值,或是預測一個分 類好的標籤。在監督式學習中,典型的任務是分類和迴歸分析,常見的演算法為 決策樹、SVM、線性回歸,本研究採用監督式學習中的支援向量機(SVM)、KNN(K Nearest Neighbor)、Naive Bayes 來分類文本情緒,並比較演算法的優劣,而 後利用邏輯式回歸與隨機森林(Random Forests)和隱藏馬可夫模型建立財務預 警模型。
3.2.2 文本情緒分析演算法
本研究情緒分析之演算法採用 Naive Bayes、KNN(K Nearest Neighbor)與 SVM 三種分類器進行比較,觀察其準確度高低,將結果應用於後續財務預警的系 統建立之中。Joachims(1998)指出 SVM 更適合用於文本情緒分類之中,故本研究 設置三種演算法的比較,來觀察 SVM 是否優於其他兩種分類演算法。
1. KNN(K Nearest Neighbor):
KNN (K Nearest Neighbor) 演算法在 2007 年 IEEE 統計排名前十名資料採 礦演算法之一,因演算法簡單好懂且能達成有效的分類,所以大量使用在許 多 領 域 之 中 , 在 文 本 分 析 的 領 域 中 , 也 有 許 多 學 者 採 用 此 演 算 法 (Hauskrecht,2009;Bijalwan,2014),KNN 分類演算法簡單來說就是要找和 新數據最近的 K 個節點,這些結點是什麼分類,那麼新數據就是什麼樣的分 類,以下是 KNN 應用於文本分類之演算法(Bijalwan et al., 2014) (K=1):
(1) 將訓練文本之特徵關鍵字字詞頻率向量化並標上正確的分類,而後將要
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
(2) 計算出每一種分類的中心結點向量(centriod vector)
(3) 計算測試文本 D 向量與每一種分類中心結點向量的相似度(即使用 Cosine similarity)
(4) 與測試文本 D 餘弦相似性(Cosine similarity)最高的類別即為 D 所屬 之類別
kNN 是一個基於實例(instance-based)的演算法,所以訓練樣本的好壞將深 深地影響分類的準確度,其優點在與演算法簡單,不牽涉過多的統計假設,
而缺點在於計算量大,較消耗電腦的資源,且非常耗時 2. Naive Bayes:
Naive Bayes 分類器的概念相當簡單且準確率也相當高(Bijalwan et al., 2014) , 在 文 本 分 析 的 領 域 中 被 學 者 大 量 使 用 (Li, Chen , Lin &
Song(2014);Yu & Duan,2013),Naive Bayes 分類器是基於機率型的分類,
使用貝氏定理來做運算,也就是計算其條件機率,其假設特徵之間事件獨立 所建立出來簡單且有效的分類演算法,假設有 r 筆的文本資料,其文件的集 合向量為 D = {𝑑𝑑1⋯ 𝑑𝑑𝑟𝑟},而在這 r 筆文件中需要分成 q 類其分類集合為 C=�𝑐𝑐1⋯ 𝑐𝑐𝑞𝑞�,那麼貝氏分類器所要計算的條件機率如下:
其代表著給定文件 dj的狀況下,文件 dj屬於 ck分類的機率,P(dj)為在文本 集中隨機取的文件 j 的機率,P(ck)為隨機取文本資料分類是 K 的機率,其 機率都是給定的,所以貝氏機率主要是計算P�𝑑𝑑𝑗𝑗�𝑐𝑐𝑘𝑘�的機率為何,而其計算 dj的文本機率如下:
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
P(Wij)為 j 文件所出現第 i 個特徵關鍵詞的機率,以下是 Naive Bayes 演算 法的步驟(Bijalwan et al., 2014):
(1) 將測試的文本資料轉換為特徵關鍵詞(keyword)向量 (2) 統計測試文本資料中的特徵關鍵詞詞頻(Term Frequency) (3) 計算P�𝑑𝑑𝑗𝑗�𝑐𝑐𝑘𝑘�每篇文件中所屬哪一種分類的機率大小 (4) 根據所算出的機率大小來決定此文件 j 是屬於哪一類
貝氏分類對於少量的文本資料一樣會有不錯的分類準度,能夠補足小樣本的 不足,且適用於資料會不斷成長的應用,可是其假設字與字之間是互相獨立 的,較不符合真實的現況。
3. 支援向量機(SVM):
支援向量機是在分類與迴歸分析中分析資料的監督式學習模型與相關的學 習演算法,其演算法為找出一條線或平面能完美的分割資料群集,得到最小 的分類誤差,並要選擇能夠讓到每邊最近的資料點的距離最大化的超平面。
而後基於文本資料落在間隔的哪一側來預測所屬類別,SVM 近幾年來也常用 於文本分類的應用之中,Joachims(1998)的研究中分析了 SVM 應用於文本探 勘情緒分類的優點如下:
(1) 適用於分類高維度的文本資料
(2) 每一個特徵都是具有預測與解釋能力的
(3) 文件的向量多為稀疏矩陣(sparse),SVM 適合處理這類型的資料 (4) 而大多數的文本分類多為線性的分類(linearly separable),SVM 適合
於此種分類
依據以上優點本研究主要採用 SVM 的分類方式分類文本資料,並使用 KNN 與 Naive Bayes 演算法做比較,觀察其文本情緒分類的準確度,驗證 SVM 是否有優於其他兩種演算法。
3.2.3 財務預警模型演算法
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
在分析完財經新聞文本資料的情緒後,將非結構化的財經新聞指標與結構化 的財務報表指標變數整理,建立起財務預警模型,來預警上市公司是否有不良的 財務狀況發生,本研究建立財務預警模型的演算法為邏輯式回歸、隨機森林 (Random Forests)與隱藏馬可夫模型(HMM),藉由交叉驗證(cross-validation) 的方式比較兩個演算法的準確率。
1. 邏輯式回歸(Logistic regression):
在一般的線性回歸分析中依變數通常為連續的變項,但依變數並分連續 變項而是類別變項時,線性回歸就不適用了,較適用於邏輯式回歸的分析,
而此研究之依變數為類別變項(財務正常或預警),所以適用於邏輯式回歸。
統計學家用 odds ratio (勝算比) 於 logistic regression 之中,其 中勝算比指的是正向事件與負項事件發生機率之比值,而正向事件代表我們 要預測之事件(公司有財務危機),若正向事件發生機率為 p,則 odds ratio (勝算比)P 為 p/(1-p),而邏輯式回歸假設 odds ratio (勝算比)與自變數的 關係為:
logit (P)=log(p/(1-p))= α + βx
若正向事件發生機率p 為𝑃𝑃(𝑦𝑦 = 1|𝑋𝑋 = 𝑥𝑥)則可將式子改寫成:
𝑙𝑙𝑜𝑜𝑔𝑔𝑖𝑖𝑡𝑡 (𝑃𝑃) = log( 𝑃𝑃(𝑦𝑦 = 1|𝑋𝑋 = 𝑥𝑥) 1 − 𝑃𝑃(𝑦𝑦 = 1|𝑋𝑋 = 𝑥𝑥))
Logit 的反函數為 sigmod function,經由使用 sigmod function 後,整理可 以得到在𝑋𝑋 = 𝑥𝑥的情況下發生正事件(y=1)的機率:
(𝑦𝑦 = 1|𝑋𝑋 = 𝑥𝑥) =𝑒𝑒𝑒𝑒𝑧𝑧+1𝑧𝑧 where z= α + βx
由上式可知,回歸式中的迴歸係數代表著自變數與 odds ratio (勝算比) 的關係,當係數越大時,勝算比的變動也越大,也就是說此自變數對是否會 造成財務預警的波動越大。
使用邏輯式回歸建立財務預警模型不需要嚴格的假設條件,克服了線性 方程受統計假設約束的局限性,且可解決自變數非常態分佈的問題使模型更
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
接近真實的金融環境,克服了 Altman 多變量回歸的缺點,使此模型成了大眾 研究財務預警方面較常使用的模型,但其計算過程比較複雜,計算過程有很 多近似的處理,所以會稍微的影響準確度。
2. 隨機森林(Random Forests):
在機器學習中,隨機森林是一個包含多個決策樹的分類器,隨機森林的 名稱中有兩個關鍵詞,一個是「隨機」,一個就是「森林」。「森林」就代表 著是有許多棵決策樹所構成,而「隨機」的含意代表著建構決策樹的訓練樣 本甚至是特徵都是隨機取得的,利用 bootstrap 取樣的方式隨機抽取訓練集 中的訓練樣本並放回樣本中來建立決策樹,並根據所建立起的多個決策樹進 行預測,將每棵樹的預測結果進行投票,最多票數的類別即為預測類別,以 下是建造每顆決策樹的演算法(用 N 來表示訓練樣本的個數,M 表示特徵數 目):
(1) 輸入特徵數目 m,用於確定決策樹上一個節點的決策結果;其中 m 應遠 小於 M
(2) 對於每棵樹而言,隨機且有放回地從訓練集中的抽取 N 個訓練樣本,作 為該樹的訓練集,並用未抽到的樣本作預測,評估其誤差。
(3) 對於每一個節點,隨機選擇 m 個特徵,根據這 m 個特徵,計算其最佳的 分裂方式。
(4) 每棵樹都盡最大程度的生長,並且沒有剪枝過程。
隨機森林的隨機性使得隨機森林不容易陷入過度擬合,並且具有很好得抗噪 能力,因此過往有許多研究也以此演算法建立財務預警模型(盂杰,2014;楊 翰林,王開駿 & 謝幽篁,2014)。而因本研究屬於小樣本的分析,適合 bootstrap 隨機採樣為基礎的隨機森林分類,本研究採用隨機森林演算法與 邏輯式回歸做比較,觀察其預測準確度。
3. 隱藏馬可夫模型(Hidden Markov Mode):
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
在介紹隱藏馬可夫模型之前,需先認識一般的馬可夫模型,在馬可夫模型中 如下圖 3.2,選一個狀態(S1,S2,S3)作為起點,然後沿著邊(a)隨意走訪任何一個 狀態,沿途累計機率,走累了就停在某個狀態。圖 3.2 中,每一個圓圈叫做一個
「狀態」,每一個狀態都會射出 N 條邊分別連向每一個狀態,計算一個狀態進入 下一個狀態時的機率矩陣並累積加總。
圖 3.2 馬可夫模型
而隱藏馬可夫模型添加了一個新要素(Rabiner, 1989),每當造訪一個狀 態,就立刻從 M 個值當中,噴出其中一個值。每一個狀態都是噴出相同的 M 種 值,這 M 個值通常標作 V1 到 VM 如圖 3.3。
圖 3.3 隱藏馬可夫模型
於是隱藏馬可夫模型會產出兩種序列,一種是代表隱藏狀態的狀態序列 (S1S2…),另一種是易觀察的觀察序列(V1V2…),我們只看到了依序噴出的 T 個 值,但是我們看不到一路走過的是哪 T 個狀態,「隱藏」二字便是指行蹤被隱藏 了,狀態序列被隱藏了,例子:假設天氣有三種型態:晴天、陰天、雨天,而我 們在一個密室裡無法直接觀察外面的天氣,但是我們可以得知隔壁房間的室友每
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
天從事的運動:「跑步」、「健身操」或是「游泳」三者之一,觀察室友所進行的 運動(觀察序列),進而來推測外面的天氣狀態(隱藏狀態序列),這就是簡單的隱 藏馬可夫模型,利用「看得到的」連續現象去探究、預測另一個「看不到的」連 續現象。
隱藏馬可夫模型有三個基本問題,以及演算法:
第一種為評估問題(Evaluation Problem)以所看到之觀察序列中,找出所有可能 狀態的路徑的機率總和,對於一個觀察序列來說,狀態序列有各式各樣的可能 性,總共有 Nᵀ 種可能性,所以使窮舉法程式的複雜度非常高,然而運用「動態 規劃」的前後向演算法(Forward-backward Algorithm),將時間複雜度降低,此 演算法被用來測量一個模型的相對適用性,圖 3.4 為前向演算法之過程:
圖 3.4 前向演算法
圖 3.4 中 O1O2…為其觀察序列,圖中表示在 O3時刻狀態為 S1的所有機率可能性加 總,其演算法用前一個時刻 O2的各種可能性進行加總在乘以狀態機率轉換矩陣,
算出 O3時刻狀態為 S1的所有機率可能性。
第二種為解碼問題(Decoding Problem)以所看到之觀察序列中,找出機率最大的 一條狀態路徑觀察其隱藏狀態,以及其機率,其使用演算法與前向演算法相同概 念的維特比演算法(Viterbi Algorithm)來解決此問題,此演算法被用來推測模 型隱藏部分的最可能狀態為何,圖 3.5 為維特比演算法之過程: