2012-05-07 68 views
2

我使用Carrot2工具進行論文並在此工具上運行不同的算法。我的問題是,我怎樣才能科學地比較不同算法的結果?我的意思是,我需要證明算法1的聚類結果優於算法2的結果。熵和純度值是否適用於我,如果是,我該如何應用它們?在Carrot2中比較聚類結果

謝謝。

回答

2

比較兩種算法的最好辦法是在我看來,以顯示對真實數據的表現,並解釋爲什麼他們的工作好或沒有在某些特殊情況下正常工作(如它運作良好,在密集的數據或稀疏數據,或密度可變的數據......)。在某些情況下,您可能能夠做出理論證明,表明某種算法與另一種算法相比具有一些額外的理想屬性。但這可能很難做到。

還用於確定結果是好的,你可能需要一個領域的專家來告訴你,在集羣爲你的應用領域是有意義的。

我的意思是像熵和純度的措施是有趣的措施。但是最終數據挖掘技術只有在它爲該領域產生有意義的結果時才適用於特定的域。

如果你是深化發展一般的聚類算法比你也許會用這些措施來證明你的算法比在一定條件下另一種算法更好的性能和使用這些措施的爭論有關。但是你仍然需要用一些真實的數據來說明爲什麼它在某些情況下效果更好。

1

比較聚類結果不幸並不簡單。特別是涉及重疊,層次和子空間結果時。常用的措施只能起到嚴格的分區集羣的作用。即使如此,他們也有不同的偏見,並且存在一打質量度量。所以你的結果在一個方面可能會更好,而另一方面則更糟糕。

我不知道胡蘿蔔的細節,因爲我是一個ELKI用戶。爲了比較聚類,其中包括各種計數測量(Precision,Recall,F1,Jaccard,Rand,Adjusted Rand,Fowlkes-Mallows),基於熵的測量(「標準互信息」),Bcubed測量(再次精確度,回憶和F1 ),設置匹配度量(F1,純度和逆純度),基於編輯距離的度量和基於基尼度量。總共有20個質量指標。我還沒有找到一個很好的論點,爲什麼這個或那個明顯優越,他們都有他們的好處和缺點。 BCubed聲稱要優越,但是,誰不?

https://en.wikipedia.org/wiki/Cluster_analysis#External_evaluation 給出了一些這些措施的細節,但也沒有指示何時使用哪些。

另外,實驗不能證明任何算法比另一種更好。你可能只是選擇了其他的錯誤參數!或者你可能正在使用不合適的「算法2」。有數百種聚類算法(ELKI是我知道的最大的聚類算法集合,這就是我目前正在使用它的原因!),理想情況下,你應該比每一個都好。我目前認爲發明另一種聚類算法並不合理。你可能只是重新發明了輪子,而有人可能已經發明瞭這種聚類算法,或者更優秀的東西。

1

正如其他都提到沒有「最好」的質量度量只是因爲質量沒有「最好」的標準,當你談論無監督聚類。有些人(和應用程序)更喜歡小而緊湊的羣集,其他人則傾向於支持大型高級羣集。一些用於分層,其他用於平面(分區)結果。有些人會喜歡清晰的分配,其他人會喜歡模糊的會員功能......這可以永遠。

與上述原因相似,沒有用於執行這種比較的「完美」基本事實集合。這一切取決於輸入數據是什麼,目標是什麼等。

請參閱Carrot2出版物列表http://project.carrot2.org/publications.html,其中一些出版物包括可以重複使用的質量指標和數據集(關注上面的評論)。這可能是最適用於聚類搜索結果:

Claudio Carpineto,StanislawOsiński,Giovanni Romano,Dawid Weiss:Web聚類引擎調查。 ACM計算調查(CSUR),第41卷,第3期(2009年7月),第17條,ISSN:0360-0300

而且,當然,如果您想出一個有趣的新算法!