当前位置:   article > 正文

K-means 聚类算法的 Python 实现示例_kmeans python 举例

kmeans python 举例
  1. import numpy as np
  2. class KMeans:
  3. def __init__(self, n_clusters=2, max_iter=300):
  4. self.n_clusters = n_clusters # 聚类数目
  5. self.max_iter = max_iter # 最大迭代次数
  6. def fit(self, X):
  7. # 初始化聚类中心
  8. self.centroids = X[np.random.choice(X.shape[0], self.n_clusters, replace=False)]
  9. for _ in range(self.max_iter):
  10. # 计算每个样本到聚类中心的距离
  11. distances = np.sqrt(((X - self.centroids[:, np.newaxis])**2).sum(axis=2))
  12. # 将样本分配到最近的聚类中心
  13. labels = np.argmin(distances, axis=0)
  14. # 更新聚类中心
  15. new_centroids = np.array([X[labels == i].mean(axis=0) for i in range(self.n_clusters)])
  16. # 判断聚类中心是否变化小于阈值
  17. if np.allclose(self.centroids, new_centroids):
  18. break
  19. else:
  20. self.centroids = new_centroids
  21. return labels
  22. # 示例数据
  23. X = np.array([[1, 2], [5, 8], [1.5, 1.8], [8, 8], [1, 0.6], [9, 11]])
  24. # 聚类
  25. kmeans = KMeans(n_clusters=2)
  26. labels = kmeans.fit(X)
  27. print("聚类结果:", labels)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/678899
推荐阅读
相关标签
  

闽ICP备14008679号