赞
踩
以下是使用Python实现k均值(k-means)聚类算法的示例代码:
- import numpy as np
-
- def k_means(data, k, max_iterations=100):
- # 随机选择k个初始质心
- centroids = data[np.random.choice(range(len(data)), k)]
-
- for _ in range(max_iterations):
- # 计算每个样本与质心之间的距离
- distances = np.linalg.norm(data[:, np.newaxis] - centroids, axis=2)
-
- # 对每个样本,选取距离最近的质心作为其所属类别
- labels = np.argmin(distances, axis=1)
-
- # 更新质心位置为所属类别的平均值
- new_centroids = np.array([data[labels == i].mean(axis=0) for i in range(k)])
-
- # 如果新的质心位置与旧的质心位置相同,则停止迭代
- if np.all(centroids == new_centroids):
- break
-
- centroids = new_centroids
-
- return labels, centroids

这个示例代码中的data
是输入的样本数据,每个样本是一个n维向量,其中n
是特征的数量。k
是要聚类的簇数,max_iterations
是最大迭代次数。
函数k_means
返回两个结果,labels
是每个样本所属的聚类簇的标签,centroids
是最终的质心位置。
你可以使用这个示例代码来实现k均值聚类算法。确保在调用函数时将你自己的数据作为参数传递进去。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。