【问题标题】:What are probabilistic data structures?什么是概率数据结构?
【发布时间】:2015-02-03 02:36:10
【问题描述】:

我已阅读有关布隆过滤器和跳过列表等数据结构的信息。

概率数据结构的共同特点是什么?它们的用途是什么?

【问题讨论】:

    标签: algorithm data-structures probability


    【解决方案1】:

    可能有很多不同的(和好的)答案,但在我看来,概率数据结构的共同特征是它们为您提供近似的而不是精确的答案。

    这里有多少项目? 大约 1523425 概率为 99%

    更新: 快速搜索生成了关于该问题的体面文章的链接:

    https://highlyscalable.wordpress.com/2012/05/01/probabilistic-structures-web-analytics-data-mining/

    【讨论】:

    • 在每个槽中没有链表的哈希表不也是概率数据结构吗?跨度>
    • @Pacerier,您所说的实际上是具有 k=1 哈希函数的布隆过滤器。但是因为它可以肯定地说如果一个项目“不存在”,它不能肯定地说如果该项目“存在”。这就是为什么,是的,它将是一个概率数据结构。
    • 跳过列表可以被视为一种概率结构,但它给出了一个准确的答案。在这种情况下,概率会影响性能,但不会影响正确性。
    【解决方案2】:

    概率数据结构无法为您提供明确的答案,而是为您提供答案的合理近似值以及近似此估计值的方法。它们对于大数据和流式应用程序非常有用,因为它们可以显着减少所需的内存量(与为您提供准确答案的数据结构相比)。

    在大多数情况下,这些数据结构使用散列函数来随机化项目。因为他们忽略了碰撞,所以他们保持大小不变​​,但这也是他们不能给你准确值的原因。它们带来的优势:

    • 它们使用少量内存(您可以控制多少)
    • 它们可以很容易地并行化(哈希是独立的)
    • 它们具有恒定的查询时间(甚至不像字典中的摊销常数)

    常用的概率数据结构有:

    【讨论】:

      【解决方案3】:

      维基百科中有一个概率数据结构列表供您参考: https://en.wikipedia.org/wiki/Category:Probabilistic_data_structures

      关于什么是“概率数据结构”有不同的定义。恕我直言,概率数据结构意味着数据结构使用一些随机算法或在内部利用一些概率特征,但从数据结构用户的角度来看,它们不必表现出概率或不确定性。

      • 有许多“概率数据结构”具有概率 行为,例如提到的bloom filterHyperLogLog 由其他答案。

      • 同时,还有其他“概率数据结构” 具有确定的行为(从用户的角度来看),例如skip list。对于跳过列表,用户可以将其类似地用作平衡二叉搜索树,但在内部使用一些与概率相关的想法来实现。根据跳过列表的作者 William Pugh 的说法:

        跳过列表是一种概率数据结构,似乎很可能 替代平衡树作为选择的实现方法 许多应用程序。跳过列表算法具有相同的渐近性 预期的时间界限为平衡树,更简单、更快且使用 空间更小。

      【讨论】:

      • 我不相信跳过列表是概率数据结构。它们保证给出正确的结果,并且不像 Bloom Filters 或 HyperLogLog 等真正的概率数据结构那样没有错误率。有趣的是,链接的维基百科文章有一个关于“概率”的超链接,导致维基百科文章“随机算法”,一个完全不相关的主题。这对链接的维基百科页面的有效性提出了质疑。
      • @Shuklaswag 定义“真正的概率数据结构”甚至“概率数据结构”。恕我不能赞同。尽管跳过列表总是给出正确答案,但概率是使其有用的算法的重要组成部分。
      【解决方案4】:

      如果您对概率数据结构感兴趣,您可能想阅读我最近出版的书“大数据应用程序的概率数据结构和算法”(ISBN:9783748190486,可在 Amazon 获得),其中我已经解释了许多在现代大数据应用中非常有用的节省空间的数据结构和快速算法。

      在本书中,您可以找到最先进的算法和数据结构,这些算法和数据结构有助于处理大数据处理中的常见问题,例如

      • 会员查询(布隆过滤器、计数布隆过滤器、商过滤器、布谷鸟过滤器)。
      • 基数(线性计数、概率计数、LogLog、HyperLogLog、HyperLogLog++)。
      • Frequency(多数算法、Frequency、Count Sketch、Count-Min Sketch)。
      • 排名(随机抽样、q-digest、t-digest)。
      • 相似度(LSH、MinHash、SimHash)。

      您可以在https://pdsa.gakhov.com获得免费预览和所有与本书相关的信息

      【讨论】:

        猜你喜欢
        • 2021-12-12
        • 2023-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-06
        • 2013-07-08
        • 2015-12-09
        • 1970-01-01
        相关资源
        最近更新 更多