K均值算法是典型的聚類算法镜硕,算法基本步驟如下
1 隨機產生k個中心點哥桥,一個中心點代表一個類別
2 計算每個點與k個中心點的距離岁钓,并將該點劃分到與之距離最短的中心點所屬的類別當中
3 對每一個類別佃扼,使用該類中所有點的均值更新中心點
重復2/3兩個步驟直到前后兩次劃分的類別不再改變?yōu)橹?/p>
以上步驟中兩點非常重要
1 每個元素都需要計算與質心得距離偎巢,距離的計算取決于距離計算函數,可以是歐式距離兼耀,也可能是曼哈頓距離
2 更新質心時使用的所有點的均值压昼,所有點的個數是指上一次形成的簇中的簇元素個數求冷。
K均值算法的缺點
1 但你必須事先確定 k 的大小
2 必須給出K個初始化中心
3 對于異常數據過于敏感,異常數據的存在對于中心點的計算產生極大影響
4 求中心點時需要計算算術平均
5 無法找出具有特殊形狀的族
這里重新說明下聚類
聚類是一種沒有訓練數據分類窍霞。
實現將對象自動分組的一種方法:聚類 Cluster匠题。引申到編程語言領域,我們常說的高內聚但金,低耦合韭山,就是這里的聚類。
重新計算質心
KNN與KMeans區(qū)別