Python DBSCAN-如何根据向量的均值绘制聚类?

时间:2018-10-10 04:23:19

标签: python scikit-learn cluster-analysis text-analysis dbscan

嗨,我得到了向量的均值,并使用DBSCAN对其进行聚类。但是,由于我的数据没有[x,y,z ...]格式,因此我不确定如何绘制结果。

样本数据集:

mean_vec = [[2.2771908044815063],
 [3.0691280364990234],
 [2.7700443267822266],
 [2.6123080253601074],
 [2.6043469309806824],
 [2.6386525630950928],
 [2.7034034729003906],
 [2.3540258407592773]]

我已使用以下代码(来自scikit-learn)来实现我的集群:

X = StandardScaler().fit_transform(mean_vec)
db = DBSCAN(eps = 0.15, min_samples = 5).fit(X)
core_samples_mask = np.zeros_like(db.labels_, dtype=bool)
core_samples_mask[db.core_sample_indices_] = True
labels = db.labels_

# Number of clusters in labels, ignoring noise if present.
n_clusters_ = len(set(labels)) - (1 if -1 in labels else 0)

print('Estimated number of clusters: %d' % n_clusters_)

是否可以绘制出我的集群? scikit-learn的剧情对我不起作用。可以找到like

的scikit-learn链接

1 个答案:

答案 0 :(得分:0)

关于一维数据。使用内核密度估计,而不是DBSCAN。它得到了理论的更好支持和更好的理解。对于多变量情况,人们可以将DBSCAN视为对KDE的快速逼近

无论如何,绘制一维数据并不难。例如,您可以绘制直方图

此外,聚类必须与间隔相对应,因此您还可以绘制每个聚类的(min,max)线。

您甚至可以滥用2D散点图。只需将标签用作y值即可。