K均值演算法
K均值屬於比較簡單的聚類問題,所謂的聚類問題,就是給定一個元素集合D,其中每個元素具有n個可觀察屬性,使用某種演算法將D分成K個子集,要求每個子集內部的元素之間的相異度儘可能的小,而不同子集的元素相異度儘可能的大。其中每一個子集叫做一個簇。
傳統K均值的計算過程:
1.從D中隨機取K個元素,作為K個簇的各自的中心。
2.計算剩下的元素到各個中心點的相異度(一般按照歐式距離的遠近),將這些元素歸納到相異度最低的簇。
3.根據聚類結果,重新計算K個簇各自的中心,計算方法是取簇中所有元素各自維度的算數平均數(一般為簇內所有元素點到簇中心的距離和的平均數)。
4.將D中所有的元素按照新的中心重新聚類。
5.重複第4步,直到聚類結果不再變化。
6.將結果輸出。
K-Means++演算法
K-Means主要有兩個最重大的缺陷------都和初始值有關:
(1)K是事先給定的,這個K值的選定是非常難以估計的。很多時候,事先並不知道給定的資料集應該分成多少個類別才最合適。
(2)K-Means演算法需要用初始隨機種子點來搞,這個隨機種子點太重要,不同的隨機種子點會有得到完全不同的結果。
K-Means++演算法步驟:
1.先從資料集D中隨機挑選一個點當“種子點”。
2.對於每個點,我們都計算其和最近的一個“種子點”的距離D(x)並儲存在一個陣列裡,然後把這些距離加起來得到Sum(D(x))。
3,然後,再取一個隨機值,用權重的方式來取計算下一個“種子點”。這個演算法的實現是,先取一個能落在Sum(D(x))中的隨機值Random,然後用Random-=D(x),直到其《=0,此時的點就是下一個“種子點”。
4.重複第2,3步直到所有的K個種子點都被選出來。
5.進行K-Means演算法。
關於K值選取的問題:
聚類數的確定沒有個確切的方法。
K值可以先用系統聚類法,看譜系圖然後得出大致分幾類。然後多試幾個K值,確定個最好的。
系統聚類法見連結:http://www.cnblogs.com/yangmier/archive/2012/04/09/2438447.html
相關文章
- K-鄰近均值演算法演算法
- 演算法雜貨鋪:k均值聚類(K-means)演算法聚類
- 一句話總結K均值演算法演算法
- 聚類之K均值聚類和EM演算法聚類演算法
- 《機器學習實戰》kMeans演算法(K均值聚類演算法)機器學習演算法聚類
- 演算法金 | 一文讀懂K均值(K-Means)聚類演算法演算法聚類
- K 均值演算法-如何讓資料自動分組演算法
- K均值演算法基於CUDA環境的實現演算法
- K-均值聚類分析聚類
- Python k-均值聚類演算法二維例項Python聚類演算法
- 演算法金 | K-均值、層次、DBSCAN聚類方法解析演算法聚類
- k-均值聚類簡介聚類
- 《機器學習實戰》二分-kMeans演算法(二分K均值聚類)機器學習演算法聚類
- 第十篇:K均值聚類(KMeans)聚類
- 機器學習經典聚類演算法 —— k-均值演算法(附python實現程式碼及資料集)機器學習聚類演算法Python
- K-Means(K均值)、GMM(高斯混合模型),通俗易懂,先收藏了!模型
- 用K-均值聚類來探索顧客細分聚類
- 避免溢位求平均值的演算法演算法
- golang實現二倍均值演算法和搶紅包Golang演算法
- 記錄一下二倍均值紅包演算法演算法
- 第5章 基於K均值聚類的網路流量異常檢測聚類
- K - 近鄰演算法演算法
- K近鄰演算法演算法
- iOS基於灰度的均值雜湊演算法實現影象匹配iOS演算法
- 機器學習——K近鄰演算法機器學習演算法
- k-近鄰演算法演算法
- 分類演算法-k 鄰近演算法演算法
- 機器學習演算法之K近鄰演算法機器學習演算法
- NiBlack二值化演算法和區域性均值法演算法
- 機器學習演算法——kNN(k-近鄰演算法)機器學習演算法KNN
- 機器學習-K近鄰演算法-KNN機器學習演算法KNN
- 機器學習演算法(三):K近鄰(k-nearest neighbors)初探機器學習演算法REST
- 後處理 - 均值模糊
- K近鄰演算法:機器學習萌新必學演算法演算法機器學習
- 【機器學習】:Kmeans均值聚類演算法原理(附帶Python程式碼實現)機器學習聚類演算法Python
- k-means 演算法介紹演算法
- k-means演算法筆記演算法筆記
- 機器學習-11-k近鄰演算法機器學習演算法