我在一个2D numpy数组中有一组大约34000个数据标签,它们各自的特征(状态概率)被可视化为散点图,看起来是
。在
很容易看到b点的大部分数据。我想用聚类算法来提取底部区域。我不追求完美的结果。这只是关于提取大多数b点。在
到目前为止,我已经尝试了DBSCAN算法:import sklearn.cluster as sklc
data1, data2 = zip(*dist_list[1])
data = np.array([data1, data2]).T
core_samples, labels_db = sklc.dbscan(
data, # array has to be (n_samples, n_features)
eps=2.0,
min_samples=5,
metric='euclidean',
algorithm='auto'
)
core_samples_mask = np.zeros_like(labels_db, dtype=bool)
core_samples_mask[core_samples] = True
unique_labels = set(labels_db)
n_clusters_ = len(unique_labels) - (1 if -1 in labels_db else 0)
colors = plt.cm.Spectral(np.linspace(0, 1, len(unique_label