sklearn.dbscan或sklearn.kmeans是否可以用于2维以上?

时间:2019-04-03 12:35:30

标签: machine-learning scikit-learn cluster-analysis data-mining

在我最近的项目中,有人尝试使用sklearn.dbscan对多维数据集进行聚类。但是我对此方法非常怀疑。

我们怎么知道eps和min_samples?我的意思是,您无法观察群集的大小,因为数据集位于多维空间中。

如我所见,该方法已经在Wiki页面中: https://en.wikipedia.org/wiki/Clustering_high-dimensional_data

这些方法正是我想要的吗?

我不确定我是否正确解决了这个问题。感谢您的建议!

2 个答案:

答案 0 :(得分:2)

这取决于我们所讨论的维度。我想说的是,如果小于10,您可以尝试直接使用DBSCAN。否则某种降维可能会给您带来更好的结果。

无论如何,具体方法取决于具体问题。

答案 1 :(得分:1)

没有理由仅将其用于2d数据。

在3d数据上,都很好

我想说尺寸通常不超过50就可以了。之后,它最终会变得棘手,具体取决于您的数据。例如,具有数百个维度的颜色直方图仍然可以正常工作。文本也可以,因为它的固有维数通常要少得多,但是我认为DBSCAN不是文本的理想选择。 球形k均值甚至是将“正式” 50000+尺寸的文本聚类的标准技术...

但是,

低维对于基于基于网格的方法很重要。但是,DBSCAN和k-means都不是基于网格的。我宁愿不使用DenClue。