kmeans聚类算法python可视化
时间: 2023-04-21 12:02:00 浏览: 121
kmeans聚类算法是一种常用的无监督学习算法,可以将数据集分成k个不同的类别。在Python中,可以使用scikit-learn库中的KMeans类来实现kmeans聚类算法。同时,也可以使用matplotlib库来进行可视化展示,例如绘制散点图来展示聚类结果。
相关问题
kmeans聚类算法python代码可视化
可以使用matplotlib库来可视化kmeans聚类算法的python代码。具体实现方法可以参考以下代码:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
# 生成数据
X = np.random.rand(100, 2)
# 聚类
kmeans = KMeans(n_clusters=3, random_state=).fit(X)
# 可视化
plt.scatter(X[:, ], X[:, 1], c=kmeans.labels_)
plt.scatter(kmeans.cluster_centers_[:, ], kmeans.cluster_centers_[:, 1], marker='x', s=200, linewidths=3, color='r')
plt.show()
```
这段代码可以生成100个随机二维数据,然后使用kmeans算法将其聚成3类,并用散点图可视化结果。其中,`kmeans.labels_`表示每个数据点所属的类别,`kmeans.cluster_centers_`表示每个类别的中心点。
kmeans聚类算法python实例,并可视化
好的,这是一个简单的kmeans聚类算法的Python实例,并可视化结果。
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
# 生成数据集
X, y = make_blobs(n_samples=200, centers=4, random_state=42)
# 定义 kmeans 函数
def kmeans(X, k, max_iters=10):
# 随机选择 k 个中心点
centers = X[np.random.choice(range(len(X)), k, replace=False)]
for _ in range(max_iters):
# 计算每个点到中心点的距离
distances = np.sqrt(((X - centers[:, np.newaxis])**2).sum(axis=2))
# 找到距离每个点最近的中心点
labels = np.argmin(distances, axis=0)
# 更新中心点的位置
centers = np.array([X[labels == i].mean(axis=0) for i in range(k)])
return labels, centers
# 聚类
labels, centers = kmeans(X, k=4)
# 可视化结果
plt.scatter(X[:, 0], X[:, 1], c=labels)
plt.scatter(centers[:, 0], centers[:, 1], marker='*', s=200, c='r')
plt.show()
```
运行结果如下所示:
![kmeans聚类算法可视化结果](https://img-blog.csdnimg.cn/20211011094827830.png)
阅读全文