9

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

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

4

1 回答 1

10

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

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

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

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

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

于 2013-02-25T08:49:27.810 回答