[英]DBSCAN algorithm and clustering algorithm for data mining
如何对分类数据(蘑菇数据集)实施DBSCAN算法?
什么是单程聚类算法?
您可以为单程聚类算法提供伪代码吗?
您可以使用任意距离功能运行DBSCAN,而无需对其进行任何更改。 标引部分将更加困难,因此您可能只会获得O(n^2)
复杂度。
但是,如果您仔细观察DBSCAN,它所做的只是计算距离,将它们与阈值进行比较,然后对对象进行计数。 这是它的关键优势,它可以轻松地应用于各种数据,您所需要做的就是定义距离函数和阈值。
我怀疑是否存在DBSCAN的单程版本,因为它依赖于成对的距离。 您可以修剪其中的一些计算(这是索引起作用的地方),但是本质上您需要将每个对象与其他每个对象进行比较,因此它在O(n log n)
而不是一次性通过。
单次通过:我相信原始的k均值是单次通过算法。 前k个对象是您的初始均值。 对于每个新对象,选择闭合均值并用新对象对其进行增量更新。 只要您不对数据集进行另一次迭代,这就是“一次通过”。 (结果比劳埃德式k均值还要差)。
阅读前k个项目并按住。 计算它们之间的距离。
对于其余每个项目:
找出最接近的k个项目,以及这两个项目之间的距离。
如果这比k个项目中的任何两个项目之间的最近距离长,则可以将新项目与这两个项目中的一个交换,并且至少不要减小k个项目中的任何两个项目之间的最近距离。 这样做是为了尽可能增加该距离。
假设可以将所有项的集合划分为l <= k个聚类,以使同一聚类中任意两个点之间的距离小于不同聚类中任意两个点之间的距离。 然后,在运行此算法后,您将在每个群集中至少保留一个点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.