您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關k-means算法是什么,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
聚類算法屬于無監督的機器學習算法,即沒有類別標簽y,需要根據數據特征將相似的數據分為一組。k-means為聚類算法中最簡單、常見的一種,通過計算距離,將相似性高的數據分在一起。
算法流程
隨機選擇k個點作為聚類中心,計算其他點與中心點的距離,選擇距離最近的中心并歸類,歸類完成后計算每類的新中心點,重新計算每個點與中心點的聚類并選擇距離最近的歸類,重復此過程,直至中心點不再變化。
需要注意的是,使用k-means算法時,要先確認k的值,即想分為幾類,k值一般設定為3-5。下圖為從網上截取的圖片,可以直觀看到通過4次迭代,將點聚為3個簇(cluster)的過程。
R語言實現
在R中實現k-means聚類,可以直接使用kmeans()函數。在下面的例子中,我們使用iris數據集進行演示。
顏色代表聚類后得到的結果,形狀代表真實的劃分,“*”為聚類中心點。如下可查看每個樣本點的聚類結果:
python實現
在python中實現k-means聚類,可以使用sklearn.cluster中的KMeans()函數同樣使用iris數據集進行演示。
顏色代表聚類后得到的結果。
k-means優缺點
優點:
(1)算法原理簡單,聚類速度快。
(2)容易實現。
缺點:
(1)k值需要事先給定,有時候不知道分成幾類最合適。
(2)初始中心點的選擇會影響聚類效果。這也是為什么每次進行聚類后,得到結果不同的原因。
(3)因為通過距離判斷點的相似度進行聚類,因此k-means算法有一定的使用局限。當潛在簇的形狀為大小相近的近似圓形,且每個簇之間聚類較明顯,k-means聚類結果比較理想。
關于k-means算法是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。