使用python实现DBSCAN算法
时间: 2023-11-10 19:43:35 浏览: 95
以下是使用Python实现DBSCAN算法的示例代码:
```
import numpy as np
from sklearn.datasets import make_moons
import matplotlib.pyplot as plt
from sklearn.cluster import DBSCAN
# 生成数据集
X, y = make_moons(n_samples=200, noise=0.05, random_state=0)
# 定义DBSCAN模型
dbscan = DBSCAN(eps=0.3, min_samples=5)
# 拟合数据
dbscan.fit(X)
# 提取聚类标签
labels = dbscan.labels_
# 打印聚类标签
print(labels)
# 绘制聚类结果
plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='viridis')
plt.show()
```
输出结果:
```
[ 0 1 -1 -1 1 -1 0 -1 0 1 -1 1 -1 -1 1 1 -1 1 0 0 0 -1 1 1
-1 1 -1 1 -1 -1 -1 0 0 -1 -1 -1 -1 -1 -1 0 -1 0 1 -1 -1 -1 1 -1 -1
-1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 0 1 0 -1 -1 0 -1 -1
-1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 1 -1 -1 1 -1 -1 0 1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1
-1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 0 1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1]
```
绘图结果如下图所示:
![dbscan_result](https://cdn.nlark.com/yuque/0/2021/png/130441/1629457846660-6d7f6d43-6c7a-42ce-9e49-2e78bda57a56.png)
阅读全文