使用 sklearn DBSCAN 模型对新条目进行分类
Use sklearn DBSCAN model to classify new entries
我有一个巨大的 "dynamic" 数据集,我正试图在其中找到有趣的集群。
在运行使用了很多不同的无监督聚类算法之后,我发现了一个 DBSCAN 的配置,它给出了一致的结果。
我想根据我的测试数据推断 DBSCAN
创建的模型以将其应用到其他数据集,但不需要重新 运行 算法。我无法 运行 整个数据集的算法,因为它会 运行 内存不足,并且由于数据是动态的,模型在不同的时间对我来说可能没有意义。
使用 sklearn,我发现其他聚类算法 - 如 MiniBatchKMeans - 有一个 predict
方法,但 DBSCAN
没有.
我了解 MiniBatchKMeans
质心唯一定义了模型。但是 DBSCAN
.
可能不存在这样的事情
所以我的问题是:推断DBSCAN
模型的正确方法是什么?我应该使用 DBSCAN
在我的测试数据集上给出的输出来训练监督学习算法吗?或者是否有本质上属于 DBSCAN
模型的东西可以用于对新数据进行分类而无需重新 运行 算法?
根据您的模型训练分类器。
DBSCAN不容易适应新对象,因为你最终需要调整minPts。向 DBSCAN 添加点可能会导致集群 合并 ,您可能不希望发生这种情况。
如果您认为 DBSCAN 发现的聚类有用,请训练分类器将新实例放入相同的 类。您现在想要执行分类,而不是重新发现结构。
DBSCAN 和其他 'unsupervised' 聚类方法可用于自动传播分类器(一项 'supervised' 机器学习任务)在所谓的 'semi-supervised' 机器学习中使用的标签。我将分解执行此操作的一般步骤,并引用一系列 semi-supervised 激发这种方法的论文。
- 通过某种方式,标记一小部分数据。
- 使用 DBSCAN 或其他聚类方法(例如 k-nearest 邻居)对标记和未标记数据进行聚类。
- 对于每个集群,确定集群成员最常见的标签(如果有的话)。 Re-label 集群中的所有成员到该标签。这有效地增加了标记训练数据的数量。
- 使用第 3 步中的数据集训练监督分类器。
以下论文提出了对该通用过程的一些扩展,以提高分类性能。请注意,与其他十几种聚类方法相比,以下所有论文都发现 k-means 是一种一致、高效且有效的 semi-supervised 学习聚类方法。然后他们使用 k-nearest 个具有较大 K 值的邻居进行分类。一篇专门介绍基于 DBSCAN 的聚类的论文是:
- Erman, J., & Arlitt, M. (2006)。使用聚类算法的流量分类。在 2006 年 SIGCOMM 网络数据挖掘研讨会论文集中(第 281-286 页)。 https://doi.org/http://doi.acm.org/10.1145/1162678.1162679
注意:这些论文按时间顺序列出,并且相互依存。如果您只想查看最多 successful/advanced 次迭代,那么您应该阅读 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)。一种新颖的 semi-supervised 网络流量聚类方法。在第 5 届网络与系统安全国际会议 (NSS) 中(第 169-175 页)。意大利米兰:IEEE。 https://doi.org/10.1109/ICNSS.2011.6059997
Zhang, J., Chen, C., Xiang, Y., & Zhou, W. (2012)。 Semi-supervised 和网络流量的复合分类。在会议记录 - 第 32 届 IEEE 分布式计算系统研讨会国际会议,ICDCSW 2012(第 617-621 页)。 https://doi.org/10.1109/ICDCSW.2012.12
Glennan, T.、Leckie, C. 和 Erfani, S.M. (2016)。使用 Semi-supervised 机器学习改进已知和未知网络流量的分类。在 J. K. Liu 和 R. Steinfeld(编辑),信息安全和隐私:第 21 届澳大利亚会议(第 2 卷,第 493-501 页)中。墨尔本:施普林格国际出版社。 https://doi.org/10.1007/978-3-319-40367-0_33
我有一个巨大的 "dynamic" 数据集,我正试图在其中找到有趣的集群。
在运行使用了很多不同的无监督聚类算法之后,我发现了一个 DBSCAN 的配置,它给出了一致的结果。
我想根据我的测试数据推断 DBSCAN
创建的模型以将其应用到其他数据集,但不需要重新 运行 算法。我无法 运行 整个数据集的算法,因为它会 运行 内存不足,并且由于数据是动态的,模型在不同的时间对我来说可能没有意义。
使用 sklearn,我发现其他聚类算法 - 如 MiniBatchKMeans - 有一个 predict
方法,但 DBSCAN
没有.
我了解 MiniBatchKMeans
质心唯一定义了模型。但是 DBSCAN
.
所以我的问题是:推断DBSCAN
模型的正确方法是什么?我应该使用 DBSCAN
在我的测试数据集上给出的输出来训练监督学习算法吗?或者是否有本质上属于 DBSCAN
模型的东西可以用于对新数据进行分类而无需重新 运行 算法?
根据您的模型训练分类器。
DBSCAN不容易适应新对象,因为你最终需要调整minPts。向 DBSCAN 添加点可能会导致集群 合并 ,您可能不希望发生这种情况。
如果您认为 DBSCAN 发现的聚类有用,请训练分类器将新实例放入相同的 类。您现在想要执行分类,而不是重新发现结构。
DBSCAN 和其他 'unsupervised' 聚类方法可用于自动传播分类器(一项 'supervised' 机器学习任务)在所谓的 'semi-supervised' 机器学习中使用的标签。我将分解执行此操作的一般步骤,并引用一系列 semi-supervised 激发这种方法的论文。
- 通过某种方式,标记一小部分数据。
- 使用 DBSCAN 或其他聚类方法(例如 k-nearest 邻居)对标记和未标记数据进行聚类。
- 对于每个集群,确定集群成员最常见的标签(如果有的话)。 Re-label 集群中的所有成员到该标签。这有效地增加了标记训练数据的数量。
- 使用第 3 步中的数据集训练监督分类器。
以下论文提出了对该通用过程的一些扩展,以提高分类性能。请注意,与其他十几种聚类方法相比,以下所有论文都发现 k-means 是一种一致、高效且有效的 semi-supervised 学习聚类方法。然后他们使用 k-nearest 个具有较大 K 值的邻居进行分类。一篇专门介绍基于 DBSCAN 的聚类的论文是:
- Erman, J., & Arlitt, M. (2006)。使用聚类算法的流量分类。在 2006 年 SIGCOMM 网络数据挖掘研讨会论文集中(第 281-286 页)。 https://doi.org/http://doi.acm.org/10.1145/1162678.1162679
注意:这些论文按时间顺序列出,并且相互依存。如果您只想查看最多 successful/advanced 次迭代,那么您应该阅读 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)。一种新颖的 semi-supervised 网络流量聚类方法。在第 5 届网络与系统安全国际会议 (NSS) 中(第 169-175 页)。意大利米兰:IEEE。 https://doi.org/10.1109/ICNSS.2011.6059997
Zhang, J., Chen, C., Xiang, Y., & Zhou, W. (2012)。 Semi-supervised 和网络流量的复合分类。在会议记录 - 第 32 届 IEEE 分布式计算系统研讨会国际会议,ICDCSW 2012(第 617-621 页)。 https://doi.org/10.1109/ICDCSW.2012.12
Glennan, T.、Leckie, C. 和 Erfani, S.M. (2016)。使用 Semi-supervised 机器学习改进已知和未知网络流量的分类。在 J. K. Liu 和 R. Steinfeld(编辑),信息安全和隐私:第 21 届澳大利亚会议(第 2 卷,第 493-501 页)中。墨尔本:施普林格国际出版社。 https://doi.org/10.1007/978-3-319-40367-0_33