k means演算法不足

2021-06-27 12:46:31 字數 541 閱讀 5648

a. k 不確定

對於初始條件和聚類的個數 k ,並沒有乙個標準的方法來給定。 初始條件不同會對結果產生比較大的影響,因為有時演算法會跳入區域性最優。所以解決方法之一,就是多次執行演算法,隨機分割,比較結果之間的差異。

b. 區域性最優

如果要達到全域性最優,需要用到其他一些技術,比如模擬退火或者遺傳演算法等等, 不過代價就是演算法的複雜度大大增加。另外一種可能性, 就是該演算法就不可能達到全域性最優. 應用的時候需要借助其他的一些工具, 比如我們提到的kernel.

c. 雜訊敏感

一些離資料中心很遠的點,也必須被分配到某乙個聚類中,這就會產生中心的偏離 (這種偏離有時影響是很大的)。

d. 線性演算法

k-means 演算法是線性的演算法, 不能處理非線性的資料, 所以一些常見的分類效果很差. 比如本文將用以說明的測試集. 測試集類似於具有相同圓心的圓環形資料. k-means 演算法將不能有效地把兩個圓環分開.

f. 應用限制

對於中心的定義,限制了應用的範圍, 只能對於數值變數的應用。 對於一些定性的變數,需要改變相似度的度量來獲得更好的解釋。 

Kmeans演算法實現

include opencv2 highgui highgui.hpp include opencv2 core core.hpp include using namespace cv using namespace std static void help int main int argc ch...

K means演算法上

在資料探勘中,k means演算法是一種cluster analysis的演算法,其主要是來計算資料聚集的演算法,主要通過不斷地取離種子點最近均值的演算法。問題k means演算法主要解決的問題如下圖所示。我們可以看到,在圖的左邊有一些點,我們用肉眼可以看出來有四個點群,但是我們怎麼通過電腦程式找出...

K means演算法下

聚類演算法,不是分類演算法。分類演算法是給乙個資料,然後判斷這個資料屬於已分好的類中的具體哪一類。聚類演算法是給一大堆原始資料,然後通過演算法將其中具有相似特徵的資料聚為一類。這裡的k means聚類,是事先給出原始資料所含的類數,然後將含有相似特徵的資料聚為乙個類中。所有資料中還是andrew n...