我使用DBSCAN使用Scikit-Learn(Python 2.7)聚集一些数据:
from sklearn.cluster import DBSCAN
dbscan = DBSCAN(random_state=0)
dbscan.fit(X)
Run Code Online (Sandbox Code Playgroud)
但是,我发现没有内置函数(除了"fit_predict"之外)可以将新数据点Y分配给原始数据中标识的簇X.K-means方法有一个"预测"功能,但我希望能够对DBSCAN做同样的事情.像这样的东西:
dbscan.predict(X, Y)
Run Code Online (Sandbox Code Playgroud)
因此密度可以从X推断,但返回值(集群分配/标签)仅适用于Y.从我所知道的,这个功能在R中可用,所以我假设它在某种程度上也可用于Python.我似乎无法找到任何相关的文档.
此外,我已经尝试搜索为什么DBSCAN不能用于标记新数据的原因,但我没有找到任何理由.
我正在尝试在R中实现分层聚类:hclust(); 这需要由dist()创建的距离矩阵,但是我的数据集大约有一百万行,甚至EC2实例都用光了RAM。有解决方法吗?