对于聚类,DBSCAN 在处理任意形状数据集方面超过了 k-means。在大多数发表的关于基于密度的聚类的论文中,实验是使用具有特殊特征的合成数据集(例如,月形数据集)进行的。有人可以指出一些 DBSCAN 优于 K-means 的真实世界数据集。
DBSCAN 在哪些真实世界数据集上超过了 K-means。?
我玩了很多位置数据,并找到了 k-means 工作正常以及 k-means 表示不佳而 DBSCAN 非常适合的示例。
如果您曾经在有雾或低云量的日子里徒步旅行或登山,有时您到达山顶时只能看到周围的山峰从云层中探出头来。当我想到 DBSCAN 时,我喜欢使用这个类比。密度过滤允许选择保留数据的阈值,并过滤掉所有剩余的数据。
看看这个西雅图犯罪事件数据。假设我想按位置对数据进行聚类以形成伪邻域,即粗略定义为犯罪事件容易发生的地理位置的邻域。这是一个在位置分析中运行良好的 k-means 示例:
西雅图犯罪数据使用 k-means 聚类叠加原始地图
如果您完全了解西雅图,您会发现集群倾向于挑选社区,这在分解社区方面非常有效。现在假设我想挑选西雅图的高犯罪率地区以识别热点。无论我如何调整 k,k-means 聚类并不能真正提供任何额外的洞察力。但是 DBSCAN 中的密度过滤在识别高犯罪率区域方面做得非常出色:
西雅图犯罪数据使用 DBSCAN 聚类叠加原始地图
我认为这提供了一些可以使用这两种算法加以利用的优势的玩笑。犯罪数据没有什么特别之处。对于它的价值,我有一个教程,通过分析从他们的手机 GPS ping 识别用户的家庭和工作位置。这是 DBSCAN 非常有用的另一种情况,但 DBSCAN 的特定部分在教程中被埋没了。
希望这可以帮助!
根本没有好的聚类评估数据可以得出这样的结论。
甚至没有好的真实数据可以说 k-means 的变体 1 比 k-means 的变体 2 更好。
也没有很好的评估措施可以很好地处理“噪音”的概念。
所以:不要按一些数字。
聚类是关于解决数据问题。你有数据,你尝试算法和参数并研究(重要的)结果。直到你发现一些有趣的东西。这不能自动化或测量(好吧,你可以问 100 位科学家什么对他们有用——我记得曾经看过一些成功使用 DBSCAN 的天文学论文——但当然他们不能把数字 0 放在 1 上)。
你可能想看看这个DBSCAN 的案例研究——我怀疑 k-means 对这个数据集有很大帮助。特别是,它会将噪声点分配给某些集群,而它们根本不应该被分配。