Python实现k-means聚类算法
k-means是一种基于距离的聚类算法,它将一组数据点分成k个簇,每个簇的中心点是该簇中所有数据点的平均值。该算法需要指定簇的数量k以及初始中心点的位置。
下面是使用Python实现k-means聚类算法的完整源代码:
import numpy as np
from sklearn.datasets import make_blobs
class KMeans:
def __init__(self, k=2, max_iters=100):
self.k = k
self.max_iters = max_iters
def fit(self, X):
# 随机初始化k个中心点
self.centers = X[np.random.choice(len(X), self.k, replace=False)]
for i in range(self.max_iters):
# 计算每个点与中心点的距离
distances = np.linalg.norm(X[:, np.newaxis] - self.centers, axis=2)
# 分配每个点到最近的中心点
labels = np.argmin(distances, axis=1)
# 更新中心点的位置
for j in range(self.k):
self.ce
本文介绍了Python实现k-means聚类算法的详细步骤,包括使用numpy进行距离和平均值计算,借助sklearn生成样本数据,并通过代码展示了如何可视化聚类结果。
订阅专栏 解锁全文
10万+

被折叠的 条评论
为什么被折叠?



