You are on page 1of 6

1

分類演算法之比較—以帕金森氏症電子監控資料為例

盧松筠 1、周思婷 1、鄭筱頻 1、趙健復 1、林芳竹 1


1
Computer Science and Information Engineering Department, Fu Jen Catholic University, Sinjhuang, Taipei 24205, ROC

我們以 UCI Machine Learning Repository 上的帕金森氏症電子監控資料(Parkinsons Telemonitoring Data Set)為例[1][2],使


用 Weka 比較八種不同屬性的分類演算法,以準確度(precision)為目標,提供一個客觀的測量數據作為探勘資料時演算法選擇
的參考。演算法包含以下十種類型:(1)Decision tree(2)Rule induction(3)Classification using association rules(4)Naïve
Bayesian classification(5)Support vector machine(6)K-nearest neighbor(7)Bayesian networks(8)Neural networks

關鍵詞—分類、帕金森氏症、電子監控、資料探勘

I. 引言

本 篇文章提供十種不同類型的分類演算之比較,以
UCI Machine Learning Repository 上之帕金森氏症電
子監控資料集為例。此資料集由 Intel 與美國十個醫學中
心合作,以居家聲音監控裝置,收集帕金森氏症病患之聲
音資料,藉以預測帕金森氏症病患之症狀等級。實驗的演
算 法 包 含 ( 1 ) Decision tree ( 2 ) Rule induction ( 3 )
Classification using association rules ( 4 ) Naïve Bayesian
classification ( 5 ) Support vector machine ( 6 ) K-nearest
neighbor(7)Bayesian networks(8)Neural networks。本
篇文章會簡單描述各類演算法之基本概念以及演算法選擇
之理由。實驗的設計主要分為兩個階段:單一演算法之不
同參數設定的比較,以及各演算法之間之實驗數據的比
較,作為資料探勘時演算法選擇的參考。最後提出我們的 Fig. 1. 多巴胺傳導路徑及其作用。多巴胺是一種神經傳導物質,用來
觀察與討論。 幫助細胞傳送脈衝的化學物質。這種腦內分泌主要負責大腦的情慾,
感覺,將興奮及開心的信息傳遞,也與上癮有關。多巴胺的主要傳導
路徑有條,分別為中腦皮層通路(mesocortical system)、中腦邊
II. 帕金森氏症 緣 系 統 通 道 ( mesolimbic system ) 、 黑 質 紋 狀 體 徑 路
帕金森氏症(Parkinson's Disease),也稱為震顫麻痺 (nigrostriatal system)以及結節漏斗徑路(tuberoinfundibular
system)
綜合徵、柏金遜症或巴金森症。是一種慢性的中樞神經系
統失調。它的病因目前仍不明,推測和大腦底部基底核 者病症程度。資料集共計有 5875 筆資料,記錄了六個月
(basal ganglia)以及黑質(substantial nigra)腦細胞快速 內,42 名初期帕金森氏症病患於家中試用電子監控設備
退化,無法製造足夠的神經引導物質多巴胺 的聲音訊號(一名病患大約有 200 筆左右的資料)。
(Dopamine)和膽鹼作用增強有關(Fig. 1)。腦內需要
(2) 資料屬性
多巴胺來指揮肌肉的活動;缺乏足夠的多巴胺就產生各種
資料集共有 22 個屬性(TABLE I),其中 subject#為
活動障礙。患病者通常會有靜止時顫抖、僵直、運動不能
病患之代號,於資料探勘時並無幫助,予以剔除。此外,
和運動遲緩、平衡感差、便秘、講話速度緩慢、音調呆
moto_UPDRS 以及 total_UPDRS 為分類之目標,在這邊我
板、寫字越寫越小等症狀(黑質內之細胞喪失 80%時)
[3]
們選擇 total_UPDRS 作為我們分類之目標。所有的資料屬

性中,除了 sex 為名詞性(nominal)的資料之外,其餘皆
為數值(numerical)資料。
III. 資料集
(1) 資料描述 (3) 分類目標—UPDRS
此一資料集由英國牛津大學的 Athanasios Tsanas 與 帕金森氏症症狀衡量表(Unified Parkinson's Disease
Max Little 所 提 供 。 以 美 國 十 個 醫 學 中 心 和 英 特 爾 Rating Scale - UPDRS) [4][5][6]為判斷帕金森氏症病患症狀
(Intel)合作發展的一套電子監控設備記錄帕金森氏症病 之依據,通常藉由與醫師面談或臨床觀察來對病患進行評
患說話時的聲音訊號,來預測帕金森氏症病患在帕金森式 分。評分表共分為四大部分:
症症狀衡量表(UPDRS)中所獲得的分數,藉以判別患  智能、行為、情緒(mentation, behavior and mood)
2

 日常生活能力(activities of daily living) 利用建立樹狀的結構來達成分類的目的。通常我們


 動作能力之檢查(motor examination) 藉 由 計 算 資 料 屬 性 的 熵 ( entropy ) 以 及 資 訊 量
 治療之併發症(complications of therapy) (information gain)來決定決策樹的節點。分類的結果會
每一個部份再細分為不同的測量指標。最後再依據評分結 出現在葉節點(leave node)上。從根(root)到葉節點所
果對患者做病症之分級(0% ~ 100%,共十個等級),藉 經過的路徑可視為是一條規則(rule)。在這邊我們選擇
以判斷患者的生活能力。 J48,也就是 C4.5 演算法。J48 有簡單、快速、準確率高
等優點。相較於 ID3 演算法,J48 可以處理數值資料,而
IV. 實驗設計 且參數設定較少,所以我們選擇 J48 作為決策樹這個類型
演算法的代表。
實驗的設計主要分為兩個階段:單一演算法之不同
 參數設定
參數設定的比較以及各演算法之間之實驗數據的比較。
 Pruned/unpruned
在單一演算法的實驗中,每個演算法有不同的參數,例如  Reduced Error Pruning(REP)
決策樹是否修剪(pruned),或是類神經網路需要幾層隱  Confidence Factor(CF)
藏層(hidden layer)。實驗的目的為調整不同的參數以求  Random Seed(RS)
最高的分類準確度(precision)。由於我們並沒有額外的  實驗數據與結果
測試資料,我們將資料集的 70%作為訓練資料,30%作為
TABLE II
測 試 資 料 , 並 將 random seed 當 作 實 驗 的 參 數 之 一 DECISION TREE(J48)
(random seed 為隨機選取 70%訓練資料之用)。除此之 Correctly Precision Time
Leaves Size
外,為求公平起見,我們需要在相同的環境下進行實驗 (%) (avg.) (s)
(例如同一台電腦),如此一來,在執行時間的比較上才 Unpruned 93.8138 0.938 254 507 0.9
Pruned 93.9841 0.94 242 483 0.86
會有意義。我們將目標分類 total_UPDRS 分成十等份,也 REP 90.4654 0.905 199 397 0.54
就是將數值資料轉換成名詞性的資料以方便比較(符合 CF = 0.1 93.9841 0.94 232 463 1.03
CF = 0.5 93.9841 0.94 242 483 0.99
UPDRS 原本的定義)。第二階段則以第一階段之實驗結 RS = 2 95.9705 0.961 242 483 1.02
果作為比較的依據,探討各演算法之間的差異。 RS = 3 95.63 0.956 242 483 0.97
CF = 0.75 95.9137 0.96 250 499 3.83
TABLE I
ATTRIBUTE INFORMATION 預設值: CF = 0.25, unpruned = false, REP = false, RS = 1

Attributes Description

subject# 受測者的代號
age 受測者年齡
sex 受測者性別。0 代表男性,1 代表女性。
test_time 使用電子監控設備的時間。整數部分代表天數
(例:5.6431)。
motor_UPDRS 受測者利用線性內差法所得之帕金森症症狀衡
量表分數(運動部分)
total_UPDRS 受測者利用線性內差法所得之帕金森症症狀衡
量表分數(總分)
Jitter(%), Jitter
(Abs),
Jitter:RAP, 對基頻(fundamental frequency)變異的測量 Fig. 2. 在 RS = 2、CF = 0.25、unpruned = false、REP = false 的參數設定
Jitter:PPQ5, 下,決策樹共 17 層(level),根節點為 age 屬性。
Jitter:DDP
Shimmer, 我們先調整參數,使的決策樹未修剪。其分類的準
Shimmer(dB), 確高,速度也快,不過樹的結構相對就比較大。之後我們
Shimmer:APQ3,
Shimmer:APQ5, 對振幅變異的測量 進行修剪,發現準確度微幅上升,可見得未修剪時可能有
Shimmer:APQ11, overfitting 的產生。然而當我們使用 reduced error pruning
Shimmer:DDA 時,準確度卻大幅下滑,從樹的大小來看,推測是修剪過
NHR, HNR 兩種對雜訊干擾的判斷 度 的 關 係 。 我 們 在 修 剪 的 狀 況 下 , 調 整 confidence
RPDE 非線性動態複雜度分析 factor , 其 準 確 度 並 未 改 變 , 可 能 的 原 因 為 節 點 之
DFA 碎形信號指數
confidence factor 皆小於 0.1,所以調高 confidence factor 並
PPE 非線性的基頻變異測量
無影響。最後我們調整 random seed 為 2 時,有最高的準
確度。
V. 實驗 2. Neural network
1. Decision tree  演算法概念及描述
 演算法概念及描述
3

類 神 經 網 路 的 建 構 理 念 是 受 到 生 物 ( 人 或 其他動 的以及規則集比決策樹更具有一般性。缺點是花費時間較
物)的啟發而產生的。仿造大腦神經突觸聯的結構,進行 長、難以決定正確的數據以及易忽略稀有數據。
資訊處理,進而。類神經網路通常由大量的節點(或稱 我們選擇決策表(decision table)作為實驗的演算
「神經元」)相互連接構成。每個節點代表一種特定的輸 法。決策表有速度快(相較於其他的 rule induction 演算
出函數,稱為激勵函數(activation function)。每兩個節 法)、以及規則易懂的優點。
點間的連結會有不同的權重(weight),這相當於類神經 在建立決策表前,需要先決定決策表之大小。依據
網路的記憶。網路的輸出則依網路的連接方式,權重值和 選擇(alternative)的數量 a 以及條件(condition)的數量
激勵函數的不同而有所不同(Fig. 3)。 b,表格的大小為 ab(Fig. 4)。接下來盡可能簡化表格,
並刪除不可能發生的狀況(impossible)、前後矛盾的狀
況 ( inconsistencies ) 以 及 冗 長 、 多 餘 的 狀 況
(redundancies)。
 參數設定

Fig. 3. 類神經網路示意圖。此為單一隱藏層之類神經網路結構,綠色
Fig. 4. 決策表 [7]。條件有三個,而選擇有兩種(Yes or No),所以表
的部分為各屬性,黃色的部分則為 total_UPDRS 分類的區間。
格的大小為 23 = 8。
 參數設定  Search(S):選擇不同的演算法找出建立表格的屬性
 Decay(D)  Random seed(RS)
 Hidden layer(HL)  實驗數據與結果
 Learning rate(LR) 選擇不同的搜尋演算法沒有什麼太大的差異,都是
 Training time(TT) 以 age、sex、test_time、total_UPDRS 來建構表格。準確
 Random seed(RS) 率大多為 70%左右。調整 random seed = 3 有最高的準確
 實驗數據與結果 率。得到的規則總共有 975 條,準確率為 0.758。
類神經網路最重的參數之一就是隱藏層的數目,經
過實驗,隱藏層的數目越多,則準確率越高,但相對的執
4. Classification using association rules
行時間會變得非常地長。我們嘗試增加 learning rate,並
讓 learning rate 隨時間遞減(decay),然而卻沒有如我們  演算法概念及描述
預期般減少執行的時間,推測可能是因為類神經網路收斂 藉由尋找看似無關的物件之間的關聯性,找出隱藏
其中的規則。一個簡單的例子是美國已婚的年輕男子在假
時震盪或是因為已到達停止條件所致。我們增加了停止條
日到超商買啤酒有很大的機率會買嬰兒尿布,因為假日時
件的數目,確實增加了準確度,但是因為時間過長,所以
美國男性習慣相約喝個幾杯,但是因為已婚的年輕男子家
不予考慮。最後在 random seed 為 2 時有最高的準確度。
中通常有剛出生的小孩,所以只能待在家裡喝啤酒配電視
一般來說,類神經網路通常都能有較好的分類準確
以便照顧小孩。
度,然而為了公平起見,我們將 total_UPDRS 分成十個部 我們選擇最著名且較為簡單的 Apriori 演算法作為實
分,也就是將數值資料轉換成名詞性的資料,這對於擅長 驗 的 對 象 。 利 用 由 下 往 上 ( bottom-up ) 循 序 漸 進 的 方
數值計算的類神經網路來說,或許是造成實驗結果準確度 式,藉由產生與測試候選項目集得到高頻項目集合,然後
不高的原因。 再從高頻項目集中找出有用的關聯法則。
3. Rule induction  參數設定
 Minimum confidence
 演算法概念及描述
 實驗數據與結果
尋找在同一事件中出現的不同項目的相關性,成為
由於 apriori 演算法的輸入並須是名詞性的,所以在
一系列有意義的規則,顯示數據中蘊含的關聯性。優點是
資料的前置處理時,我們必須先將所有的數值資料轉換成
尋找多條規則,每個規則可得出一個不同結論、結果清晰
名詞性的資料。
有用、可以處理增加的數據、計算的消耗量是可以被預測
4

大 概 是 屬 性 過 多 的 關 係 , 我 們 不 斷 調 整 minimum  The normalized polynomial kernel.


confidence 直到 minimum confidence 為 0.1 時才找出規  The polynomial kernel
則 。 ( 例 如 : Shimmer='(-inf-0.056174]' Shimmer(dB)='(-  PUK
inf-0.4422]' Shimmer:APQ5='(-inf-0.034956]'  The RBF kernel.
Shimmer:APQ11='(-inf-0.057084]' NHR='(-inf-0.149881]' 2. The complexity parameter
4932 ==> total_UPDRS='(21.3976-26.1968]' 894
conf:(0.18))
5. Naive Bayesian classification
 演算法概念及描述
單純貝氏分類器 (Naive Bayesian Classifier) 是一種簡
單且實用的分類方法,在某些領域的應用上,其分類效果
甚至優於類神經網路和決策樹。
單 純 貝 氏 分 類 器 主 要 是 根 據 貝 氏 定 理 (Bayesian
Theorem),依據事前 (prior) 及事後 (posteriori) 機率,配合
決定分類特性的各屬性彼此間是互相獨立的 (conditional
independence) 的假設, 透過訓練樣本,學習與記憶分類
根據所使用屬性的關係,產生這些訓練樣本的中心概念, Fig. 5. SVM 示意圖。圖中中間實線的部分即為超平面,而虛線 H1、H2
再用學習後的中心概念對未歸類的資料進行類別預測,來 則為 support hyper-plane。當 H1 和 H2 之間出現最大的 Margin,即
為最佳的 hyper-plane。
預測分類的結果。在分類前必須事先知道分類型態,透過
訓練樣本的訓練學習,有效地處理未來欲分類的資料。用  實驗數據與結果
於大型資料庫,可以得出準確高且有效率的分類結果 由於 SVM 主要概念為找一最大間隔的超平面,因此
 參數設定 在找尋過程中需要花費較多的時間與記憶體,受制於硬體
 Original 設施,因此大部分的設定結果都無法產生出。
 useKernelEstimator TABLE III
 useSupervisedDiscretization SUPPORT VECTOR MACHINE
 實驗數據與結果 Correctly Precision Recall Time
Naive Bayesian Classification 能 夠 設 定 的 參 數 並 不 (%) (avg.) (avg.) (s)
多 , 只 有 Kernel Estimator 使 用 與 否 和 Supervised norPoly Failed
Poly 28.5471 0.275 0.285 9.97
Discretization 使用與否能夠設定,但是在產生出的四個結 PUK Failed
TABLE II RBK Failed
NAÏVE BAYES CLASSIFIER C = 0.7 Failed
Precisio C = 1.5 Failed
Correctly Recall Time
n
(%) (avg.) (s)
(avg.)
Original 18.5017 0.326 0.185 0.14 7. K-nearest neighbor
UseKernel Estimator 24.0068 0.33 0.24 0.14  演算法概念及描述
UseSupervisedDiscreti
zation
38.025 0.449 0.38 0.3 K-nearset neighbor(簡稱 KNN)是由最近鄰居分類
RS = 5 40.4654 0.46 0.405 0.31 法(nearest neighbor rule,簡稱 NNR)所推演出現,NNR
預設值: useKernelEstimator = false, useSupervisedDiscretizatio = false, 的基礎是以「物以類聚」的概念發展而來,換句話說,同
RS = 1 一類的物件應該會聚集在一起,可視為同一類別的物件。
果正確率皆不高後,便嘗試配合調整 Random Seed,最後 若以高度空間中的點來表示,則這些點的距離應該會比較
得到在 Random Seed 為 5 時可以得到最大的正確率: 接近。因此 ,那麼對於一個未知類別的一筆資料,我們
40.47%。 只要找出來在訓練資料中和此筆資料最接近的點,就可以
判定此筆資料的類別應該和最接近的點的類別是一樣的。
6. Support vector machine
最近鄰居分類法是一個最直覺的分類法,在測試各種分類
 演算法概念及描述
器時,被當成是最基礎的分類器,以便和其他更複雜的分
Support Vector Machine 是一種監督式學習的方法,
類器進行效能比較。
其 欲 在 資 料 的 分 佈 空 間 中 , 找 出 一 個 超 平 面 (hyper-
在 KNN 中則是對一個未知類別的一筆資料找出在訓
plane),此超平面依資料特性將資料分為兩類(Fig. 5)。
練資料中和此筆資料查找最鄰近的 K 個點,藉此判對此
有很多個超平面可以把數據分開,但是只有一個能將兩個
未知資料的類別。KNN 常被用在預測分析中,用某點的
不同類的數據點間隔最大,達到最大分割,該面亦稱為
一些臨近點來對它估計和分類。KNN 中查找鄰近的方法
最大間隔超平面。如果我們能夠找到這個面,那麼這個
有二:(1)線性查找:最簡單的鄰近搜索便是遍歷整個
分類器就稱為最大間隔分類器。
點集,計算未知資料和目標點之間的距離,同時記錄目前
 參數設定
的最近點。這樣的演算法較為初級,可以為較小規模的點
1. Kernel 選擇
5

集所用,但是對於點集的尺寸和空間的維數稍大的情況不 8. Bayesian networks


適用。線性查找所需時間為 O(Nd)。由於不需要建立資料 貝式網路則是一種利用圖形來表現的模式,此圖形
結構,所以線性查找沒有存儲空間複雜度的問題。(2) 每個節點會包含相關連的變數的機率值,並且由父點來決
空間分割:目前已發展出好幾種分支限界方法其中最簡單 定下一個子點的相關機率值,如此可以很簡單的去合併一
的 Kd-tree。Kd-tree 將查找空間不斷將父節點包含的區域 個新的資料到貝式網路中,並維持貝式網路的資料始終是
分為相鄰的兩部分,每部分包含原來區域中的一半點。搜 最新的。貝式網路的用途很多,它可以用來做預測、溝
尋時從根節點開始在每個分叉點上對目標點進行計算,直 通、訓練及提供更多的選擇來做更好的決策。
到葉節點,查找時間複雜度為 O(log N)。 貝氏網路適用在離散型 的資料集,它依照 P(Xi | Pi)
KNN 突破統計模型對資料的限制,其預測能力更優 此條件機率寫出條件機率表 ,可惜若節點 Xi 是由很多的
於決策樹以及類神經網路,而且 KNN 分類器非常簡單, 「因」所造成的「果」,條件機率表就會變得在計算上既
可惜在進行 KNN 時必須對資料數據有相當程度的了解, 複雜又使用不便。
才能決定 K 值,且計算未知樣本與已知樣本間距離的成  參數設定
本過高,特別是在高維度的特徵空間且有大量訓練資料時  MaxNrOfParents
成本更驚人。  Random Seed(RS)
 參數設定  實驗數據與結果
 KNN 實現: TABLE V
 Linear Search BAYESIAN NETWORK
 KD Tree Correctly Precision Recall Time
 Cover Tree (%) (avg.) (avg.) (s)
 Ball Tree MaxNrOfParents = 1 39.7843 0.457 0.398 0.28
 KNN 之 K 值 MaxNrOfParents = 2 58.9671 0.593 0.59 0.53
MaxNrOfParents = 3 57.605 0.579 0.576 1.23
 Random Seed(RS)
MaxNrOfParents = 4 Failed
 實驗數據與結果 MaxNrOfParents = 5 Failed
TABLE IV 預設值: MaxNrOfParents = 1, RS = 0
K-NEAREST NEIGHBOR(KNN)
Correctly Precision Recall Time 貝氏網路雖然是根據機率而產生結果,但是在
(%) (avg.) (avg.) (s) Parkinson 這 Data Set 中卻無法得到優異得正確率,僅僅能
K=1 73.6095 0.736 0.736 0.13 夠得到近乎 6 成的成功率,此外,由於 Bayesian Network
K=2 70.8854 0.718 0.709 0.1
會建立決策樹,需要耗費大量的記憶體空間,故受限於硬
K=3 74.1771 0.749 0.742 0.12
K=4 72.4177 0.726 0.724 0.11 體影響,只能得到 3 筆結果來判斷。
K=5 73.1555 0.732 0.732 0.11
預設值: KD tree, K = 1, RS = 0
在進行實驗數據時,為了能夠節省計算時間,因此
選用 Kd-tree 來實現整個實驗,實現方法對於正確率並沒
有影響。藉由 K 值的調整,可以發現在不設定 Random
Seed 下 KNN 的正確率至少都有 7 成以上,在 Parkinson
這 Data Set 中,在 K 值為 3,RS 不設時可以得到最好的
正確率,並發現 K 值並不是越大越好,而是根據不同的
資料數據有不同適宜的 K 值。最後,若是配合 RS 的設
定,更能將正確率調整至 8 成以上。

Fig. 7 貝氏網路結果示意圖。此為貝氏網路產生的最佳決策樹圖形。

VI. 結論與討論
再進行演算法之比較時,有幾個困難如下。第一,
Weka 的記憶體管理。一些如 support vector machine 或是
Bayesian network 等需要大量記憶體空間的演算法,時常
會導致 Weka 執行到一半就當掉,雖然加大 JVM 的記憶
Fig. 6 KNN 正確率結果示意圖。此為 k-nearest network 中調整 K 職 體空間有所改善,但還是無法完全解決,所以便無法得到
所得到之正確率圖示。
某些執行結果的數據。第二,分析結果無法比較。例如
classification using association rules 在 Weka 中呈現的結果
6

是一些規則,而沒有如其他演算法般,有如 TP rate、
precision、F-measure 等等,增加了比較上的困難。第三,
演算法輸入/輸出的特性不同。不同的演算法接受不同輸
入資料的類型,例如數值或名詞性的資料,輸出亦同。這
又衍生出另一個問題:如何分割輸入的資料才有意義?如
我們前述所提,我們並不了解輸入的資料(關於聲音的測
量,如頻率、振幅等)的物理意義,以至於我們無法做出
最正確的切割,這也導致了分類結果不夠可靠。
最 後 , 在 考 量 速 度 、 記 憶 體 空 間 及 準 確 率 的條件
下,我們認為決策樹最適合作為本資料的分類演算法。若
不考量時間的因素,則類神經網路亦可作為候選之一。

參考資料
[1] A Tsanas, MA Little, PE McSharry, LO Ramig (2009)?‘Accurate
telemonitoring of Parkinson disease progression by non-invasive speech
tests’, IEEE Transactions on Biomedical Engineering (to appear).
[2] http://archive.ics.uci.edu/ml/datasets/Parkinsons+Telemonitoring
[3] http://zh.wikipedia.org/zh/帕金森氏症
[4] http://www.mdvu.org/library/ratingscales/pd/updrs.pdf
[5] http://www.neuro.org.tw/movement/measure/view.asp?m_no=19&page
=1
[6] http://en.wikipedia.org/wiki/Unified_Parkinson's_Disease_Rating_Scale
[7] http://en.wikipedia.org/wiki/Decision_table
[8] http://www.cs.waikato.ac.nz/~ml/weka/index_related.html
[9] http://en.wikipedia.org/wiki/Support_vector_machine
[10] http://en.wikipedia.org/wiki/Decision_table
[11] http://en.wikipedia.org/wiki/K-nearest_neighbor_algorithm

You might also like