实现 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()

全部评论

相关推荐

不愿透露姓名的神秘牛友
01-15 20:52
黑皮白袜臭脚体育生:五宿大战是吧,死去的记忆还在攻击我
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务