我已經給出了2個數據集,並且想要使用KNIME對集合進行聚類分析。聚類算法的性能分析
一旦我完成了聚類,我希望對2種不同的聚類算法進行性能比較。
關於聚類算法的性能分析,這是衡量時間(算法時間複雜度和執行數據聚類所需的時間等)還是聚類輸出的有效性? (或兩者兼而有之)
有沒有其他角度可以用來確定聚類算法的性能(或缺少)?
提前許多感謝,
- 牛逼
我已經給出了2個數據集,並且想要使用KNIME對集合進行聚類分析。聚類算法的性能分析
一旦我完成了聚類,我希望對2種不同的聚類算法進行性能比較。
關於聚類算法的性能分析,這是衡量時間(算法時間複雜度和執行數據聚類所需的時間等)還是聚類輸出的有效性? (或兩者兼而有之)
有沒有其他角度可以用來確定聚類算法的性能(或缺少)?
提前許多感謝,
這取決於你有什麼可用的數據很多。
測量性能的常用方法是針對現有(「外部」)標籤(雖然對於分類比分類更有意義)。有大約二十個措施可以用於此目的。
當使用「內部」質量度量時,確保它獨立於算法。例如,k-均值優化了這樣一個度量,並且在評估這個度量時總是會表現得最好。
有兩類聚類評估方法,選擇取決於 關於是否有可用的基礎事實。第一類是需要存在基本事實的外在方法,而另一類是內在方法。一般而言,外在方法試圖根據基本事實爲聚類指定分數,而內在方法則通過檢查聚類的分離程度以及它們的緊湊程度來評估聚類。
對於外在方法(記住你需要有一個可用的基礎),一種選擇是使用BCubed精度和召回指標。由於聚類是一種無監督的學習技術,因此我們並不知道聚類的標籤,因此BCubed的precion和召回指標與傳統的精確度和召回率不同。基於這個原因,BCubed度量根據基本事實評估在給定數據集上聚類的evry對象的先驗和回憶。示例的精確度表示同一集羣中有多少其他示例屬於與示例相同的類別。回想一個例子反映了同一類別的多少例子被分配到同一個羣集。最後,我們可以使用F2度量將這兩個度量合併爲一個。
來源:
一對於有可用基礎事實的外在方法,簡單的方法是使用聚類之間的距離度量;基本事實只是被認爲是一個集羣。兩個很好的措施是使用Meila提供的信息變化,並且我個人認爲Meila也討論了自己的分裂連接距離。我不推薦Mirkin指數或蘭德指數 - 我已經寫了更多關於它here on stackexchange。
這些度量標準可以分爲兩個組成部分,每個組成部分代表一個羣集到最大公共子羣集的距離。值得考慮這兩個部分;如果地面實況部分(對於常見的子集羣)非常小,則意味着測試的集羣接近超集羣;如果另一部分很小,則意味着被測試的集羣接近於普通的子集羣,因此接近於地面事實的子集羣。在這兩種情況下,聚類都可以說與地面事實相一致。有關更多信息,請參閱上面的鏈接。
謝謝您的迴應:-)我將使用的數據是葡萄酒數據集(意大利葡萄酒的化學分析 - http://archive.ics.uci.edu/ml/machine-learning-databases /wine/wine.data)和乳腺癌數據集 - http://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data。 請您詳細說明「外部」標籤與「內部」質量措施背後的含義? – yodatg 2012-03-14 11:02:25
請參閱維基百科:https://en.wikipedia.org/wiki/Cluster_analysis#Evaluation_of_Clustering_Results 它解釋了「內部」和「外部」。但請注意,你*不是*測試你是否真的發現了一些有用的新東西。特別是使用*分類*數據時,例如UCI數據。聚類實際上是關於新簇的*發現*,而不是複製已知類(然後它將是分類)。理想情況下,您可以手動檢查找到的集羣並檢查它們對您是否有意義。 – 2012-03-14 13:08:08
很好 - 感謝您的幫助Anony-Mousse – yodatg 2012-03-15 11:15:33