k-均值聚類
n 個樣本分到 k 個不一樣的類或簇,每一個樣本到其所屬類的中心的距離最小。git
每一個樣本只能屬於一個類,全部 k-均值聚類 是 硬聚類。github
模型
- k < n
![G_{i} \cap G_{j} = \varnothing, \bigcup_{i=1}^{k}G_{i} = X](http://static.javashuo.com/static/loading.gif)
策略
- 距離: 歐式距離
- 損失函數:樣本與所屬類的中心的距離總保
- NP 困難問題
算法
目標函數極小化算法
- 初始化,隨機取
個樣本作中心
- 對樣本進行聚類,計算樣本到類中心距離,每一個樣本指派到與其最近的中心的類
- 計算新的類中心。對聚類結果計算樣本的均值,作爲新的類中心
- 若是迭代收斂或符合中止條件,輸出。不然,令
,返回 2
源碼:github.com/iOSDevLog/s…函數