3

我有一个巨大的“动态”数据集,我试图在上面找到有趣的集群。

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

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

使用sklearn,我发现其他聚类算法(例如MiniBatchKMeans)有一种predict方法,但DBSCAN没有。

我知道对于MiniBatchKMeans质心唯一地定义模型。但这样的事情可能不存在DBSCAN

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

4

2 回答 2

4

DBSCAN 和其他“无监督”聚类方法可用于在所谓的“半监督”机器学习中自动传播分类器(“监督”机器学习任务)使用的标签。我将分解执行此操作的一般步骤,并引用一系列激发这种方法的半监督论文。

  1. 通过某种方式,标记一小部分数据。
  2. 使用 DBSCAN 或其他聚类方法(例如 k-最近邻)对标记和未标记的数据进行聚类。
  3. 对于每个集群,确定集群成员的最常见标签(如果有)。将集群中的所有成员重新标记为该标签。这有效地增加了标记训练数据的数量。
  4. 使用步骤 3 中的数据集训练监督分类器。

以下论文提出了对该一般过程的一些扩展,以提高分类性能。需要注意的是,以下所有论文都发现,与大约十几种其他聚类方法相比,k-means 是一种用于半监督学习的一致、高效和有效的聚类方法。然后他们使用具有较大 K 值的 k 最近邻进行分类。一篇专门介绍基于 DBSCAN 的聚类的论文是:
- Erman, J., & Arlitt, M. (2006)。使用聚类算法进行流量分类。在 2006 年 SIGCOMM 网络数据挖掘研讨会论文集上(第 281-286 页)。https://doi.org/http://doi.acm.org/10.1145/1162678.1162679

注:这些论文按时间顺序列出,并相互依存。如果您只想看到最成功/最先进的迭代,您应该阅读 2016 年 Glennan 的论文。

  • Erman, J. 和 Arlitt, M. (2006)。使用聚类算法进行流量分类。在 2006 年 SIGCOMM 网络数据挖掘研讨会论文集上(第 281-286 页)。https://doi.org/http://doi.acm.org/10.1145/1162678.1162679

  • Wang, Y., Xiang, Y., Zhang, J., & Yu, S. (2011)。一种用于网络流量聚类的新型半监督方法。在第五届网络和系统安全 (NSS) 国际会议上(第 169-175 页)。意大利米兰:IEEE。https://doi.org/10.1109/ICNSS.2011.6059997

  • Zhang, J.、Chen, C.、Xiang, Y. 和 Zhou, W. (2012)。网络流量的半监督和复合分类。在论文集中 - 第 32 届 IEEE 分布式计算系统研讨会国际会议,ICDCSW 2012(第 617-621 页)。https://doi.org/10.1109/ICCDCSW.2012.12

  • Glennan, T.、Leckie, C. 和 Erfani, SM (2016)。使用半监督机器学习改进了已知和未知网络流量的分类。在 JK Liu 和 R. Steinfeld(编辑)中,信息安全和隐私:第 21 届澳大利亚会议(第 2 卷,第 493-501 页)。墨尔本:施普林格国际出版社。https://doi.org/10.1007/978-3-319-40367-0_33

于 2017-12-12T16:54:31.827 回答
3

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

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

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

于 2015-04-14T12:08:29.667 回答