-2

我有一個非常大量的矩陣形式的數據。我已經使用k-means聚類在MATLAB R2013a中對它進行聚類。我想要每個聚類形成質心的確切座標..是否有可能使用任何公式或其他任何東西?查詢關於k-means聚類的MATLAB

我想找出每個集羣的重心,這樣當有一些新的數據矩陣到來時,我可以計算每個質心的距離,以便找出新數據將屬於集羣

我數據在本質上是異構的。因此,它很難找出每個簇的數據的平均值。因此,我正在嘗試編寫一些自動打印質心位置的代碼。

+0

發佈您用於kmeans的代碼,質心是MATLAB函數的輸出... – Dan

+0

使用** documentarion ** ...但是如果您的數據在本質上是「異質的」,k-均值可能會失敗產生有意義的結果。仔細研究結果! **它在k-means的意義上可以是'最優的',但同時也是無用的和有偏見的**。 –

回答

0

質心簡單評估爲分配給該羣集的所有點座標的平均值。

如果您有任務{point; cluster},則可以輕鬆評估質心:假設您有給定的集羣,並指定n點,這些點爲a1,a2,...,an。您可以通過使用評估這種集羣的質心:

centroid=(a1+a2+...+an)/n 

很明顯,你可以在一個循環中運行這個過程,這取決於如何你的數據結構(即賦值點/形心)的組織。

+2

但是,爲什麼當羣集質心位置只是MATLAB的['kmeans'](http://www.mathworks.com/help/stats/kmeans.html?refresh=true)的第二個輸出時呢? – Dan

+1

OP沒有指定使用什麼工具箱/功能,他正在尋找公式來評估質心。這是質心和公式的定義。如果他/她一直在使用Matlab內置的kmeans功能,那麼他/她可以使用給定的輸出。 – Alessiox

1

在MATLAB中,使用

[idx,C] = kmeans(..) 

代替

idx = kmeans(..) 

作爲每documentation

[IDX,C] = k均值(..)返回k個聚類在k-by-p矩陣C中的質心位置。