K-means算法实现

1.实验数据构建
首先构建实验所用的数据,这里我才用的是随机数生成的形式,生成1000个二
维空间的点,存储到特定文件与集合中,并在函数结束时将集合返回。代码如下:
在这里插入图片描述
2.K-means算法实现
有了数据之后,接下来要做的就是K-means算法本身的实现了,首先,先初始化
k个点作为初始中心点,这里的k值我设置为3。为了使得生成的初始中心点与实际的数据点分布相符,我采用了x_rand = min + (max-min)*random(1)的形式,其中min与max分别为当前维度取值的最大值与最小值,x_rand为当前维度的初始值。代码如下:
在这里插入图片描述
有了初始中心点后,便开始进行聚类。遍历所有的数据点,针对每一个数据点,找出距离该数据点距离最近的中心点,然后将该数据点与对应中心点归为一类。完成一次遍历后,针对每一个类别,计算类别中所有数据的每个维度的平均值,将所有维度平均值组合起来形成新的中心点,然后重复上述过程,直至所有数据点的类别不再变化为止。代码如下:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值