随机生成2维坐标点,对点进行聚类,进行k=2,3,4聚类(要求matplot画图)
时间: 2024-01-21 19:16:45 浏览: 29
好的,我可以使用Python中的Scikit-Learn库来实现这个任务。首先,我们需要生成一些随机的二维坐标点。下面是生成100个随机点的代码。
```python
import numpy as np
np.random.seed(0)
X = np.random.randn(100, 2) # 生成100个2维坐标点
```
接下来,我们可以使用KMeans算法对这些点进行聚类。KMeans算法需要指定聚类的数量k,我们可以尝试k=2,3,4三种情况。
```python
from sklearn.cluster import KMeans
k_values = [2, 3, 4]
for k in k_values:
kmeans = KMeans(n_clusters=k)
kmeans.fit(X)
y_pred = kmeans.predict(X)
plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.title("KMeans with k={}".format(k))
plt.show()
```
上面的代码将生成三张图,分别对应k=2,3,4时的聚类结果。每个点的颜色表示该点所属的簇。下面是完整的代码:
```python
import numpy as np
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
# 生成随机点
np.random.seed(0)
X = np.random.randn(100, 2)
# 尝试k=2,3,4三种情况
k_values = [2, 3, 4]
for k in k_values:
# 使用KMeans算法进行聚类
kmeans = KMeans(n_clusters=k)
kmeans.fit(X)
y_pred = kmeans.predict(X)
# 绘制聚类结果
plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.title("KMeans with k={}".format(k))
plt.show()
```
运行上面的代码,就可以得到三张图,分别对应k=2,3,4时的聚类结果。