K-Means++代码
时间: 2023-11-01 08:55:31 浏览: 102
k-menas++_pythonk-means++_yolov4_源码
5星 · 资源好评率100%
以下是Python中实现K-Means++算法的示例代码:
```python
import random
import numpy as np
def kmeans_pp(data, k):
"""K-Means++算法"""
centers = [] # 中心点
n = data.shape[0] # 数据点数量
# 随机选一个中心点
index = random.randint(0, n - 1)
centers.append(data[index])
# 选出k-1个中心点
for i in range(k - 1):
dist = [] # 存储每个数据点到最近中心点的距离
for j in range(n):
d = np.inf # 到最近中心点的距离,默认为无穷大
for center in centers:
# 计算数据点到中心点的距离
d = min(d, np.linalg.norm(data[j] - center))
dist.append(d)
# 根据距离选出下一个中心点
index = np.argmax(dist)
centers.append(data[index])
return centers
```
其中,`data`是一个`n x d`的`numpy`数组,表示有`n`个数据点,每个数据点有`d`个维度;`k`表示聚类的个数。函数返回一个包含`k`个中心点的列表。
阅读全文