kmeans算法

Posted 北极星!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kmeans算法相关的知识,希望对你有一定的参考价值。

3.1划分方法

 

 

 聚类算法距离——k-means算法

 

 

 k-means算法

 

输入:簇的数;数据集;
输出:k个簇
方法:从数据集中找出k个对象当作原始的簇心;

 

 k-means算法的再次解读

 

 

 k-means聚类算法练习-1

下面1-10个样本

 

 

 使用代码计算连续值属性距离

import numpy as np 
a=np.array([(3,4),(3,6),(7,3),(4,7),(3,8),(8,5),(4,5),(4,1),(7,4),(5,5)])
lines=""
for i in a:
    for j in a:
        dis=np.sqrt(np.sum((j-i)**2))
        lines += "%.2f"%dis + ","  #保留两位小数     #“str(dis)+","
    lines+=\'\\n\'
file=open("result.csv",mode="w",encoding="utf-8")
file.write(lines)
file.close()

 

 第一轮迭代完得到的分别以p7、p10为中心的两个簇

 

 下面开始计算每个簇中心的均值

p7、p1、p2、p4、p5、p8样本点的x值相加求平均,y值相加求平均得到一个新的簇中心点
p10、p3、p6、p9样本点的x值相加求平均,y值相加求平均得到一个新的簇中心点

新的簇中心点再来和所有的样本数据点求距离

 

 实例

 

 

 序号4和7是一样的(巧合),其实换做其他的序号3和7,与之前的结果不一样

结论是:k-means算法 的初始中心点对k-means算法有极大的影响,不同的初始点可能最终聚类的结果不同,特别是数据样本比较少的情况下

 

以上是关于kmeans算法的主要内容,如果未能解决你的问题,请参考以下文章

机器学习基础:kmeans算法及其优化

Kmeans算法实现

tensorflow基础模型之KMeans算法

使用二叉树结构的 KMeans 算法中的数据聚类

在 Spark 上训练 Kmeans 算法失败

K-means 与KNN 聚类算法