【问题标题】:k-means versus LSH algorithmk-means 与 LSH 算法
【发布时间】:2017-04-27 05:13:32
【问题描述】:

我对数据挖掘和机器学习还很陌生。我想了解 k-means 与 LSH 有何不同。在阅读了几篇在线可用的论文和其他材料后,似乎这两种算法都试图实现相似文档的分组/聚类。对于垃圾邮件检测等用例,它们中的任何一个都已在许多论文中使用。但我不太清楚它们有何不同,如果我们将其用于垃圾邮件检测等用例,结果会有什么不同?

【问题讨论】:

    标签: machine-learning cluster-analysis data-mining k-means


    【解决方案1】:

    LSH 不会对您的数据进行聚类。

    它适用于近似重复 (!) 检测。

    1. 设计上的 LSH 可能会产生根本不相似的“误报”(哈希冲突)。
    2. LSH 有一个阈值 t,它只尝试为低于此阈值的对象产生哈希冲突。为了获得良好的性能,您需要将此阈值选择得尽可能小。对于集群,您确实需要能够找到存储桶之外的对象(比 t 更远) - 使用 LSH 无法可靠地做到这一点。
    3. LSH 将随机放置桶边界;您没有注意到这一点的唯一原因是您多次这样做,并希望并非所有这些都被错误地选择。所以你只能得到几乎所有近邻。甚至可能只有 90%,具体取决于您的参数。由于每个对象都在多个个桶中,它的集群是什么?你会得到大量重叠的“集群”,每个集群只包含数据的一部分。如何有效地从中找到好的集群几乎一清二楚。

    LSH真的是关于“几乎相同”的对象,而不是关于在数据中找到更大的结构。

    我不认为垃圾邮件检测是一个很好的用例 - 你知道任何垃圾邮件过滤器实际上会这样做吗? 近乎重复的新闻检测,例如然而,谷歌新闻与某种 LSH 相关;据说他们正在使用 minhashing。

    【讨论】:

    • 是的,LSH 可用于垃圾邮件检测,前提是您的数据集不正确。它的任何近乎欺骗也被视为垃圾邮件。许多公司使用它。 Facebook 使用了他们在 2015 年 spam@scale 会议上谈到的它。我的问题是,假设我增加了阈值 t,这意味着可以说我对其进行了调整,以使大约 60-65% 的匹配邻居最终在同一个桶中。这不属于类似对象的集群吗?
    • 不,它仍然只是一个桶,如果你想避免误报,它最终会扼杀你的表现。我不相信这种垃圾邮件过滤器,因为它只能识别 old 垃圾邮件。
    • 好的,谢谢。因此,使用类似 k-means 聚类算法的方法对相似项目进行分组比使用具有 65% 相似度阈值的 LSH 给出更好的结果?
    • k-means 不适用于近似重复或垃圾邮件检测。如果您想找到几乎相同的物品,LSH 是一个不错的选择。
    猜你喜欢
    • 2013-07-03
    • 2010-12-05
    • 2017-04-20
    • 2013-04-22
    • 2011-09-15
    • 2015-08-16
    • 2018-10-11
    相关资源
    最近更新 更多