k均值聚类算法实例代码
时间: 2023-05-12 10:00:42 浏览: 103
k均值聚类算法是一种常见的无监督学习算法,在数据挖掘和机器学习领域广泛应用。它通过将数据集分成几个簇,使得同一簇内的数据点相似度高,不同簇间的数据点相似度低。下面是k均值聚类算法的一个示例代码:
1. 导入需要的库
import numpy as np
import matplotlib.pyplot as plt
2. 初始化数据集
data = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12], [13, 14], [15, 16]])
3. 设置初始质心
k = 2
centroids = np.array([[3, 4], [13, 14]])
4. 迭代更新质心
for i in range(10):
# 计算每个数据点到质心的距离
distances = []
for j in range(k):
distance = np.sqrt(np.sum((data - centroids[j]) ** 2, axis=1))
distances.append(distance)
distances = np.array(distances)
# 根据最小距离重新分配簇
labels = np.argmin(distances, axis=0)
# 计算新质心
new_centroids = []
for j in range(k):
cluster = data[labels == j]
centroid = np.mean(cluster, axis=0)
new_centroids.append(centroid)
centroids = np.array(new_centroids)
5. 可视化结果
plt.scatter(data[:, 0], data[:, 1], c=labels)
plt.scatter(centroids[:, 0], centroids[:, 1], s=200, c='r', marker='x')
plt.show()
通过运行上述代码,可以得到数据集的聚类结果,其中红色的点为质心。通过迭代更新质心,算法可以得到最优的簇分配方式,从而聚合相似的数据点。