【问题标题】:Estimating/Choosing optimal Hyperparameters for DBSCANDBSCAN 中的参数估计
【发布时间】:2013-02-09 14:49:52
【问题描述】:

我需要根据它们在不同介词中的分布(如代理、工具、时间、地点等)来找到自然出现的名词类别。我尝试使用 k-means 聚类,但帮助较少,效果不佳,我正在寻找的类有很多重叠(可能是因为类的非球形形状和 k-means 中的随机初始化)。

我现在正在使用 DBSCAN,但我无法理解此聚类算法中的 epsilon 值和 mini-points 值。我可以使用随机值还是需要计算它们。任何人都可以帮忙。特别是对于 epsilon,至少在需要时如何计算它。

【问题讨论】:

    标签: data-mining cluster-analysis dbscan


    【解决方案1】:

    使用您的领域知识来选择参数。 Epsilon 是一个半径。您可以将其视为最小集群大小。

    显然随机值不能很好地工作。作为启发式方法,您可以尝试查看 k 距离图;但它也不是自动的。

    无论哪种方式,首先要做的是为您的数据选择一个好的距离函数。并进行适当的归一化。

    至于“minPts”,它又取决于您的数据和需求。一个用户可能想要一个与另一个用户非常不同的值。当然 minPts 和 Epsilon 是耦合的。如果您将 epsilon 加倍,您将大致需要将 minPts 增加 2^d(对于欧几里得距离,因为这就是超球体的体积增加的方式!)

    如果您想要大量小而精细的集群,请选择低 minpts。如果您想要更大更少的集群(以及更多的噪音),请使用更大的 minpts。如果您根本不想要任何集群,请选择比您的数据集大小更大的 minpts...

    【讨论】:

    • 这里不能告诉你参数。你需要实验。但说真的,首先要弄清楚如何衡量相似度。 DBSCAN 聚类结果总是与您的相似度函数一样好。
    • 我假设我的数据中有一个层次结构,有 3 个主要类。我有大约 32K 点,有 15 个维度。我的数据点:名词,count(prep1)/total count of a noun,count(prep2)/total ....... count(prep15)/total。我正在使用欧几里得距离函数,我还没有尝试过其他的。标准化是什么意思,我应该如何标准化数据,我已经通过给定名词的总频率对分布进行了标准化。还有一个关于 k-means 的问题,我可以事先选择质心吗,因为我可以根据我的领域知识猜测每个类的原型。
    猜你喜欢
    • 1970-01-01
    • 2014-05-09
    • 2023-03-15
    • 2018-06-09
    • 1970-01-01
    • 2018-09-11
    • 1970-01-01
    • 1970-01-01
    • 2015-11-10
    相关资源
    最近更新 更多