K-means聚類算法(事先數(shù)據(jù)并沒(méi)有類別之分!所有的數(shù)據(jù)都是一樣的)
1、概述
K-means算法是集簡(jiǎn)單和經(jīng)典于一身的基于距離的聚類算法
采用距離作為相似性的評(píng)價(jià)指標(biāo),即認(rèn)為兩個(gè)對(duì)象的距離越近,其相似度就越大。
該算法認(rèn)為類簇是由距離靠近的對(duì)象組成的,因此把得到緊湊且獨(dú)立的簇作為最終目標(biāo)。
2、核心思想
通過(guò)迭代尋找k個(gè)類簇的一種劃分方案,使得用這k個(gè)類簇的均值來(lái)代表相應(yīng)各類樣本時(shí)所得的總體誤差最小。
k個(gè)聚類具有以下特點(diǎn):各聚類本身盡可能的緊湊,而各聚類之間盡可能的分開。
?k-means算法的基礎(chǔ)是最小誤差平方和準(zhǔn)則,
其代價(jià)函數(shù)是:
????
? ? ? ?式中,μc(i)表示第i個(gè)聚類的均值。
各類簇內(nèi)的樣本越相似,其與該類均值間的誤差平方越小,對(duì)所有類所得到的誤差平方求和,即可驗(yàn)證分為k類時(shí),各聚類是否是最優(yōu)的。
上式的代價(jià)函數(shù)無(wú)法用解析的方法最小化,只能有迭代的方法。
3、算法步驟圖解
下圖展示了對(duì)n個(gè)樣本點(diǎn)進(jìn)行K-means聚類的效果,這里k取2。
?
4、算法實(shí)現(xiàn)步驟
k-means算法是將樣本聚類成?k個(gè)簇(cluster),其中k是用戶給定的,其求解過(guò)程非常直觀簡(jiǎn)單,具體算法描述如下:
1)?隨機(jī)選取?k個(gè)聚類質(zhì)心點(diǎn)
2)?重復(fù)下面過(guò)程直到收斂? {
? ? ??對(duì)于每一個(gè)樣例?i,計(jì)算其應(yīng)該屬于的類:
? ? ? ??
? ? ??對(duì)于每一個(gè)類?j,重新計(jì)算該類的質(zhì)心:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-423998.html
? ? ? ? ?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-423998.html
到了這里,關(guān)于K-means聚類算法及Python代碼實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!