【坑】Sketch算法——Count-Min Sketch和Universal Sketch

文章目录

  • 参考链接
  • 一、Sketch算法用来做什么?
  • 二、Min-count sketch
    • 基础思想:
    • 进阶:
    • 特点:
  • 三、Universal Sketch

参考链接

[1] Count-Min Sketch: https://blog.csdn.net/pipisorry/article/details/64126199
[2] Cormode G, Muthukrishnan S. An improved data stream summary: the count-min sketch and its applications[J]. Journal of Algorithms, 2005, 55(1): 58-75.

一、Sketch算法用来做什么?

用于计数的算法,牺牲一定的准确性换来高效率,适合用在实时性要求比较高的场景。

二、Min-count sketch

Count-Min Sketch 由 Cormode 和 Muthukrishnan 等人于2005年提出,这是频率估计问题的基本解决办法之一。

基础思想:

  1. 创建一个长度为 x 的数组,用来计数。每个元素的计数值初始化为 0;
  2. 对于每一个新来的元素,哈希到 0 到 x 之间的一个数,作为数组的索引:比如哈希值为 i,数组对应的位置索引 i 的计数值加 1;
  3. 要查询某个元素出现的频率,返回这个元素哈希望后对应的数组的位置索引的计数值即可。

进阶:

若数据类型很多,数组长度有限,极有可能互相冲突,即不同的数据hash到数组的同一个位置上,影响计数的精度;
为了提高精度,使用多个数组和多个哈希函数。数组A对应哈希函数A,数组B对应哈希函数B,新到一个元素则在所有数组对应索引的位置都加1。
要查询某个元素出现的次数,则返回这些数组里面对应索引位置最小的(因此,叫min-count)。

特点:

  • 计数只会估算偏大;
  • 需要固定大小的内存和计算时间,和需要统计的元素多少无关;
  • 对于低频的元素,估算值相对的错误可能会很大。

三、Universal Sketch

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/508475.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

css中的单位

前端开发中, 做适配是少不了的, 这就用到了css中的各种长度单位, 做一下总结 在css中, 长度单位分为以下几种 绝对单位: px、in、cm、mm、pt、pc百分比单位: vw、vh、vmin、vmax、%相对单位: em、rem、ex、ch 各单位介绍 px 不用过多介绍, 精确像素 in 寸 cm 厘米 mm…

【5G入门】MCS调制编码方案简介

​ 目录参考资料:1. MCS简介MCS是什么如何选择MCS有哪些MCS可供选择如何配置MCS示例参考资料: 链接: 5G NR Modulation and Coding Scheme – Modulation and Code Rate. 1. MCS简介 MCS是什么 MCS(Modulation and Coding Scheme&#xf…

caffe初体验

caffe是一个深度学习的框架, 具体我也不太清楚, 可以自行百度吧, 我也是刚刚知道有这么一个框架, 才疏学浅啊. 在安装完caffe, 我的第一个想法就是, 别管他是个啥东西, 总得先让我运行一些看一看吧. 刚好, 官方就准备了一些数据, 供我们运行一下看一看使用. 因为我是通过dock…

【安全】进阶的Mosquitto:搭建一个安全的MQTT服务

目录一、基础版Mosquitto安装及运行Mosquitto安装Mosquitto运行二、基础安全版Mosquitto安装及运行(需要输入密码)Mosquitto安装Mosquitto配置Mosquitto测试效果三、安全版Mosquitto安装及运行Mosquitto安装TLS安装Mosquitto配置Mosquitto测试效果注意一…

PHP注释标记整理

什么是注释标记 我们在平常写代码或看别人写的代码时, 在方法的说明注释中经常会有这样的注释: /*** param $num* return array*/上面的*param* return 就是注释标记 注释标记用于生成文档, param指明需要接收的参数, return指明返回值 在使用 phpDocumentor 等工具生成文档…

PHP 循环引用的问题

问题 为了引出问题, 先来看下面一段代码: <?php $arr [a, b,c, d, ];foreach ($arr as &$each){echo $each; } echo PHP_EOL; foreach ($arr as $each){echo $each; }这段代码很简单, 输出数组的元素两次, 感觉会输出两次 abcd? 不好意思, 输出结果如下:  是不是感…

redis常规命令记录

概述 因为redis是单线程执行&#xff0c;所以不用关心并发问题。 简单记录一下redis的操作命令&#xff0c;留作查阅&#xff0c;回头再整理一下事物等操作。 reids中存储的是kev-value形式, 其中的value有几种: 字符串: 就是简单的string 字符串列表: 有序可重的列表 字符…

代码整洁之道-函数

什么是一个好的函数或者叫方法&#xff0c;只要能让函数明确的表达其意图&#xff0c;让读者能够一眼看出是一个怎样的函数&#xff0c;其接收什么参数&#xff0c;返回什么结果&#xff0c;做了什么事情。能做到这&#xff0c;大概就能算作一个好的函数了&#xff0c;看上去很…

代码整洁之道-格式

对于代码的格式&#xff0c;每个人都有不同的代码风格&#xff0c;这没什么。但是对于一个团队来说&#xff0c;最好能够统一代码风格&#xff0c;在同一个项目中&#xff0c;如果到处充斥着不同的代码风格&#xff0c;相比读起来并不是那么让人舒适&#xff0c;比如在什么地方…

代码整洁之道-对象和数据结构

现在&#xff0c;有一个计算面积的需求&#xff0c;其中一种实现如下&#xff1a; class Square{public $side; } class Geometry{public function area($shape){if($shape instanceof Square){return $shape->side * $shape->side;}return 0;} }有人看了&#xff0c;你…

代码整洁之道-类

在面向对象的编程中&#xff0c;类是其中的基本单位&#xff0c;就像面向过程中的函数一样。所以在说类时&#xff0c;可以借鉴一下前面的函数&#xff0c;不如只做一件事&#xff0c;也就是所说的单一职责。 函数应该短小&#xff0c;对于类来说&#xff0c;也是这样。函数的…

Deepin nginx lumen配置

Deepin nginx lumen配置 正常安装 sudo apt install nginx sudo apt install php-fpm 启动后将 /etc/nginx/sites-enabled/default 配置文件 copy一份到 /etc/nginx/conf.d/lumen_demo.conf 然后按照该配置文件改改&#xff0c;修改后的配置文件如下&#xff1a; server {lis…

代码整洁之道小结

以下总结一些不好的代码规范&#xff0c; 借此警示自己不要犯这种错误 注释 1.不恰当的注释 注释应该仅用来描述有关代码和设计的技术性信息。像修改历史等信息不应出现在注释中 2.废弃的注释 过时、无关或错误的注释就是废弃的注释&#xff0c;不要写这种注释&#xff0c…

PHP的stdClass

概述 以下是百度百科对php中的 stdClass的描述&#xff1a; stdClass在PHP5才开始被流行。而stdClass也是zend的一个保留类。**stdClass类是PHP的一个内部保留类&#xff0c;初始时没有成员变量也没成员方法&#xff0c;所有的魔术方法都被设置为NULL.**凡是用new stdClass()的…

浮点数的运算精度丢失

引出 打开Python编译器&#xff0c;输入 0.10.2&#xff0c; 期待的结果是0.3&#xff0c;但是输出为&#xff1a; 0.30000000000000004 有点小尴尬&#xff0c;这是为什么呢&#xff1f; 解惑 其实这设计到了计算机的浮点数存储是以二进制进行存储的。 说二进制不太形象&a…

补码到底是个什么东西

概述 先引入一个前提&#xff0c;在计算机中数字是以二进制进行存储的&#xff0c;也就是我们看到的2&#xff0c;在计算机中存储的是10。我们进行的加法运算 213 在计算机中是这样的&#xff08;这里先假设计算机存储的是4位二进制数字&#xff09; 001000010011 很容以看的…

揭开HTTPS的神秘面纱

在说HTTP前&#xff0c;一定要先介绍一下HTTP&#xff0c;这家伙应该不用过多说明了&#xff0c;大家每天都在用&#xff0c;每一次HTTP请求&#xff0c;都是一次TCP连接。遗憾的是&#xff0c;请求的内容在TCP报文中是明文传输的&#xff0c;任何人截取到请求都可以读取其中的…

递归函数两种方式的区别

概述 递归函数都不陌生&#xff0c;比如计算n的阶乘&#xff1a; function f($n){if($n < 1) return 1;return $n * f($n-1); } 当然&#xff0c;有人可能会这么写&#xff1a; function f($n, $result){if($n < 1) return $result;return f($n-1, $n*$result); } 上…

Trie树

概述 在Google中随意搜索&#xff0c;如下所示&#xff1a; 他会自动显示相关的搜索&#xff0c;不知道有没有想过这个功能是如何实现的呢&#xff1f;面对海量的数据&#xff0c;它怎么能在我输入的同时&#xff0c;如此快速的检索到相关内容呢&#xff1f;当我查找资料后&am…

Python元组是什么

引出 在使用Python过程中&#xff0c;列表、集合和字典是比较常用的数据结构。 列表简单说就是数组&#xff0c;不对&#xff0c;它就是数组 集合就是去重的元素结构&#xff0c;和JAVA中的set一样 字典就是一个key-value的键值对&#xff0c;和JAVA中的HashTable一样 但是…