溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

k-means算法是什么

發(fā)布時間:2021-12-04 17:28:38 來源:億速云 閱讀:133 作者:柒染 欄目:大數(shù)據(jù)

這篇文章將為大家詳細(xì)講解有關(guān)k-means算法是什么,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

聚類算法屬于無監(jiān)督的機(jī)器學(xué)習(xí)算法,即沒有類別標(biāo)簽y,需要根據(jù)數(shù)據(jù)特征將相似的數(shù)據(jù)分為一組。k-means為聚類算法中最簡單、常見的一種,通過計算距離,將相似性高的數(shù)據(jù)分在一起。

  • 算法流程

隨機(jī)選擇k個點(diǎn)作為聚類中心,計算其他點(diǎn)與中心點(diǎn)的距離,選擇距離最近的中心并歸類,歸類完成后計算每類的新中心點(diǎn),重新計算每個點(diǎn)與中心點(diǎn)的聚類并選擇距離最近的歸類,重復(fù)此過程,直至中心點(diǎn)不再變化。

k-means算法是什么

需要注意的是,使用k-means算法時,要先確認(rèn)k的值,即想分為幾類,k值一般設(shè)定為3-5。下圖為從網(wǎng)上截取的圖片,可以直觀看到通過4次迭代,將點(diǎn)聚為3個簇(cluster)的過程。

k-means算法是什么

  • R語言實(shí)現(xiàn)

在R中實(shí)現(xiàn)k-means聚類,可以直接使用kmeans()函數(shù)。在下面的例子中,我們使用iris數(shù)據(jù)集進(jìn)行演示。

k-means算法是什么

k-means算法是什么

顏色代表聚類后得到的結(jié)果,形狀代表真實(shí)的劃分,“*”為聚類中心點(diǎn)。如下可查看每個樣本點(diǎn)的聚類結(jié)果:

k-means算法是什么

  • python實(shí)現(xiàn)



在python中實(shí)現(xiàn)k-means聚類,可以使用sklearn.cluster中的KMeans()函數(shù)同樣使用iris數(shù)據(jù)集進(jìn)行演示。

k-means算法是什么

k-means算法是什么

顏色代表聚類后得到的結(jié)果。

  • k-means優(yōu)缺點(diǎn)

優(yōu)點(diǎn)

(1)算法原理簡單,聚類速度快。

(2)容易實(shí)現(xiàn)。

缺點(diǎn)

(1)k值需要事先給定,有時候不知道分成幾類最合適。

(2)初始中心點(diǎn)的選擇會影響聚類效果。這也是為什么每次進(jìn)行聚類后,得到結(jié)果不同的原因。

(3)因為通過距離判斷點(diǎn)的相似度進(jìn)行聚類,因此k-means算法有一定的使用局限。當(dāng)潛在簇的形狀為大小相近的近似圓形,且每個簇之間聚類較明顯,k-means聚類結(jié)果比較理想。

關(guān)于k-means算法是什么就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI