美文网首页数据
k-means 聚类

k-means 聚类

作者: 字字经心 | 来源:发表于2022-07-29 12:00 被阅读0次

k-means 聚类

k-means聚类是无监督学习,训练数据集都是未添标签的(不知类别)。就连数据集最终要分成几类都是不知道的。聚类和分类的不同是,后者必须对分类的目标事物必须是已知的。

聚类算法是根据样本之间的距离(相似度)来分类的,判断是否属于同一个簇。常见的计算距离的算法有欧式距离,曼哈顿距离和余弦相似性距离等。其中欧式距离,在二维平面上就是两点距离公式。

应用

假设有如下数据集,现在要用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的算法核心是

  1. 把上面数据放在 二维矩阵dataSet
  2. 指定想把数据集分为 k 类
  3. 随机生成 k个质心A_1(x_1, y_1),A_2(x_2, y_2)....A_n(x_n, y_n),生成方法是选出矩阵第一列min_1, max_1,选出第二列min_2,max_2,在[min_1,max_1] 随机产生x_1,在[min_2,max_2]生成y_1,得出A_1(x_1, y_1)。同理生成其他质心
  4. 遍历全部数据点,离哪个质心距离最近,数据就归为那类。建立一个二维矩阵存储各个数据分类情况和误差(离质心距离)
  5. 更新质心:计算每个类所有点的均值作为质心
  6. 重新遍历全部数据点,若没有一个数据归类改变isChange = false,则聚类结束

最后聚类结束之后的结果

k-means1.png

二分 k-means

二分k-means 是对k-meas 的改进

参考文章

K-Means(K-均值)聚类算法

欢迎大家给我留言,提建议,指出错误,一起讨论学习技术的感受!

相关文章

网友评论

    本文标题:k-means 聚类

    本文链接:https://www.haomeiwen.com/subject/qkdsirtx.html