DBSCAN聚类算法实现 python 并且返回每个簇所包含的点
时间: 2023-07-09 21:50:16 浏览: 116
好的,下面是DBSCAN聚类算法的Python实现示例代码,并返回每个簇所包含的点:
```python
import numpy as np
from sklearn.cluster import DBSCAN
from sklearn.datasets import make_blobs
from sklearn.preprocessing import StandardScaler
# 生成随机数据
centers = [[1, 1], [-1, -1], [1, -1]]
X, labels_true = make_blobs(n_samples=750, centers=centers, cluster_std=0.4, random_state=0)
X = StandardScaler().fit_transform(X)
# DBSCAN聚类
db = DBSCAN(eps=0.3, min_samples=10).fit(X)
core_samples_mask = np.zeros_like(db.labels_, dtype=bool)
core_samples_mask[db.core_sample_indices_] = True
labels = db.labels_
# 获取每个簇所包含的点
clusters = [X[labels == i] for i in range(len(set(labels))) if i != -1]
for i, cluster in enumerate(clusters):
print("Cluster %d:" % i)
print(cluster)
```
这段代码与前面的示例代码基本相同,只是在DBSCAN聚类算法之后,通过遍历每个簇的标签,获取每个簇所包含的点,并将其存储在列表中。最后,我们遍历每个簇,并输出其所包含的点。
阅读全文