ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

kmeans算法

2021-05-17 16:04:31  阅读:286  来源: 互联网

标签:means 样本 lines kmeans 算法 中心点 np


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算法有极大的影响,不同的初始点可能最终聚类的结果不同,特别是数据样本比较少的情况下

 

标签:means,样本,lines,kmeans,算法,中心点,np
来源: https://www.cnblogs.com/zhjblogs/p/14777216.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有