多维kmeans聚类算法python代码实现
时间: 2023-06-22 08:21:25 浏览: 215
以下是多维K-means聚类算法Python代码实现的示例:
```
import numpy as np
import random
def kmeans(data, k, max_iter=100):
n = data.shape[0]
m = data.shape[1]
centroids = np.zeros((k, m))
for i in range(k):
centroids[i] = data[random.randint(0, n-1)]
for j in range(max_iter):
clusters = [[] for i in range(k)]
for i in range(n):
distances = np.sqrt(np.sum(np.power(centroids - data[i], 2), axis=1))
cluster = np.argmin(distances)
clusters[cluster].append(i)
new_centroids = np.zeros((k, m))
for i in range(k):
new_centroids[i] = np.mean(data[clusters[i]], axis=0)
if np.allclose(centroids, new_centroids):
break
centroids = new_centroids
return clusters, centroids
```
其中,data是一个n行m列的numpy数组,表示n个m维数据点;k表示要聚类的簇数;max_iter表示最大的迭代次数。函数返回值是一个元组,第一个元素是一个长度为k的列表,每个列表元素是一个包含数据点索引的列表,表示每个聚类簇中包含哪些数据点;第二个元素是一个k行m列的numpy数组,表示每个聚类簇的中心点。
阅读全文
相关推荐


















