【数据挖掘】数据挖掘总结 ( K-Means 聚类算法 | 二维数据的 K-Means 聚类 ) ★
文章目錄
- 一、 K-Means 聚類算法流程
- 二、 二維數據的 K-Means 聚類
- 1、 第一次迭代
- 2、 第二次迭代
參考博客 :
- 【數據挖掘】聚類算法 簡介 ( 基于劃分的聚類方法 | 基于層次的聚類方法 | 基于密度的聚類方法 | 基于方格的聚類方法 | 基于模型的聚類方法 )
- 【數據挖掘】基于劃分的聚類方法 ( K-Means 算法簡介 | K-Means 算法步驟 | K-Means 圖示 )
- 【數據挖掘】K-Means 一維數據聚類分析示例
- 【數據挖掘】K-Means 二維數據聚類分析 ( K-Means 迭代總結 | K-Means 初始中心點選擇方案 | K-Means 算法優缺點 | K-Means 算法變種 )
一、 K-Means 聚類算法流程
K-Means 算法 步驟 : 給定數據集 X\rm XX , 該數據集有 n\rm nn 個樣本 , 將其分成 K\rm KK 個聚類 ;
① 中心點初始化 : 為 K\rm KK 個聚類分組選擇初始的中心點 , 這些中心點稱為 Means ; 可以依據經驗 , 也可以隨意選擇 ;
② 計算距離 : 計算 n\rm nn 個對象與 K\rm KK 個中心點 的距離 ; ( 共計算 n×K\rm n \times Kn×K 次 )
③ 聚類分組 : 每個對象與 K\rm KK 個中心點的值已計算出 , 將每個對象分配給距離其最近的中心點對應的聚類 ;
④ 計算中心點 : 根據聚類分組中的樣本 , 計算每個聚類的中心點 ;
⑤ 迭代直至收斂 : 迭代執行 ② ③ ④ 步驟 , 直到 聚類算法收斂 , 即 中心點 和 分組 經過多少次迭代都不再改變 , 也就是本次計算的中心點與上一次的中心點一樣 ;
給定 一組樣本 , 和 一組中心點 , 計算 所有樣本 到 所有中心點 的距離 , 給樣本 分組 , 計算分好組的樣本的中心點 , 重新計算所有樣本到所有中心點的距離 , 繼續進行分組 , 一直迭代執行上述操作 , 直到連續兩次樣本分組不再變化 ;
二、 二維數據的 K-Means 聚類
給定數據集 {A1(2,4),A2(3,7),B1(5,8),B2(9,5),C1(6,2),C2(4,9)}\rm \{ A_1 ( 2 , 4 ) , A_2 ( 3 , 7 ) , B_1 ( 5 , 8 ) , B_2 ( 9 , 5 ) , C_1 ( 6 , 2 ) , C_2 ( 4 , 9 ) \}{A1?(2,4),A2?(3,7),B1?(5,8),B2?(9,5),C1?(6,2),C2?(4,9)} , 初始中心點 {A1(2,4),B1(5,8),C1(6,2)}\rm \{ A_1 ( 2 , 4 ) , B_1 ( 5 , 8 ) , C_1 ( 6 , 2 ) \}{A1?(2,4),B1?(5,8),C1?(6,2)} , 使用 K-Means 算法對數據集進行聚類分析 ;
曼哈頓距離計算方式 : 以計算 A1(2,4)\rm A_1 ( 2 , 4 )A1?(2,4) 與 B1(5,8)\rm B_1 ( 5 , 8 )B1?(5,8) 的距離為例 ;
d(A1,B1)=∣2?5∣+∣4?8∣=7\rm d(A_1 , B_1) = | 2-5 | + | 4-8 | = 7d(A1?,B1?)=∣2?5∣+∣4?8∣=7
1、 第一次迭代
第一次迭代 : 計算每個樣本值與每個中心點的距離 , 將樣本分類到最近的中心點所在的分組 , 計算每個分組新的中心值 ;
| A1(2,4)A_1 ( 2 , 4 )A1?(2,4) | 000 | 444 | 777 | 888 | 666 | 777 |
| B1(5,8)B_1 ( 5 , 8 )B1?(5,8) | 777 | 333 | 000 | 777 | 777 | 222 |
| C1(6,2)C_1 ( 6 , 2 )C1?(6,2) | 666 | 888 | 777 | 666 | 000 | 999 |
新的聚類分組 :
① 聚類 111 : {A1}\{ A_1 \}{A1?}
② 聚類 222 : {A2,B1,C2}\{ A_2 , B_1 , C_2 \}{A2?,B1?,C2?}
③ 聚類 333 : {B2,C1}\{ B_2 , C_1 \}{B2?,C1?}
新的中心點計算 :
C1=(2,4)\rm C_1 = (2, 4)C1?=(2,4)
C2=(3+5+43,7+8+93)=(4,8)\rm C_2 =( \cfrac{3 + 5 + 4}{3} , \cfrac{7 + 8 + 9}{3}) = ( 4 , 8 )C2?=(33+5+4?,37+8+9?)=(4,8)
C3=(9+62,5+22)=(7,3)\rm C_3 = ( \cfrac{9 + 6 }{2} , \cfrac{5 + 2}{2}) = ( 7 , 3 )C3?=(29+6?,25+2?)=(7,3)
2、 第二次迭代
第二次迭代 : 計算每個樣本值與每個中心點的距離 , 將樣本分類到最近的中心點所在的分組 , 計算每個分組新的中心值 ;
| (2,4)( 2 , 4 )(2,4) | 000 | 444 | 777 | 888 | 666 | 777 |
| (4,8)( 4 , 8 )(4,8) | 666 | 222 | 111 | 888 | 888 | 111 |
| (7,3)( 7 , 3 )(7,3) | 666 | 888 | 777 | 444 | 222 | 999 |
新的聚類分組 :
① 聚類 111 : {A1}\{ A_1 \}{A1?}
② 聚類 222 : {A2,B1,C2}\{ A_2 , B_1 , C_2 \}{A2?,B1?,C2?}
③ 聚類 333 : {B2,C1}\{ B_2 , C_1 \}{B2?,C1?}
新的中心點計算 :
C1=(2,4)\rm C_1 = (2, 4)C1?=(2,4)
C2=(3+5+43,7+8+93)=(4,8)\rm C_2 =( \cfrac{3 + 5 + 4}{3} , \cfrac{7 + 8 + 9}{3}) = ( 4 , 8 )C2?=(33+5+4?,37+8+9?)=(4,8)
C3=(9+62,5+22)=(7,3)\rm C_3 = ( \cfrac{9 + 6 }{2} , \cfrac{5 + 2}{2}) = ( 7 , 3 )C3?=(29+6?,25+2?)=(7,3)
第二次迭代與第一次迭代值相同 , 因此第三次迭代的結果就是 K-Means 聚類算法最終結果 ;
詳細解析參考 【數據挖掘】K-Means 二維數據聚類分析 ( K-Means 迭代總結 | K-Means 初始中心點選擇方案 | K-Means 算法優缺點 | K-Means 算法變種 )
總結
以上是生活随笔為你收集整理的【数据挖掘】数据挖掘总结 ( K-Means 聚类算法 | 二维数据的 K-Means 聚类 ) ★的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【数据挖掘】数据挖掘总结 ( 拉普拉斯修
- 下一篇: 【CMake】CMake 引入 ( An