我有一个庞大的“动态”数据集,并试图在其上找到有趣的聚类。

在运行了许多不同的无监督聚类算法之后,我发现了DBSCAN的配置可以给出一致的结果。

我想推断DBSCAN根据我的测试数据创建的模型,以将其应用于其他数据集,但无需重新运行该算法。我无法在整个数据集上运行该算法,因为它将耗尽内存,并且由于数据是动态的,因此该模型在其他时间对我来说可能没有意义。

使用sklearn,我发现其他聚类算法-如MiniBatchKMeans-具有predict方法,但DBSCAN没有。

我知道对于MiniBatchKMeans,质心唯一地定义模型。但是DBSCAN可能不存在这种情况。

所以我的问题是:推断DBSCAN模型的正确方法是什么?是否应该使用DBSCAN在测试数据集上给出的输出来训练监督学习算法?还是在某种程度上属于DBSCAN模型的东西可以用来分类新数据而无需重新运行算法?

最佳答案

根据您的模型训练分类器。

DBSCAN不容易适应新对象,因为您最终需要调整minPts。将点添加到DBSCAN可能会导致集群合并,您可能不想发生这种情况。

如果您认为DBSCAN发现的集群很有用,请训练分类器以将新实例放入相同的类中。现在,您要执行分类,而不是重新发现结构。

关于machine-learning - 使用sklearn DBSCAN模型对新条目进行分类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29625550/

10-12 22:05