K Means演算法整理

2021-09-26 22:44:40 字數 1132 閱讀 7290

k-means是無監督學習演算法。

首先隨機選定k個樣本點作為初始簇中心;

計算所有樣本點到簇中心的距離;

每個樣本點選擇與它距離最近的簇中心作為這個樣本點的簇;

更新簇中心;

重複2,3,4步,直到聚類結果保持不變。

注:這個k就是聚類的類別數,它是我們自己定的,沒有定的標準,主要看經驗

e =∑

i=1k

∑x∈c

i∣∣x

−μi∣

∣2

2e=\sum_^k\sum_||x-\mu_i||

e=i=1∑

k​x∈

ci​∑

​∣∣x

−μi​

∣∣22​μi

=1∣c

i∣∑x

∈cix

\mu_i=\frac\sum_x

μi​=∣c

i​∣1

​∑x∈

ci​​

x 其中k是自定義的聚類類別數,c

ic_i

ci​是第i個簇,μ

i\mu_i

μi​是簇c

ic_i

ci​的均值向量。

(1)式刻畫了簇內樣本圍繞簇均值向量的緊密程度,e越小,簇內樣本相似度越高。

首先自定義k的大小

隨機選擇乙個樣本點作為簇中心

計算所有樣本點到這個簇中心的距離

選擇這些樣本點中距離這個簇中心的最遠的樣本點作為下乙個簇中心

重複3,4步,直到選出第k個簇中心

k-means在一開始就首先隨機選定了k個樣本點作為k個簇中心;

k-means++是乙個乙個給出簇中心,先隨機選定乙個樣本點作為簇中心,然後計算出下乙個簇中心。它使得初始的簇中心點盡可能地遠,有效避免選擇聚類中心的盲目性,穩定性和收斂速度都得到提高。

演算法簡單快速;

在處理大資料集時,演算法保持可伸縮性和高效性。

k值選定困難;

對初始聚類中心敏感。隨機選擇初始聚類中心會導致演算法的不穩定性,有可能陷入區域性最優;

對雜訊和孤立點敏感。在計算簇均值時,那些雜訊和孤立點會對結果產生極大影響,導致結果不穩定;

通常只能發現資料分布均勻的球狀簇,因為它主要使用歐式距離函式度量資料物件間的相似度。

k means演算法不足

a.k 不確定 對於初始條件和聚類的個數 k 並沒有乙個標準的方法來給定。初始條件不同會對結果產生比較大的影響,因為有時演算法會跳入區域性最優。所以解決方法之一,就是多次執行演算法,隨機分割,比較結果之間的差異。b.區域性最優 如果要達到全域性最優,需要用到其他一些技術,比如模擬退火或者遺傳演算法等...

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演算法主要解決的問題如下圖所示。我們可以看到,在圖的左邊有一些點,我們用肉眼可以看出來有四個點群,但是我們怎麼通過電腦程式找出...