K-Means 算法

    在數據挖掘中, k-Means 算法是一種 cluster analysis 的算法,其主要是來計算數據彙集的算法,主要經過不斷地取離種子點最近均值的算法。算法

    K-Means算法主要解決的問題以下圖所示。咱們能夠看到,在圖的左邊有一些點,咱們用肉眼能夠看出來有四個點羣,可是咱們怎麼經過計算機程序找出這幾個點羣來呢?因而就出現了咱們的K-Means算法。spa

 

算法概要

這個算法其實很簡單,以下圖所示:

K-Means 算法概要

K-Means 算法概要ip

從上圖中,咱們能夠看到,A, B, C, D, E 是五個在圖中點。而灰色的點是咱們的種子點,也就是咱們用來找點羣的點。有兩個種子點,因此K=2。get

而後,K-Means的算法以下:it

  1. 隨機在圖中取K(這裏K=2)個種子點。
  2. 而後對圖中的全部點求到這K個種子點的距離,假如點Pi離種子點Si最近,那麼Pi屬於Si點羣。(上圖中,咱們能夠看到A,B屬於上面的種子點,C,D,E屬於下面中部的種子點)
  3. 接下來,咱們要移動種子點到屬於他的「點羣」的中心。(見圖上的第三步)
  4. 而後重複第2)和第3)步,直到,種子點沒有移動(咱們能夠看到圖中的第四步上面的種子點聚合了A,B,C,下面的種子點聚合了D,E)。

k-Means算法的缺點:數據挖掘

     K 是事先給定的,這個 K 值的選定是很是難以估計的。不少時候,事先並不知道給定的數據集應該分紅多少個類別才最合適。io

    K-Means算法須要用初始隨機種子點來搞,這個隨機種子點過重要,不一樣的隨機種子點會有獲得徹底不一樣的結果。class

相關文章
相關標籤/搜索