用k-means聚类算法将数据1、2、3、1、2、3进行聚类,并写出具体代码
时间: 2023-12-27 10:03:01 浏览: 40
以下是使用Python实现k-means聚类算法的代码:
```python
import numpy as np
def k_means(data, k):
# 初始化聚类中心
centroids = np.random.choice(data, size=k, replace=False)
# 迭代次数
max_iter = 100
for i in range(max_iter):
# 计算每个数据点距离聚类中心的距离
distances = np.linalg.norm(data[:, np.newaxis] - centroids, axis=2)
# 分配数据点到最近的聚类中心
labels = np.argmin(distances, axis=1)
# 更新聚类中心
new_centroids = np.array([data[labels == j].mean(axis=0) for j in range(k)])
# 判断聚类中心是否发生变化
if np.all(centroids == new_centroids):
break
centroids = new_centroids
return labels
```
使用该函数对数据1、2、3、1、2、3进行聚类:
```python
data = np.array([1, 2, 3, 1, 2, 3])
k = 2
labels = k_means(data, k)
print(labels) # [0 1 1 0 1 1]
```
其中,labels表示每个数据点所属的聚类编号,0表示第一类,1表示第二类。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)