实现 k-Means 聚类算法——偷懒版
实现 k-Means 聚类算法
https://www.nowcoder.com/practice/dc90d7c8b7bd44ac8b5029f830cd2e65
基于sklearn的简单实现。
import numpy as np
from sklearn.cluster import k_means
def k_means_clustering(points, k, initial_centroids, max_iterations):
# 实现代码
initial_centroids = np.array(initial_centroids)
centroid, labels, inertia = k_means(points, k, init=initial_centroids, max_iter=max_iterations)
# print(centroid, labels, inertia)
ans = []
for p in centroid:
# print(p)
p = p.round(4)
ans.append(tuple(p))
return ans
def main():
# Read input for points
points = eval(input())
# Read input for number of clusters
k = int(input())
# Read input for initial centroids
initial_centroids = eval(input())
# Read input for maximum iterations
max_iterations = int(input())
# Perform k-Means clustering
final_centroids = k_means_clustering(points, k, initial_centroids, max_iterations)
# Print the final centroids
print(final_centroids)
if __name__ == "__main__":
main()

查看3道真题和解析