首页 > 试题广场 >

实现 k-Means 聚类算法

[编程题]实现 k-Means 聚类算法
  • 热度指数:112 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
编写一个实现 k-Means 聚类算法的 Python 函数。
该函数应该接受输入并生成最终质心的列表。 k-Means 聚类是一种用于将n点划分为k簇的方法,目标是将相似的点分组在一起,并用其"中心"(称为质心)表示每个组。

输入描述:
函数输入4个参数
points :点列表,其中每个点都是一个坐标元组
k :表示要形成的簇数的整数
initial_centroids :初始质心点列表,每个点都是一个坐标元组
max_iterations :表示要执行的最大迭代次数的整数



输出描述:
函数返回:簇的最终质心的列表,其中每个质心都四舍五入,保留小数点后四位,用元组表示。
示例1

输入

[(1, 2), (1, 4), (1, 0), (10, 2), (10, 4), (10, 0)]
2
[(1, 1), (10, 1)]
10

输出

[(1.0, 2.0), (10.0, 2.0)]

备注:
1.对应的输入、输出已给出,您只用实现核心功能函数即可。
2.支持numpy、scipy、pandas、scikit-learn库。
头像 牛客题解官
发表于 2025-02-05 16:01:10
k-Means 聚类算法(k-Means Clustering)是一种常用的聚类算法,用于将数据集分为个簇。具体步骤如下: 随机选择个点作为初始聚类中心。 将每个点分配到最近的聚类中心 本题使用欧几里得距离作为距离度量,即 更新聚类中心为每个簇的平均值。 重复步骤2和步骤3,直到聚类中心不再变 展开全文