K均值算法是典型的聚類(lèi)算法,算法基本步驟如下
1 隨機(jī)產(chǎn)生k個(gè)中心點(diǎn),一個(gè)中心點(diǎn)代表一個(gè)類(lèi)別
2 計(jì)算每個(gè)點(diǎn)與k個(gè)中心點(diǎn)的距離,并將該點(diǎn)劃分到與之距離最短的中心點(diǎn)所屬的類(lèi)別當(dāng)中
3 對(duì)每一個(gè)類(lèi)別,使用該類(lèi)中所有點(diǎn)的均值更新中心點(diǎn)
重復(fù)2/3兩個(gè)步驟直到前后兩次劃分的類(lèi)別不再改變?yōu)橹?/p>
以上步驟中兩點(diǎn)非常重要
1 每個(gè)元素都需要計(jì)算與質(zhì)心得距離,距離的計(jì)算取決于距離計(jì)算函數(shù),可以是歐式距離,也可能是曼哈頓距離
2 更新質(zhì)心時(shí)使用的所有點(diǎn)的均值,所有點(diǎn)的個(gè)數(shù)是指上一次形成的簇中的簇元素個(gè)數(shù)。

K均值算法的缺點(diǎn)
1 但你必須事先確定 k 的大小
2 必須給出K個(gè)初始化中心
3 對(duì)于異常數(shù)據(jù)過(guò)于敏感,異常數(shù)據(jù)的存在對(duì)于中心點(diǎn)的計(jì)算產(chǎn)生極大影響
4 求中心點(diǎn)時(shí)需要計(jì)算算術(shù)平均
5 無(wú)法找出具有特殊形狀的族
這里重新說(shuō)明下聚類(lèi)
聚類(lèi)是一種沒(méi)有訓(xùn)練數(shù)據(jù)分類(lèi)。
實(shí)現(xiàn)將對(duì)象自動(dòng)分組的一種方法:聚類(lèi) Cluster。引申到編程語(yǔ)言領(lǐng)域,我們常說(shuō)的高內(nèi)聚,低耦合,就是這里的聚類(lèi)。
重新計(jì)算質(zhì)心
KNN與KMeans區(qū)別