数据分类K-means算法的Python代码实现
发布时间
阅读量:
阅读量
k_means算法是一种用于数据分类的常用方法,特别适用于对具有相同维度的数据集进行划分。
以二维平面为例,可以将原始数据形象地理解为平面上分布的若干点,而分类任务则需要确定一些中心点(这些中心点可能并不属于原始数据),并将这些数据点划归到不同的集合中,从而完成分类过程。
该算法的主要操作流程如下:
1) 确定 K 个初始的中心点
2) 根据欧拉距离最小的原则,将原始数据分配至由这 K 个中心点构成的各个集合中
3) 重新计算这 K 个中心点的坐标位置,新坐标为各自集合内所有数据点在各维度上的算术平均值所构成的新坐标
4) 使用更新后的 K 个中心点重复执行步骤2和3,直到中心点的位置不再发生变化为止
该算法的核心思想简单直观,但在实际应用中仍存在一些需要关注的问题:
1) 如何确定初始阶段所选取的 K 个中心点?
在多数情况下,通常采用随机选取的方式进行初始化。当然也允许用户手动指定初始位置。然而如果依赖随机选择,则可能导致最终结果出现一定程度的波动性
2) 如何确定合适的 K 值?
这一问题往往需要依靠经验判断,并且与数据本身的分布特征密切相关。因此很难找到一个最优解
PS: 在程序实现过程中需要注意的是,输入的数据可能是整数类型。但由于新的中心点需要通过算术平均计算得出,因此需特别注意进行类型转换操作。
运行方式如下:
将代码保
全部评论 (0)
还没有任何评论哟~
