2016-03-08 153 views
0

我是一个新手,想学习DIP的不同技术......所以,我想找出一个簇间半径,我知道DBSCAN带两个参数epsilon (簇内半径)和min_sample_points,并返回一些参数,例如完整性和同质性等,但它们都不会对我有帮助,我也知道DBSCAN是部分聚类算法,任何簇间中心间距都不是位于集群内,但就像我在图像中描述的那样,我只是想找出每个集群的半径,我不知道如何。有没有在Python中的内置命令?如何用DBSCAN找到一个簇的半径

Here is the image which I wanna accomplish

+0

您必须告诉我们执行了哪个聚类,模糊的c方法或什么? –

+0

我为了集群目的执行了dbscan,我使用的语言是python。 – annonymous

回答

0

DBSCAN不计算 “半径” 值。

epsilon参数可以比您的群集小得多。

半径在您呈现的几何模型中很容易。但是在更复杂的数据或任意距离函数中,您可以轻松地尝试每一个点作为潜在中心。即便如此,这一点对于你的集群来说可能并不典型。

我想你的“半径”直觉最接近的匹配就是找到最小化与所有其他集群成员的最大距离的点。我认为你将不得不为尝试每一点这一点。这个最小最大距离就是你的半径。

但是,这并不能保证具有噪声的非凸集群具有良好的代表性。所以“半径”可能会误导人。

+0

那么,你是否建议我使用k-means方法呢?因为,这就是k-means方法的工作原理,它计算点到点距离... – annonymous

+0

我不是k-means的忠实粉丝。 PAM和MaxiMin-Clustering可能更适合你从*输出格式*寻找的东西;但是这并没有说你的数据是有意义的。人们通常希望有些不起作用的东西。 –

+0

我正在尝试使用不同的方法来查找群集的特征,并在这些特征的基础上想要预测哪个群集更大更密集,为此目的,我认为找到群集半径可能是其中的一个特征。 – annonymous