k-means 聚類
k-means聚類是無監(jiān)督學習,訓練數(shù)據(jù)集都是未添標簽的(不知類別)。就連數(shù)據(jù)集最終要分成幾類都是不知道的坏挠。聚類和分類的不同是,后者必須對分類的目標事物必須是已知的邪乍。
聚類算法是根據(jù)樣本之間的距離(相似度)來分類的降狠,判斷是否屬于同一個簇。常見的計算距離的算法有歐式距離庇楞,曼哈頓距離和余弦相似性距離等榜配。其中歐式距離,在二維平面上就是兩點距離公式吕晌。
應用
假設有如下數(shù)據(jù)集蛋褥,現(xiàn)在要用k-means 聚類把它進行分類
1.658985 4.285136
-3.453687 3.424321
4.838138 -1.151539
-5.379713 -3.362104
0.972564 2.924086
-3.567919 1.531611
0.450614 -3.302219
-3.487105 -1.724432
2.668759 1.594842
-3.156485 3.191137
3.165506 -3.999838
-2.786837 -3.099354
4.208187 2.984927
-2.123337 2.943366
0.704199 -0.479481
............
k-means的算法核心是
- 把上面數(shù)據(jù)放在 二維矩陣dataSet
- 指定想把數(shù)據(jù)集分為 k 類
- 隨機生成 k個質心,....,生成方法是選出矩陣第一列, 睛驳,選出第二列,壁拉,在, 隨機產(chǎn)生,在[,生成柏靶,得出。同理生成其他質心
- 遍歷全部數(shù)據(jù)點溃论,離哪個質心距離最近屎蜓,數(shù)據(jù)就歸為那類。建立一個二維矩陣存儲各個數(shù)據(jù)分類情況和誤差(離質心距離)
- 更新質心:計算每個類所有點的均值作為質心
- 重新遍歷全部數(shù)據(jù)點钥勋,若沒有一個數(shù)據(jù)歸類改變isChange = false炬转,則聚類結束
最后聚類結束之后的結果
二分 k-means
二分k-means 是對k-meas 的改進
參考文章
歡迎大家給我留言辆苔,提建議,指出錯誤扼劈,一起討論學習技術的感受驻啤!