4

有沒有客觀的方法來驗證聚類算法的輸出?從羣集算法驗證輸出

我正在使用scikit-learn的關聯傳播聚類來對由具有許多屬性的對象組成的數據集。提供給聚類算法的差異矩陣由這些屬性的加權差異組成。我正在尋找一種方法來客觀驗證距離權重中的調整,反映在所得到的羣集中。數據集很大,並且具有足夠的屬性,因此手動檢查小例子不是驗證生成的集羣的合理方法。

回答

9

提供的集羣領域專家,並讓他分析,如果結構中發現的算法是明智。如果它是新的,但不是很明顯,但是如果它是明智的。

...和

沒有可自動評價,認爲是公平。從這個意義上說,它將無監督聚類的目標考慮在內:知識發現又名:瞭解有關數據的新知識。

有自動評估聚類的兩種常用方法:

  • 內部的凝聚力。即存在一些特殊的性質,例如密集度方差與羣集間方差相比最小化。問題在於,作弊通常很微不足道。即構建一個分數非常好的微不足道的解決方案。因此,此方法必須不能用於比較基於不同假設的方法。你甚至不能公平地比較不同類型的連鎖分類。

  • 外部評估。你使用一個標記的數據集,並通過他們重新發現現有的知識來評分算法。有時候這種方式運行得很好,因此它是評估技術的公認狀態。然而,任何監督半監督方法當然會在這方面得分更好。因此,它是A)偏向監督的方法,和B)實際上完全反對知識發現想法找到你做的事還沒有知道。

如果你真的要使用集羣 - 即學習一些關於你的數據 - 你會在某個時刻必須檢查集羣,preferrably由一個完全獨立的方法,如領域專家。如果他能告訴你,例如通過聚類標識的用戶組是不平凡的尚未密切關注,那麼你是一個贏家。

然而,大多數人都希望有一個「一鍵」(和一個分數)的評價,不幸的是。

呵呵,和「聚類」是不是真的是機器學習任務。實際上沒有涉及到學習。對機器學習界來說,沒人關心的就是醜小鴨。

+0

這是我擔心的。我一直在積極應用一種方差最小化的方式。我應該刪除機器學習標籤嗎?我認爲這與切合人羣的關係是足夠的。 –

+0

標籤不會受傷。方差最小化(如k-means所執行的)就是這種偏見的一個好例子:更多的聚類(較大的k)總會減少方差,但結果不一定會更好。 –

+1

優秀的報價:「哦,'集羣'並不是真正的機器學習任務,實際上並沒有涉及到學習,對於機器學習社區來說,這是醜陋的小鴨,沒有人關心。最後有天鵝嗎?聚類是一個高度(低)的低級問題,但同時又是一個非常自然的認知問題,也是一個重要的問題。其不明確的性質導致關於聚類的出版物過多,以及大量可貴的炮製優勢證據。 – micans

3

還有另一種方法,以通過計算上subfolds穩定性度量,有點像受監管模型交叉驗證評估聚類質量:

  • 拆分在3數據集褶皺A,B和C在A + B和A + C上用你算法計算兩個聚類。計算交叉點A上2個標籤的調整後的蘭德指數或調整後的相互信息,並將此值作爲算法穩定性評分的估計值。

  • 沖洗 - 重複洗牌數據並將其拆分爲3個其他摺疊A',B'和C'並重新計算穩定性分數。

  • 平均5或10次運行的穩定性得分可以粗略估計穩定性得分的標準誤差。

正如你可以猜測這是非常計算機密集型的評估方法。

目前仍然是一個開放的研究領域,要知道這種基於穩定性的聚類算法評估是否在實踐中真正有用並確定何時可能無法爲模型選擇產生有效的標準。請參閱Ulrike von Luxburg的Clustering Stability: An Overview及其中的參考資料,以獲取有關這些問題的最新狀態的概述。

注意:如果您想使用此策略選擇k-means中k的最佳值,則使用Adjusted for Chance指標(如ARI或AMI)很重要。諸如NMI和V-measure之類的非調整指標傾向於傾向於任意更高k的模型。