K-means聚類 的 Python 實現


K-means聚類 的 Python 實現
K-means聚類是一個聚類算法用來將 n 個點分成 k 個集群。

算法有3步:
1.初始化– K 個初始質心會被隨機生成
2.分配 – K 集群通過關聯到最近的初始質心生成
3.更新 –重新計算k個集群對應的質心
分配和更新會一直重復執行直到質心不再發生變化。

最后的結果是點和質心之間的均方差達到最小。

以 k=3 為例演示這個過程:

初始化

分配:

更新:

重新分配:

可以看到一個紅色的點,變成了綠色的;一個藍色的點變成了紅色的。
我們更加接近最終目標了。
現在重復這個過程,直到每一個集群都沒有變化為止。

繼續這個過程:

現在得到3個清晰地集群和3個質點在這三個集群的中間。

結論:
1.k-means 可以嘗試不同的初始化質點來獲取更好的 label.
2.如果數據集有一定的對稱性,一些數據可能會被錯誤的標記。
3.k-means 依賴歐氏距離,所以對尺度非常敏感,所以如果存在縮放問題,要對數據進行歸一化處理。

http://www.tensorflownews.com/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM