问题标签 [dbscan]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3227 浏览

python - DBSCAN 中的替代相似性度量?

scikit-learn我在python 模块中使用 DBSCAN 算法测试我的图像集。相似度计算有一些替代方案:

我可以尝试加权度量或类似的方法,例如?

0 投票
2 回答
3934 浏览

r - 如何确定 R 中 DBSCAN 的距离 / eps?

我有一个点数据集;

(更大的数据集,但这是一般结构。)

我想根据距离和时间对点进行聚类。DBSCAN 似乎是一个不错的选择,因为我不知道有多少集群。

我目前正在使用分钟/5500(我相信,它大约是 20 米,按比例缩放。)

由于我有原始数据,因此我无法理解如何确定缩放/距离。我可以猜测缩放或未缩放时的 eps 值,但我不清楚缩放是做什么的,或者正在使用什么距离度量(也许是欧几里德距离?)在某处是否有相关文档?

(这不是要找到一种自动选择方法,(例如为 DBSCAN (R) 选择 eps 和 minpts?),而是关于不同值的含义。说“您首先需要一个距离函数”并不能解释距离函数是什么正在使用的是,或者如何创建一个......)

0 投票
1 回答
9849 浏览

data-mining - DBSCAN 中的参数估计

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

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

0 投票
3 回答
183 浏览

machine-learning - 房屋区域的 ML / 密度聚类。每个维度上的两种成分或多种混合物

我试图自学 ML 并遇到了这个问题。非常感谢该领域更有经验的人的帮助!

假设我有三个向量,其中包含浴室、客厅和厨房等房屋隔间的区域。数据包括大约 70,000 所房屋。每个单独向量的直方图显然具有双峰分布的证据,例如双分量高斯混合。我现在想要某种 ML 算法,最好是无监督的,它可以根据这些属性对房屋进行分类。说:大浴室,小厨房,大客厅。

更具体地说,我想要一种算法来为每个双峰分布向量选择最佳可能的分离阈值,比如大/小厨房(这可以是二元的,因为我们假设有双峰的证据),对其他人做同样的事情并对数据进行聚类. 理想情况下,这将带有一些信心措施,以便我可以检查处于中间状态的房屋……例如,一栋带有明显大厨房的房屋,但其浴室将接近大/小浴室的阈值区域/边界例如,放在“大厨房和大浴室”列表的底部。由于这个原因,首先决定一个阈值(用不太可能的 FDR 拟合高斯),折叠数据然后聚类是不可取的。

关于如何进行的任何建议?我知道 R 和 python。

非常感谢!!

0 投票
1 回答
3238 浏览

java - DBSCAN 聚类算法无法正常工作。我究竟做错了什么?

我正在尝试编写 DBSCAN 算法来聚类一组点,但我得到的结果非常糟糕。这可能是因为数据,但不仅如此。我得到不应该发生的大小 < minPoints 的集群。

我究竟做错了什么?我已经多次查看代码,但我无法弄清楚问题是什么。

我参考了DBSCAN Wikipedia page上给出的算法。

0 投票
1 回答
2792 浏览

python - 使用 python 和 scikit-learn 的 DBSCAN:make_blobs 返回的整数标签到底是什么?

我正在尝试理解由 scikit ( http://scikit-learn.org/0.13/auto_examples/cluster/plot_dbscan.html ) 实现的 DBSCAN 算法的示例。

我换了行

X = my_own_data所以我可以将自己的数据用于 DBSCAN。

现在,labels_true作为第二个返回参数的变量make_blobs用于计算结果的一些值,如下所示:

如何labels_true从我的数据中计算X?在这种情况下,scikit 到底是什么意思label

感谢您的帮助!

0 投票
1 回答
2035 浏览

python - Python 中的 DBSCAN:意外结果

我试图通过 scikit-learn 理解 DBSCAN 实现,但我遇到了麻烦。这是我的数据样本:

然后我按照提供的示例计算 D

D返回一个矩阵,其中包含每个点与所有其他点之间的距离。因此对角线始终为 0。

然后我运行 DBSCAN 为:

eps = 1.1意味着,如果我很好地理解了文档,那么距离小于或等于 1.1 的点将被考虑在一个集群(核心)中。

D[1]返回以下内容:

这意味着第二个点到第一个和第三个点的距离为 1。所以我希望他们建立一个集群,但是......

这意味着没有找到核心,对吧?这是其他 2 个输出。

为什么会有集群?

0 投票
1 回答
2001 浏览

java - 使用 KD-tree 查找范围内的所有邻居

我正在尝试实现与DBSCAN一起使用的KD 树。问题是我需要找到满足距离标准的所有点的所有邻居。问题是当我在我的实现中使用该方法时,我在使用朴素搜索(这是所需的输出)时没有得到相同的输出。我的实现改编自python 实现。这是我到目前为止所得到的:nearestNeighbours

当我运行它时,我得到以下输出(后半部分是模型输出):

我想不通为什么邻居不一样,似乎可以发现a->b是邻居,但不是b->a也是邻居。

0 投票
4 回答
5286 浏览

machine-learning - 在 scikit-learn 中,DBSCAN 可以使用稀疏矩阵吗?

运行 scikit 的 dbscan 算法时出现内存错误。我的数据大约是 20000*10000,它是一个二进制矩阵。

(也许DBSCAN不适合用这样的矩阵。我是机器学习的初学者。我只想找到一个不需要初始簇号的簇方法)

无论如何,我发现了 scikit 的稀疏矩阵和特征提取。

http://scikit-learn.org/dev/modules/feature_extraction.html http://docs.scipy.org/doc/scipy/reference/sparse.html

但我仍然不知道如何使用它。在 DBSCAN 的规范中,没有关于使用稀疏矩阵的指示。不允许吗?

如果有人知道如何在 DBSCAN 中使用稀疏矩阵,请告诉我。或者你可以告诉我一个更合适的集群方法。

0 投票
1 回答
8000 浏览

python - Cluster high dimensional data with python and DBSCAN

I have a dataset with 1000 dimensions and I am trying to cluster the data with DBSCAN in Python. I have a hard time understanding what metric to choose and why.

Can someone explain this? And how should I decide what values to set eps to?

I am interested in the finer structure of the data so the min_value is set to 2. Now I use the regular metric that is preset for dbscan in sklearn, but for small eps values, such as eps < 0.07, I get a few clusters but miss many points and for larger values i get several smaller clusters and one huge. I do understand that everything depends on the data at hand but I am interested in tips on how to choose eps values in a coherent and structured way and what metrics to choose!

I have read this question and the answers there are with regards to 10 dimensions I have 1000 :) and I also do not know how to evaluate my metric so it would be interesting with a more elaborate explanation then: evaluate your metric!

Edit: Or tips on other clustering algorithms that work on high dimensional data with an existing python implementation.