聚類演算法實踐(四)——演算法總結
阿新 • • 發佈:2019-01-10
前面的文章裡總共提到了7種聚類演算法,我們就會情不自禁地想知道,哪一種是“最好”的聚類演算法?
正如我在一開始就提到,聚類實際上是由使用者來給定規則,從而實現分類的。所以所謂“最好”的聚類演算法,就應該是那個聚類規則“最能反映系統特徵”的演算法(當然,在同樣能反映系統特徵的情況下,效率越高自然越好,比如AP演算法就要優於K-centers演算法)。
在聚類演算法中,最為關鍵的規則是什麼呢?我個人認為,應該就是對樣品相似性的描述。這不僅僅是指兩兩樣品之間的直接相似度(也就是相似矩陣),還有如“A與B接近,B與C接近,那麼A與C是否接近”這樣的傳遞性問題。比如在K-means裡面,這個問題就是否定的,K-means只認樣品兩兩間的直接相似性(歐氏距離),而在Chameleon演算法和譜聚類裡,這種相似性就可以通過網路進行傳遞。因此K-means得到的就只能是凸型的聚類,而後兩者則可以得到形狀各異的聚類。但是,這樣的相似性真的是我們需要的麼?這就要根據實際的問題來判斷了。所以演算法的優劣歸根到底要根據問題本身來判斷。
最後比較一下之前提到的所以演算法的特點
演算法 | 計算效率 | cluster形狀 | cluster數目選取 | 模型引數 |
---|---|---|---|---|
average-linkage | 中等 | 凸型 | 一般 | 無 |
K-means | K-means | 接近大小的凸型 | 敏感 | 無 |
譜聚類 | 高 | 任意形狀 | 不敏感 | 本徵矢數目,不敏感 |
Chameleon | 中等 | 任意形狀 | 不敏感 | RI和RC的相對權重,敏感 |
PCCA | 高 | 任意形狀 | 自動判斷 | 無 |
SOM | 中上 | 接近大小的凸型 | 一般 | 沒有測試,估計不太敏感 |
Affinity Propagation | 低 | 任意形狀 | 敏感 | 敏感 |