0

我編碼我的應用程序的每個功能,所以我不使用它做家居的工具,你當停止凝聚層次聚類 - 停止準則

一直在尋找解決方案時,把我的凝聚層次聚類

如何我是否集羣?在C#中,它使用Euclidean_Distance文檔對

之間計算距離

我已經編寫應用程序4.5.2

到目前爲止我使用標準的層次同時它採用UPGMA計算距離之間的集羣,以決定合併其那些

我也編碼蘭德指數和F措施來測試我的手工標註數據集的成功

但問題是,當停止合併多個集羣

我真的很糟糕,在沒有了解真實的數據例如數學公式或很好​​的解釋僞代碼

有數學公式隨處可見,但沒有現實生活中的例子

所以找你的答案。例如它寫在許多地方貝葉斯信息標準(BIC)是一個很好的解決方案,但我不知道如何將其應用到我的軟件

我也有其他距離或相似性度量,如餘弦相似度或索倫森骰子距離等

上有stackexchange這麼多的問題或計算器關於這一點,但所有的答案是使用工具

像Matlab或R或等

回答

2

嘗試來計算的每個特定集羣如何適合一些措施 - 爲例如,來自羣集的距離之和水庫,或平方誤差的總和。您應該發現,隨着您增加羣集數量,此錯誤會減少 - 適合更多羣集會更容易,並且隨着羣集數量的減少而增加。

現在繪製一張圖並尋找一個「肘」,隨着羣集數量的減少,錯誤開始變大。然後,您可以假設錯誤開始快速增長之前的最小羣集數是數據中真正的羣集數。

見例如Cluster analysis in R: determine the optimal number of clusters圖只是下面的文字:「我們可能會得出結論,4羣會用這種方法來表示:」

+0

TY的答案。但繪製圖表意味着監督技術。我必須以編程方式進行編程。也在我的應用程序,我沒有任何想法我怎麼能畫一個圖:D – MonsterMMORPG

+0

該文章https://www.stat.washington.edu/wxs/Stat592-w2011/Literature/tibshirani-walther-prediction-strength- 2005.pdf描述了一種使用交叉驗證來評估具有不同數目簇的簇的方法。快速閱讀表明,它將數據分開以重複聚類,並查看點對是否可靠地聚集在一起,或可靠地聚集在一起。希望是,如果你得到正確的簇數,你用這個數目的簇形成的簇將具有這個屬性。 – mcdowella