数据分类K—means 算法的python代码实现

本文介绍了K-means算法在数据分类中的应用,特别是在相同维度数据集上的分类。通过选择K个初始中心点,根据欧几里得距离最小原则进行分类,并不断迭代更新中心点直到稳定。文章探讨了初始中心点的选择和K值确定的问题,并提供了一个Python代码实现,该实现可以从数据文件读取数据并允许用户自定义K值。
摘要由CSDN通过智能技术生成


k_means算法是用来进行数据分类的,尤其适用于相同维度数据集合的分类。

形象来说,以2维平面为例,原始数据则可以看做是分布在其中的一些点,而分类则是需要找出一些中心点(可能不属于这些数据)将这些数据点分成一个个集合,如此便完成了分类。

算法主要步骤为:

1) 选择 K 个起始的中心点

2) 按照欧拉距离最小的原则,将原始数据分类到这K个中心点形成的集合中

3) 重新计算这K 个中心点的坐标,它的新坐标为它所形成的集合中所有点各维度的算术平均值所形成的新点

4) 以重新形成的K 个中心点 重复2),3), 直至中心点坐标不再变化


算法的思想很简单直接,但是有一些问题需要指出:

1) 如何选择最初的K 个中心点?

在实现中大多数都采用 随机选择的方法,当然也可以人为指定。如果使用随机选取的方法,会造成最终的结果形成波动

2) 如何定 K 值的大小?

这个只能凭借经验了,而且和数据的分布特点也有关系,很难确定出最好的方案

PS: 注意在程序实现过程中,数据可能是Int 型,但是由于新的中心点需要算术平均,所以注意进行类型转换。


运行方式:

将代码保存为.py格式,默认使用的数据是代码文件所在目录下data目录下的 k_means.txt 文件分别作为源数据输入。以上参数可以在源代码中修改,也可以使用命令行参数传入,参考以下启动方式ÿ

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值