2013-02-24 100 views
6

我需要根据它们在不同介词(如agentive,instrumental,time,place等)中的分布情况,找到自然发生的名词类。我尝试过使用k-means聚类,但帮助较少,但效果不佳,我在寻找的类有很多重叠(可能是因为类的非球形形状和k-means中的随机初始化)。DBSCAN中的参数估计

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

回答

6

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

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

首先要做的第一件事就是为你的数据选择一个很好的距离函数。并执行适当的标准化。

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

如果你想要很多小的和精细的细节簇,低分钟。如果你想要更大和更少的簇(以及更多的噪声),使用更大的minpts。如果你根本不想要任何群集,请选择大于数据集大小的分区...

+0

我不能在这里告诉你参数。你需要*实验*。但严重的是,首先尝试找出如何衡量相似度。 DBSCAN聚类结果将始终与您的相似度函数一样好。 – 2013-02-25 10:08:11

+0

我假设我的数据中有3个主要类的分层结构。我有15个维度大约32K点。 我的数据point:noun,count(prep1)/名词的总数,count(prep2)/ total ....... count(prep15)/ total。 我正在使用欧几里德距离函数,我还没有尝试过别人。 你是什么意思归一化,我如何规范化的数据,我已经规范化的分布由一个给定名词的总频率。 还有一个问题,它关于k-means,我可以在手之前选择质心,因为我可以根据我的领域知识猜测每个类的原型。 – Riyaz 2013-02-25 10:10:04