python的K-means算法代码
时间: 2023-06-18 22:08:23 浏览: 38
下面是一个简单的Python K-means算法实现代码:
```python
import numpy as np
import random
def kmeans(X, K, max_iters=100):
# 随机初始化 K 个质心
centroids = X[np.random.choice(len(X), K, replace=False)]
for i in range(max_iters):
# 计算每个样本点与质心的距离,并将其归类到距离最近的质心所在的簇中
distances = np.linalg.norm(X[:, np.newaxis, :] - centroids, axis=2)
labels = np.argmin(distances, axis=1)
# 更新质心位置
for k in range(K):
centroids[k] = np.mean(X[labels == k], axis=0)
return labels, centroids
```
其中,`X`是一个 $m \times n$ 的矩阵,每行代表一个样本,每列代表一个特征。`K`是要聚类的簇的数量,`max_iters`是最大迭代次数。函数返回每个样本所属的簇的标签以及质心的坐标。
相关问题
python k-means++算法代码
好的,以下是 Python 的 K-Means 算法代码示例:
```python
from sklearn.cluster import KMeans
import numpy as np
# 随机生成一些数据
X = np.random.rand(100, 2)
# 初始化 KMeans 模型并指定聚类数为2
kmeans = KMeans(n_clusters=2)
# 拟合数据(即进行聚类)
kmeans.fit(X)
# 获取聚类结果,即每个数据点属于哪个聚类
labels = kmeans.labels_
print(labels)
```
希望能够帮助您!
python k-means聚类代码
下面是一个使用sklearn库实现KMeans聚类算法的Python代码示例:
```python
from sklearn.cluster import KMeans
import numpy as np
import matplotlib.pyplot as plt
# 生成随机数据集
np.random.seed(0)
X = np.random.randn(100, 2)
# 使用KMeans聚类算法
kmeans = KMeans(n_clusters=3)
kmeans.fit(X)
# 绘制聚类结果
plt.scatter(X[:, 0], X[:, 1], c=kmeans.labels_, cmap='viridis')
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], marker='x', s=200, linewidths=3, color='r')
plt.show()
```
该代码首先生成了一个二维的随机数据集X,然后使用KMeans聚类算法将数据集分为3类。最后绘制了聚类结果,其中每个点的颜色表示其所属的类别,红色的x表示每个类别的中心点。
相关推荐
![gz](https://img-home.csdnimg.cn/images/20210720083447.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)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)