kmeans聚类算法实现人数分组
时间: 2023-06-21 12:05:35 浏览: 153
K-means是一种聚类算法,它将样本分成K个簇,使得同一簇内的样本相似度最大,不同簇之间的相似度最小。
对于人数分组,我们可以将每个人视为一个样本,然后使用K-means算法将它们分成K个簇,每个簇的大小就是一个分组的人数。
下面是K-means聚类算法的实现步骤:
1. 随机选择K个中心点,可以根据实际情况选择。
2. 将每个样本分配到距离最近的中心点所在的簇中。
3. 对于每个簇,重新计算其中所有样本的中心点。
4. 重复步骤2和3,直到中心点不再变化或达到最大迭代次数。
5. 最终得到K个簇,每个簇的大小就是一个分组的人数。
下面是一个Python实现K-means聚类算法的例子:
```python
import numpy as np
from sklearn.cluster import KMeans
# 样本数据
X = np.array([[160, 60], [170, 70], [180, 80], [190, 90], [200, 100], [210, 110]])
# 聚类
kmeans = KMeans(n_clusters=3)
kmeans.fit(X)
# 聚类结果
labels = kmeans.labels_
print(labels)
# 分组人数
group_sizes = [sum(labels==i) for i in range(3)]
print(group_sizes)
```
在上面的例子中,我们使用了scikit-learn库中的KMeans类来实现K-means聚类算法。我们将样本数据X分成了3个簇,并计算了每个簇的大小,即分组人数。
注意,K-means聚类算法的结果可能会因为初始中心点的不同而有所不同,因此需要多次运行算法获得稳定的结果。
阅读全文