Scikit-Learn DBSCAN 创建一个包含两个高度断开的岛的集群
Scikit-Learn DBSCAN creating a cluster with two highly disconnected islands
在这种情况下:一图胜千言 ..
你好紫色星团!
这是怎么发生的?首先 - 描述 DBSCAN
的数据和设置:
- 100 个数据点
- 使用自定义距离度量生成预计算距离矩阵
- 自定义距离度量很简单:只考虑
r0
(x-distance)
除了那对 流氓紫色点 之外的所有东西看起来都完全符合要求。那个紫色星团是如何越过 黄墙 并声称左上角那对流氓点的?
更新 经验证正好是三个集群。 IE。这不是选择三种颜色来表示四个集群的错误。
验证直接来自 dbscan 预测输出(不是我的一些假设):
这里是:
NumClusters is 3 counts are (array([-1, 0, 1]), array([ 8, 67, 25]))
另一个更新 澄清一下:2 个紫色点被添加到最右边的集群(也是紫色)。它们不是第四集群。所以问题是 - 为什么这些点被添加到 最远 集群而不是附近的绿色和黄色集群?
这很有趣。我添加了 cluster number,我们看到 purple 是 -1。
这意味着 NO CLUSTER 。这就是左上角的一对 "share" 与最右边的那对 "cluster" 相同的原因:它们实际上并不共享 集群 ,而只是sckit-learn
用于 NO 集群的标识符。
在这种情况下:一图胜千言 ..
你好紫色星团!
这是怎么发生的?首先 - 描述 DBSCAN
的数据和设置:
- 100 个数据点
- 使用自定义距离度量生成预计算距离矩阵
- 自定义距离度量很简单:只考虑
r0
(x-distance)
除了那对 流氓紫色点 之外的所有东西看起来都完全符合要求。那个紫色星团是如何越过 黄墙 并声称左上角那对流氓点的?
更新 经验证正好是三个集群。 IE。这不是选择三种颜色来表示四个集群的错误。 验证直接来自 dbscan 预测输出(不是我的一些假设):
这里是:
NumClusters is 3 counts are (array([-1, 0, 1]), array([ 8, 67, 25]))
另一个更新 澄清一下:2 个紫色点被添加到最右边的集群(也是紫色)。它们不是第四集群。所以问题是 - 为什么这些点被添加到 最远 集群而不是附近的绿色和黄色集群?
这很有趣。我添加了 cluster number,我们看到 purple 是 -1。
这意味着 NO CLUSTER 。这就是左上角的一对 "share" 与最右边的那对 "cluster" 相同的原因:它们实际上并不共享 集群 ,而只是sckit-learn
用于 NO 集群的标识符。