第三章 ,方法
3.3 尋找相似度轉換的最佳解
透過相似度轉換公式與非度量性多元尺度法的幫助,我們能夠學習出一組新 的屬性關係。然而,僅對資料集做一次的相似度轉換,有時無法說明新的屬性是 否能真實反映資料間的相似關係。倘若相似度轉換無法滿足真實的相似關係,我 們對新屬性再次進行相似度轉換,透過連續迭代轉換,期望資料之間的關係能更 接近真實。對於不同的資料集,所需要的相似度轉換次數未必相同,因此相似度 轉換所需要的次數成為重要的問題。
相似度轉換的過程可被視為一種非監督式學習,在轉換的過程並無參考其它 外部資訊,無需透過外部資訊的幫助即可尋找相似度轉換所需的次數。我們結合 分群演算法與相似度轉換,每當完成相似度轉換後,隨即將新產生的屬性代入至 分群演算法產生新的分群結果,協助我們判斷一個較為合理的相似度轉換次數。
如何選擇適當的轉換次數,我們的假設是:當轉換前和轉換後的屬性所分別產生 的二組分群結果呈現高度相似時,表示相似關係並無受轉換公式的影響產生過多 的變化,可推測已經找到一組穩定的相似關係,無需再繼續做更多次的相似度轉 換,因此,選擇轉換前的屬性關係做為相似度轉換的最佳解。我們提出一種符合 上述假設的停止條件:比較前後兩次相似度轉換產生的新屬性其分群結果,當用 來評估兩分群結果相似程度的分數高於門檻值時,表示已找出一個恰當的相似度 轉換次數。
用來評估分群相似度的方法有許多種,例如:Rand Index[19]或 Adjusted Rand Index[20],然而,多數方法所求出的分數往往只具有相對的比較意義,並無法直 接說明相似的程度。我們的目標是在迭代的過程中找出一個停止點,因此需要一 種具有實質意義的分數來訂定符合停止條件的門檻值。.
Cohen’s Kappa 一致性係數[21]是一種統計學中測量信度的方法,用來表現 重覆測量的一致性,求出的分數將具有實質的意義,最常見的應用在於醫學臨床 診斷之一致性判斷或社會科學的研究上。適用 Cohen’s Kappa 一致性係數的情況
22
主要有下列兩種:
1. 人際信度(inter-rater reliability):評估兩種檢驗方法的結果是否一致
2. 人內信度(intra-rater reliability):評估相同檢驗方法重覆量測的結果是否一致 Cohen’s Kappa 一致性係數的公式如下:
𝒦𝒶𝓅𝓅𝒶 = P0− Pc
1 − Pc
P0為觀測一致性(observed agreement),表示前後兩種測量結果一致的百分比;Pc 為期望一致性(chance agreement),表示前後兩種測量結果預期相同的機率。參考 表 3-2,使用列聯表(contingency table)描述分類結果,則 P0和 Pc的公式如下:
P0 = ∑ ON ii
i=1N , Pc = 1 N �
Ci× Ri N
N
i=1
Cohen’s Kappa 係數將以百分比表示,範圍介於-1 至 1 之間,通常會落在 0 至 1 之間。1977 年由 Landis 和 Koch [22]提出五種不同數值範圍所分別對應的一致性 等級,如表 3-3 所示。
表 3-2. 使用列聯表描述分類結果
Class
Label v1 … vN Sums
u1 O11 … O1N R1
… … … …
uN ON1 … ONN RN
Sums C1 … CN N
我們使用 Cohen’s Kappa 一致性係數比較前後兩次分群結果相似程度,然而 Cohen’s Kappa 一致性係數主要應用的領域卻是比較分類結果的一致性,其類別 都具有實質意義。以醫學診斷為例,假設兩位醫師先後診斷八位病患,而每位病
23
患都有兩種可能的診斷結果,分為良性或惡性。以表 3-4(a)說明兩位醫師的診斷 結果,將診斷結果使用列聯表呈現,我們可以算出兩位醫師診斷的觀測一致性 P0是 0.625、期望一致性 Pc是 0.5,則 Cohen’s Kappa 一致性性係數為 0.25。將 Cohen’s Kappa 一致性係數應用於分類領域上,每一個評估者(rater)被賦予的類別 都具有實質意義,我們不能恣意修改分類結果,例如將醫師 1 的診斷結果中所有 屬於惡性的病患替換成良性、良性替換成惡性,新的觀測一致性 P0為 0.375、期 望一致性 Pc為 0.5,使得 Cohen’s Kappa 一致性性係數變更成-0.25。恣意修改分 類結果等同於錯誤分類,且會造成 Cohen’s Kappa 一致性性係數顯著不同。我們 將上述問題延伸至分群,醫師的診斷結果並非用於良性與惡性病患之分類,而是 將相同病症的病患分成多個分群,表 3-4(b)將診斷結果一致的病患以相同的數字 標記。對照表 3-4(a),我們發現醫師 1 的診斷結果中被標記為 1 的病患屬於良性、
0 則是屬於惡性,而在醫師 2 的診斷結果中屬於良性的記號是 0、惡性則是 1。
二位醫師產生不一致的診斷結果,正如同將表 3-4(a)中醫師 1 的診斷結果顛倒。
我們已知分群結果所賦予的分群記號並無實質意義,若是直接使用分群記號做為 類別計算 Cohen’s Kappa 一致性係數,會顯著影響 Cohen’s Kappa 一致性係數的 數值。因此在 2005 年由 Reilly 等[23]學者提出一種新的方法延伸 Cohen’s Kappa 一致性係數,使其能應用於分群領域。
2005 年由 Reilly 等[23]學者提出一種延伸自 Cohen’s Kappa 一致性係數的方 法,命名為 Kmax,目的是修正 Cohen’s Kappa 一致性係數使其能夠應用在分群領
表 3-3. Cohen’s Kappa 一致性係數等級[22]
Kappa Rank of agreement 0.00 ~ 0.20 Slight 0.21 ~ 0.40 Fair 0.41 ~ 0.60 Moderate 0.61 ~ 0.80 Substantial
0.81 ~ 1.00 Almost perfect agreement
24 表 3-4(a). 分類結果應用於 Cohen’s Kappa 一致性係數
病患 A B C D E F G H 醫師 1 良 良 惡 惡 惡 惡 良 良 醫師 2 良 良 良 惡 惡 良 良 惡
表 3-4(b).分群結果應用於 Cohen’s Kappa 一致性係數
病患 A B C D E F G H 醫師 1 1 1 0 0 0 0 1 1 醫師 2 0 0 0 1 1 0 0 1
域。由於分群結果所賦予的類別記號並無實質意義,我們可以隨意改變分群的類 別編號而不影響分群結果。Kmax方法的目標在於最佳化分群一致性,我們從中挑 選出一組可以最大化 Cohen’s Kappa 一致性係數的類別排列方式,並以此時計算 出的 Cohen’s Kappa 一致性係數做為 Kmax的最佳解。
沿用表 3-4(a)的例子,我們任意賦予診斷結果一個類別編號,屬於相同類別 之診斷結果以相同的數字標記。在只有二位醫師的情況下,每位醫師都有 2 階乘 種排列方式,共計 4 種類別排列方式,如表 3-5 所示。
由於情況 1 和情況 4、情況 2 和情況 3 屬於相同的排列方式,我們僅說明情 況 1 和情況 2 對於 Cohen’s Kappa 的影響。表 3-6 將表 3-5 中的情況 1 和情況 2 其類別排列方式以列聯表呈現。列聯表中每個欄位分別代表的意義是:
a. 表示被醫師 1 和醫師 2 歸類為第 0 群的病患數量
b. 表示被醫師 1 歸類為第 0 群,但被醫師 2 歸類為第 1 群的病患數量 c. 表示被醫師 1 歸類為第 1 群,但被醫師 2 歸類為第 0 群的病患數量 d. 表示被醫師 1 和醫師 2 歸類為第 1 群的病患數量
在表 3-6(a)中,二位醫師都將良性病患其編號設定為 0,惡性病患的編號設定為 1;而在表 3-6(b)中,醫師 1 仍然將良性病患的編號設定為 0,惡性病患的編號設 為 1,但醫師 2 對病患的編號設定卻與醫師 1 不同。考慮兩種情況的觀測一致性 (observed agreement, P0),即加總列聯表中位於對角線的數值。我們發現表 3-6(a) 的觀測一致性明顯大於表 3-6(b),因此可求得較高的 Cohen’s Kappa 一致性係數,
25
說明表 3-5 的情況 1 是讓分群結果最為一致的排列方法,能夠充分解釋二位醫師 對於診斷的共識。
我們使用 Kmax方法做為判斷相似度轉換的迭代過程是否停止的條件,將門 檻值(threshold)設定在 0.9 以上,表示兩組分群結果呈現的一致性必須滿足表 3-3 中的一致性等級,達到”Almost perfect agreement”的水準之上。
完成迭代的停止條件設計,我們將相似度轉換公式與非度量性多元尺度法結
表 3-5. 類別記號可能的排列方式
醫師 1 醫師 2 良 惡 良 惡 情況 1 0 1 0 1 情況 2 0 1 1 0 情況 3 1 0 0 1 情況 4 1 0 1 0
表 3-6(a). 隨意排序分群結果之示意圖,情況 1
情況 1 醫師 2
0(良性) 1(惡性) 總數
醫師1
0(良性) a 3 b 1 4 1(惡性) c 2 d 2 4
總數 5 3 8
表 3-6(b). 隨意排序分群結果之示意圖,情況 2
情況 2 醫師 2
0(惡性) 1(良性) 總數
醫師1
0(良性) a 1 b 3 4 1(惡性) c 2 d 2 4
總數 3 5 8
26
合。其中,用於判斷一個合適的相似度轉換次數的分群演算法,我們採用 K-means 或 K-medoids 演算法。由於目標是比較前後兩次分別產生的分群結果的相似程度 來判斷是否需要繼續向下迭代,分群結果必須盡可能不受離群值的影響。
K-medoids 演算法與 K-means 演算法相比,對離群值的敏感性較低,因此選用 K-medoids 作為分群演算法;然而,少數情況下,即便選用 K-medoids 演算法仍 然無可避免受到離群值的影響。
K-medoids 演算法的目標是由多個不同的初始實心出發,從中挑選一組能夠 最佳化目標函數的分群結果做為最佳解。若是離群值被挑選至初始實心集合中,
難以藉由 K-medoids 演算法的實心迭代步驟修正分群結果,依然會產生不平衡的 分群。在某些情況下,錯誤的分群結果也許會擁有最佳的目標函數值。儘管離群 質的數量稀少,仍然有機率被挑選至初始實心集合中,若是不幸被挑進初始實心 集合便會造成不平衡的分群。離群值的數量必定是相對稀少,因此我們認為不平 衡的分群結果是較難出現在較為頻繁的分群集合之中。為了避免受到離群值的影 響,我們提出一種改進方法,稱為 ferq K-medoids,它是修改 K-medoids 演算法 中尋找最佳解的方法,將最佳化目標函數的步驟替換成尋找最頻繁出現的分群結 果。由於挑選初始實心的方式採用全隨機,自不同的初始實心出發,倘若有較多 次數能收斂至相同的實心,足以說明分群結果並非偶然。目標函數扮演的角色並 非完全失去舞台,仍然有其存在的必要。雖然我們不再參考目標函數以挑選最佳 分群結果,但在資料分類的過程中,依然是遵循目標函數,將資料分類至能夠最 佳化目標函數的分群,使得分群結果能符合預期的假設。
圖 3-5 是尋找相似度轉換最佳解的虛擬碼(pseudo code)。其中,非度量性多 元尺度法使用 R statistics[24]提供的 isoMDS 函式,isoMDS 實作由 Kruskal[18]
提出的演算法,時間複雜度是 O(n2) ,n 是資料總數;分群演算法則是採用修改 後的 K-mediuds 演算法,時間複雜度是 O(nkt),n 是資料總數,k 是分群總數,t 是迭代次數。
27
Algorithm: Similarity Transform
Input: Original data Output: Transformed data Method:
1. D0 ← Original data 2. w ← 0
3. Finding clustering result, Cw, by freq K-medoids.
4. repeat 4a. w ← w+1
4b. Find all pairs of link weight, A, and transform.
4c. Use Kruskal’s nMDS to generate new attribute, Dw. 4d. Find the clustering result, Cw, by freq K-medoids.
4e. Calculate Kmax between Cw-1 and Cw. 4. until Kmax > 0.9
5. Transformed data ← Dw-1
Algptithm: freq K-medoids Input:Data
Method:
1. Let C1, C2… Ck be the initial cluster center.
1. Let C1, C2… Ck be the initial cluster center.