1

我想要做的事情的簡單例子:如何根據Python中的相似性或重疊來比較兩個羣集分組?

比方說,我有3個數據點A,B和C.我運行KMeans聚類在這個數據上,得到2個簇[(A,B),(C)]。然後我對這個數據運行MeanShift集羣並獲得2個集羣[(A),(B,C)]。很顯然,這兩種聚類方法以不同的方式聚集數據。我希望能夠量化這種差異。換句話說,我可以使用什麼度量來確定從兩種算法獲得的兩個羣集組之間的相似性/重疊百分比?下面是可能被給予分數的範圍:

  • 100%的分數[(A,B),(C)][(A,B),(C)]
  • 〜50%的分數[(A,B),(C)][(A),(B,C)]
  • 〜20%的分數[(A,B),(C)][(A,B,C)]

這些分數有點隨意,因爲我不確定如何衡量兩個不同集羣分組之間的相似性。請記住,這是一個簡化的示例,在實際應用程序中,您可以擁有多個數據點,並且每個羣集分組也可以有多個羣集。嘗試將羣集分組與標記的數據分組進行比較時(具有標記的數據時),使用此類度量標準也很有用。

編輯:我有一個想法是將第一個羣集組中的每個羣集與第二個羣集中的每個羣集重疊。這將爲您提供第一個羣集組中的羣集的相似性矩陣,以及第二個羣集中的羣集。但是,我不確定你會用這個矩陣做什麼。也許在每一行或每列中取得最高的相似度分數,並對此做些什麼?

回答

2

使用評估指標。

許多指標是對稱的。例如,adjusted Rand index

值接近1意味着它們非常相似,接近於0是隨機的,遠小於0意味着一個集羣中的每個集羣均勻分佈在另一個集羣中。

2

好吧,確定聚類數量是數據分析中的問題,也是聚類問題本身的不同問題。這個AIC 或Cubic聚類標準有很多標準。我認爲,通過scikit-learn,沒有選項可以默認計算這兩個值,但我知道R中有包。

+0

我不想確定最佳數量的羣集,我只是想比較兩個不同的羣集分組結果,看看它們有多相似。 – Eddy

相關問題