我想为每个数据点找到最接近的核心样本。这样我就可以仅用核心样本来表示我的数据(减少数据集)。
Scikit 似乎只提供了一个包含所有核心样本的数组。通过暴力方法将我的数据点与这个数组进行比较,计算量太大。因此,我想获取一个聚类的核心样本,获取数据点的聚类编号,然后找到最接近的核心样本。
回答:
我认为 DBSCAN 并不是为了数据降维而设计的。
特别是,DBSCAN 并不计算最近的核心点。所以它没有你所寻找的信息!
你得自己来做。
- 将所有核心点放入 kdtree/balltree
- 使用索引查找最近的邻居
Scikit-learn 已经提供了你所需的一切,应该只需几行代码。