基于模拟数据sklearn.datasets.make_classification 分别使用KMeans聚类、DBSCAN算法对其进行聚类
时间: 2024-03-22 18:39:17 浏览: 113
实验二 聚类算法_Kmeans_DBSCAN_matlab_聚类算法
5星 · 资源好评率100%
好的,下面是使用KMeans聚类、DBSCAN算法对模拟数据进行聚类的示例代码:
```python
# 导入必要的库
from sklearn.datasets import make_classification
from sklearn.cluster import KMeans, DBSCAN
import matplotlib.pyplot as plt
# 生成模拟数据
X, y = make_classification(n_samples=1000, n_features=2, n_informative=2, n_redundant=0, n_clusters_per_class=1, class_sep=0.5, random_state=42)
# 使用KMeans聚类
kmeans = KMeans(n_clusters=3, random_state=42)
kmeans_labels = kmeans.fit_predict(X)
# 使用DBSCAN算法聚类
dbscan = DBSCAN(eps=0.3, min_samples=5)
dbscan_labels = dbscan.fit_predict(X)
# 绘制聚类结果图像
plt.figure(figsize=(12, 5))
# 绘制KMeans聚类结果
plt.subplot(1, 2, 1)
plt.scatter(X[:, 0], X[:, 1], c=kmeans_labels, cmap='rainbow')
plt.title('KMeans Clustering')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.colorbar()
# 绘制DBSCAN聚类结果
plt.subplot(1, 2, 2)
plt.scatter(X[:, 0], X[:, 1], c=dbscan_labels, cmap='rainbow')
plt.title('DBSCAN Clustering')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.colorbar()
plt.show()
```
在上述代码中,我们使用`make_classification`函数生成了一个包含两个特征、三个簇的模拟数据集。接着,我们分别使用KMeans聚类、DBSCAN算法对数据集进行聚类,并将聚类结果绘制成图像。
在图像中,我们可以看到KMeans聚类和DBSCAN算法聚类的结果。其中,KMeans聚类将数据集分成了三个簇,而DBSCAN算法则将数据集中的一些异常点(如图中的蓝色点)作为噪声进行了处理。不同的簇用不同的颜色表示,可以清晰地看出聚类的效果。
阅读全文