如果DBSCAN算法正常工作,是否有可能生成一个成员数量少于minPoints的簇?

我刚开始使用DBSCAN算法。

简要总结;它有两个参数:

  1. epsilon – 用于指定两个点之间的可接受“距离”,在此距离之下,它们可以被认为足够接近以形成簇。
  2. minPoints – 用于指定在距离epsilon内必须有多少点才能构成一个簇。如果点数不够,它会被标记为噪音。

我使用的是别人的DBSCAN算法,并且我有源代码,但我只是部分理解。我希望可以直接使用它,但随后我发现了一些意想不到的行为。

我为minPoints指定了6的值,但在我的结果中,我得到一个只有2个点的簇。

通过调试,我认为我能看到发生了什么。看起来当点被检查时,它有16个距离低于epsilon的邻居,所以它应该被认定为一个簇。后来,算法发现这16个邻居中有14个已经被分配到不同的簇中,所以这个簇最终只有2个点。

minPoints应该被严格执行吗?

这是一个正常工作的DBSCAN算法应该有的表现,还是我需要在继续之前修复的一个错误?


回答:

对于通过Google找到这个问题的任何人,正确的答案是可以的。一个正确运行的DBSCAN实现是有可能创建一个成员数量少于minPoints的簇的。在另一个Stack Overflow问题中有更详细的解释:

DBSCAN算法是否可以创建一个成员数量少于minPts的簇?

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注