使用python代码实现输出k-means++算法的聚类结果
时间: 2024-05-16 09:13:33 浏览: 180
以下是使用Python实现k-means++算法的聚类结果的代码示例:
```python
import numpy as np
from sklearn.cluster import KMeans
def kmeans_plus_plus(X, k):
centers = [X[np.random.randint(len(X))]] # 随机初始化第一个簇中心
while len(centers) < k:
dists = np.array([min([np.linalg.norm(x - c) for c in centers]) for x in X])
probs = dists / dists.sum()
cumprobs = probs.cumsum()
r = np.random.rand()
for j, p in enumerate(cumprobs):
if r < p:
i = j
break
centers.append(X[i])
return np.array(centers)
# 生成一些随机数据
np.random.seed(0)
X = np.vstack((np.random.randn(100, 2) * 0.75 + np.array([1, 0]),
np.random.randn(100, 2) * 0.25 + np.array([-0.5, 0.5]),
np.random.randn(100, 2) * 0.5 + np.array([-0.5, -0.5])))
# 使用k-means++聚类算法进行聚类
k = 3
init_centers = kmeans_plus_plus(X, k)
kmeans = KMeans(init=init_centers, n_clusters=k)
kmeans.fit(X)
# 输出聚类结果
print(kmeans.labels_)
```
该代码使用numpy生成一些随机数据,并使用k-means++算法进行聚类,输出聚类结果。其中,`kmeans_plus_plus`函数实现了k-means++算法,`KMeans`类是scikit-learn库中的k-means算法实现。