【数据挖掘】数据挖掘总结 ( K-Means 聚类算法 | 二维数据的 K-Means 聚类 ) ★

举报
韩曙亮 发表于 2022/01/10 23:57:45 2022/01/10
【摘要】 文章目录 一、 K-Means 聚类算法流程二、 二维数据的 K-Means 聚类1、 第一次迭代2、 第二次迭代 参考博客 : 【数据挖掘】聚类算法 简介 ( 基于划分的聚类...



参考博客 :





一、 K-Means 聚类算法流程



K-Means 算法 步骤 : 给定数据集 X \rm X X , 该数据集有 n \rm n n 个样本 , 将其分成 K \rm K K 个聚类 ;

① 中心点初始化 : K \rm K K 个聚类分组选择初始的中心点 , 这些中心点称为 Means ; 可以依据经验 , 也可以随意选择 ;

② 计算距离 : 计算 n \rm n n 个对象与 K \rm K K 个中心点 的距离 ; ( 共计算 n × K \rm n \times K n×K 次 )

③ 聚类分组 : 每个对象与 K \rm K K 个中心点的值已计算出 , 将每个对象分配给距离其最近的中心点对应的聚类 ;

④ 计算中心点 : 根据聚类分组中的样本 , 计算每个聚类的中心点 ;

⑤ 迭代直至收敛 : 迭代执行 ② ③ ④ 步骤 , 直到 聚类算法收敛 , 即 中心点 和 分组 经过多少次迭代都不再改变 , 也就是本次计算的中心点与上一次的中心点一样 ;


给定 一组样本 , 和 一组中心点 , 计算 所有样本所有中心点 的距离 , 给样本 分组 , 计算分好组的样本的中心点 , 重新计算所有样本到所有中心点的距离 , 继续进行分组 , 一直迭代执行上述操作 , 直到连续两次样本分组不再变化 ;





二、 二维数据的 K-Means 聚类



给定数据集 { A 1 ( 2 , 4 ) , A 2 ( 3 , 7 ) , B 1 ( 5 , 8 ) , B 2 ( 9 , 5 ) , C 1 ( 6 , 2 ) , C 2 ( 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)} , 初始中心点 { A 1 ( 2 , 4 ) , B 1 ( 5 , 8 ) , C 1 ( 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 算法对数据集进行聚类分析 ;


曼哈顿距离计算方式 : 以计算 A 1 ( 2 , 4 ) \rm A_1 ( 2 , 4 ) A1(2,4) B 1 ( 5 , 8 ) \rm B_1 ( 5 , 8 ) B1(5,8) 的距离为例 ;

d ( A 1 , B 1 ) = ∣ 2 − 5 ∣ + ∣ 4 − 8 ∣ = 7 \rm d(A_1 , B_1) = | 2-5 | + | 4-8 | = 7 d(A1,B1)=25+48=7




1、 第一次迭代


第一次迭代 : 计算每个样本值与每个中心点的距离 , 将样本分类到最近的中心点所在的分组 , 计算每个分组新的中心值 ;

A 1 ( 2 , 4 ) A_1 ( 2 , 4 ) A1(2,4) A 2 ( 3 , 7 ) A_2 ( 3 , 7 ) A2(3,7) B 1 ( 5 , 8 ) B_1 ( 5 , 8 ) B1(5,8) B 2 ( 9 , 5 ) B_2 ( 9 , 5 ) B2(9,5) C 1 ( 6 , 2 ) C_1 ( 6 , 2 ) C1(6,2) C 2 ( 4 , 9 ) C_2 ( 4 , 9 ) C2(4,9)
A 1 ( 2 , 4 ) A_1 ( 2 , 4 ) A1(2,4) 0 0 0 4 4 4 7 7 7 8 8 8 6 6 6 7 7 7
B 1 ( 5 , 8 ) B_1 ( 5 , 8 ) B1(5,8) 7 7 7 3 3 3 0 0 0 7 7 7 7 7 7 2 2 2
C 1 ( 6 , 2 ) C_1 ( 6 , 2 ) C1(6,2) 6 6 6 8 8 8 7 7 7 6 6 6 0 0 0 9 9 9

新的聚类分组 :

① 聚类 1 1 1 : { A 1 } \{ A_1 \} {A1}

② 聚类 2 2 2 : { A 2 , B 1 , C 2 } \{ A_2 , B_1 , C_2 \} {A2,B1,C2}

③ 聚类 3 3 3 : { B 2 , C 1 } \{ B_2 , C_1 \} {B2,C1}


新的中心点计算 :

C 1 = ( 2 , 4 ) \rm C_1 = (2, 4) C1=(2,4)

C 2 = ( 3 + 5 + 4 3 , 7 + 8 + 9 3 ) = ( 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)

C 3 = ( 9 + 6 2 , 5 + 2 2 ) = ( 7 , 3 ) \rm C_3 = ( \cfrac{9 + 6 }{2} , \cfrac{5 + 2}{2}) = ( 7 , 3 ) C3=(29+6,25+2)=(7,3)




2、 第二次迭代


第二次迭代 : 计算每个样本值与每个中心点的距离 , 将样本分类到最近的中心点所在的分组 , 计算每个分组新的中心值 ;

A 1 ( 2 , 4 ) A_1 ( 2 , 4 ) A1(2,4) A 2 ( 3 , 7 ) A_2 ( 3 , 7 ) A2(3,7) B 1 ( 5 , 8 ) B_1 ( 5 , 8 ) B1(5,8) B 2 ( 9 , 5 ) B_2 ( 9 , 5 ) B2(9,5) C 1 ( 6 , 2 ) C_1 ( 6 , 2 ) C1(6,2) C 2 ( 4 , 9 ) C_2 ( 4 , 9 ) C2(4,9)
( 2 , 4 ) ( 2 , 4 ) (2,4) 0 0 0 4 4 4 7 7 7 8 8 8 6 6 6 7 7 7
( 4 , 8 ) ( 4 , 8 ) (4,8) 6 6 6 2 2 2 1 1 1 8 8 8 8 8 8 1 1 1
( 7 , 3 ) ( 7 , 3 ) (7,3) 6 6 6 8 8 8 7 7 7 4 4 4 2 2 2 9 9 9

新的聚类分组 :

① 聚类 1 1 1 : { A 1 } \{ A_1 \} {A1}

② 聚类 2 2 2 : { A 2 , B 1 , C 2 } \{ A_2 , B_1 , C_2 \} {A2,B1,C2}

③ 聚类 3 3 3 : { B 2 , C 1 } \{ B_2 , C_1 \} {B2,C1}


新的中心点计算 :

C 1 = ( 2 , 4 ) \rm C_1 = (2, 4) C1=(2,4)

C 2 = ( 3 + 5 + 4 3 , 7 + 8 + 9 3 ) = ( 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)

C 3 = ( 9 + 6 2 , 5 + 2 2 ) = ( 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 算法变种 )

文章来源: hanshuliang.blog.csdn.net,作者:韩曙亮,版权归原作者所有,如需转载,请联系作者。

原文链接:hanshuliang.blog.csdn.net/article/details/111831701

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。