用python写KMeans聚类及可视化
时间: 2024-03-25 16:38:19 浏览: 67
好的,以下是用 Python 编写 KMeans 聚类及可视化的代码:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
# 生成随机数据
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_)
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], marker='*', s=300, c='r')
plt.show()
```
首先,我们生成了一个有 100 个样本和 2 个特征的随机数据集 X。然后,我们调用了 KMeans 算法,并设置聚类数目为 3。
接下来,我们使用 matplotlib 库将聚类结果可视化。我们使用了 scatter 函数来绘制数据点,并使用 kmeans.labels_ 属性来确定每个点所属的聚类。我们还使用 scatter 函数绘制了聚类中心,使用了 marker 参数来指定它们的形状为星号,使用了 s 参数来指定它们的大小为 300,使用了 c 参数来指定它们的颜色为红色。
最后,我们使用 show 函数来显示图形。
相关问题
用python写kmeans聚类及可视化
非常好的问题!下面是一个简单的示例代码,用Python实现K-Means聚类和可视化。
首先,我们需要导入必要的库:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
```
然后,我们生成一些随机数据并将其可视化:
```python
# 生成随机数据
X = np.random.rand(100, 2)
# 可视化数据
plt.scatter(X[:,0], X[:,1])
plt.show()
```
接着,我们使用K-Means算法对数据进行聚类:
```python
# 定义聚类个数
k = 3
# 初始化KMeans模型
kmeans = KMeans(n_clusters=k)
# 对数据进行聚类
kmeans.fit(X)
# 获取聚类结果
labels = kmeans.labels_
```
最后,我们将聚类结果可视化:
```python
# 可视化聚类结果
plt.scatter(X[:,0], X[:,1], c=labels)
plt.show()
```
这样就完成了K-Means聚类和可视化。完整代码如下:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
# 生成随机数据
X = np.random.rand(100, 2)
# 可视化数据
plt.scatter(X[:,0], X[:,1])
plt.show()
# 定义聚类个数
k = 3
# 初始化KMeans模型
kmeans = KMeans(n_clusters=k)
# 对数据进行聚类
kmeans.fit(X)
# 获取聚类结果
labels = kmeans.labels_
# 可视化聚类结果
plt.scatter(X[:,0], X[:,1], c=labels)
plt.show()
```
希望这个例子能够帮助你理解如何使用Python实现K-Means聚类和可视化。
用python进行kmeans聚类并可视化的代码实现
以下是Python中使用sklearn库进行KMeans聚类并可视化的代码实现:
```
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
import numpy as np
# 生成随机数据
np.random.seed(0)
X = np.random.randn(100, 2)
# 使用KMeans聚类
kmeans = KMeans(n_clusters=3)
kmeans.fit(X)
y_kmeans = kmeans.predict(X)
# 可视化聚类结果
plt.scatter(X[:, 0], X[:, 1], c=y_kmeans, s=50, cmap='viridis')
centers = kmeans.cluster_centers_
plt.scatter(centers[:, 0], centers[:, 1], c='black', s=200, alpha=0.5);
```
解释:
首先,我们生成了一个随机的二维数据集X,然后使用KMeans算法对数据进行聚类。这里我们将聚类数设置为3。
接下来,我们使用`predict()`方法将数据分配到聚类中,并使用Matplotlib库将结果可视化。其中,散点图的颜色表示数据点所属的聚类,黑色圆圈表示聚类的中心。
这段代码可以通过运行来看到可视化的结果。
阅读全文
相关推荐















