- 博客(16)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 2015年百度之星资格赛第一题分析
这个是今年百度之星资格赛的第一题,我一开始使用了暴力的方法做,发现发TLE,后来改用DP过了。一、题目大意有N个人,每个人有个位置i(),每个人位置都不同。对这N个人重新排位置,一种排位置规则规定第i个人换到第j个位置,其中。两种排位置规则中只要有一个人对应到了不同的位置,就称这两个排位置规则不同。用同一种排位置规则对这N个人重新排了两次位置,发现所有人和排位置之前的位置都一样。问有多少种
2015-05-25 15:48:14
924
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 数据流算法
在接下来的几个博客里,我将讲述基础的数据流算法,包括采样问题,频繁元素问题,独立元素个数问题,k阶矩问题。后续可能会添加高阶内容。
2015-05-20 20:57:32
5603
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 MinHash与SimHash
这篇文字主要写MinHash和SimHash的区别,不涉及MinHash和SimHash的详细介绍,具体资料在最后参考资料里给出。一、相同点提到哈希我们想到很多应用,最常见的话就是用于提高查询效率,还可用于加密方面。本篇文章要介绍的MinHash和SimHash由于具有一些特性在降维,查重和聚类等方面应用广泛。1.它们都具有一般哈希方法所没有的局部敏感的性质(局部敏感哈希LSH是一类哈
2015-05-10 22:23:46
9122
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Practical Lessons from Predicting Clicks on Ads at Facebook
这篇论文发表在ADKDD上,论文中有用的想法如下。一、提出基于提升树的特征转换方法。方法的示例如下图所示。先使用GBDT在训练集上训练模型,得到了2棵决策树,这2棵树一共有5个叶子节点。构建5维向量[0,0,0,0,0,0],前三位对应第一棵树,后两位对应第二棵树。针对一个样本x,如果它在第一棵树上最终落到第二个叶子节点,则把向量中前三位里第2位设为1。如果它在第二棵树上最终落到第一棵子树
2015-05-07 20:12:04
7416
原创 顺序二维数组的查找
1、题目就是给定一个二维数组,数组里面从左到右,从上到下都是非降序。然后查找某个值是否存在。这个题目在剑指offer里面也有。不过这里用的是自己想出来的方法。2、解法这里涉及到二分查找肯定是想着使用二分查找。类比一维数组的二分查找,需要两个指针表示范围。但是这里是二维数组,所有想着使用四个指针表示范围。二分查找中肯定需要个中点,这个中心点自然而然选择矩形的中心点。在一维数组,中心点把数
2015-07-30 20:50:13
1004
原创 找出数组中只出现1次的数(各种变形)
位运算的应用。一、数组中只有一个数出现1次,其他数字均出现两次。找出只出现1次的那一个数字。任何数字和本身异或的结果为0。0和某数字的异或结果为其本身。所以数组中所有数字异或结果就是所求结果。代码如下。int singleNumber1(vector& nums) { int ans=nums[0]; for(int i=1;i<nums.size();i++){ ans^=n
2015-06-08 15:28:48
1545
原创 数据流小问题--find the missing elements
这是关于数据流的一个有趣的小问题。问题可以定义为:整个数据流里的元素为1到n的排列(无序),假设移除了k个数,如何找出这k个数。要求使用尽可能少的空间。而且只能顺序扫描数据一次。对于这个问题,如果没有空间的限制,我们可以使用bitmap轻松搞定,bitmap使用n位即可,扫描到每个元素i,就把第i位设为1,最后结束后值为0的那些位置序号找出来就是所求结果,空间复杂度为O(n)。这个问题时间复杂
2015-05-29 10:54:08
1234
原创 数据流基本问题--确定频繁元素(二)lossy counting和sticky sampling
我们之前在数据流基本问题--确定频繁元素(一)中提到了频繁元素的一个计算问题(找出出现次数超过m/k的元素),里面的算法返回的结果里肯定包含出现次数超过m/k的元素,但是也可能包含不超过m/k的元素(false positive)。对于这个缺点,必须得进行额外一次的重新扫描,以确定最终答案。我们只允许进行一次的扫描,那么该怎么去做呢?这里我们简单讨论下lossy counting算法。其实
2015-05-27 19:56:00
8733
原创 数据流基本问题--矩估计(一)
前面数据流基本问题--独立元素计数(一)和数据流基本问题--独立元素计数(二)我们谈到了独立元素技术。在本文中,我们将独立元素计数问题推广到更一般的问题,也就是矩估计问题。我们将先介绍矩的定义,然后介绍一个无偏的估计算法,最后介绍如何改进结果。一、矩定义
2015-05-26 18:54:28
2739
1
原创 数据流基本问题--基于sketch进行Frequency Estimation
如果一个数据流,其中m为数据流的大小,。我们可以定义每个元素出现的次数为,其中为第i个元素出现的次数。这篇博客就是讲下的估计问题(Frequency Estimation)。在数据流基本问题--确定频繁元素里面的方法也可以对元素出现次数进行估计。但是这个方法如果该这种方法处理了两个数据流,无法对处理的结果进行汇总得到两个数据流合并后的结果进行估计。而且该方法只能针对vanilla
2015-05-25 18:42:30
13702
2
原创 数据流基本问题--独立元素计数(二)
该篇文章中问题的定义和上一篇文章《数据流基本问题--独立元素计数(一)》点击打开链接中一样。不过该篇文章里能给出-近似的算法。一、算法的基本思想该篇文章中的算法是上一篇文章中算法的改进。这里不再记录流中元素zeros(h(j))的最大值,而是将满足所有的元素放入到B中。如果流中有d个独立元素,那么平均会有个元素满足。所以应该是d的一个比较好的估计(|B|指的是B中元素总数目)。二、算法
2015-05-24 18:16:28
1557
原创 数据流基本问题--独立元素计数(一)
下面我们讨论如何计算独立元素数目。一、问题定义如果一个数据流,其中m为数据流的大小,。我们可以定义每个元素出现的次数为,其中为第i个元素出现的次数。假设,容易得知d为在数据流中出现的不同元素数目,也就是独立元素数目。对于这个问题,可以在内存中使用高效的搜索结构(比如平衡BST等)保留当前已经出现的元素。但是如果元素数目实在太多以致搜索结构无法访问内存时,我们可以使用更多的机器或者将数据
2015-05-23 09:25:44
3016
原创 数据流基本问题--确定频繁元素(一)
下面可以谈论下如何求频繁元素的一个问题。一、问题定义如果一个数据流,其中m为数据流的大小,。我们可以定义每个元素出现的次数为,其中为第i个元素出现的次数。容易得出:。如果给定参数k,我们想求出所有出现次数超过m/k的元素。也就是输出集合:。下面我们先从一个简单特例入手,对这个问题进行分析和解决。二.简单情况有个经典的过半元素查找问题,在编程之美里面也有分析(寻找发帖水王)。就是
2015-05-21 19:31:29
5335
原创 数据流基本问题---采样问题
在数据流处理中的一个常见问题就是数据采样问题。我们希望从流中选择一个子集,以便能够对它进行查询并给出统计性上对整个流具有代表性的结果。一、蓄水池采样具体问题是我们要从数据流中随机抽取k个元素。如果数据流长度m事先已经知道,那这个问题就非常简单,每个元素以k/m的概率选取即可。但这个问题要求m未知,那就不太好搞了。这个问题的解法是保存一个k大小的窗口。数据流的前k个元素依次加入到窗口。对于数
2015-05-20 21:58:02
6489
2
原创 哈希技术杂烩
普通的哈希算法暂且不讲了,我们探讨下哈希技术的各种应用。1、一致性哈希。在分布式系统用途广泛。2、局部敏感哈希LSH:simhash和minhash。可以用于相似度检测等。谷歌有篇文章利用LSH进行网页去重。3、布隆过滤器。判断一个元素是否在一个集合中。4、在数据流算法中哈希算法应用更是广泛。比如数据流中独立元素计数等。5、特征哈希。近几年在nips等机器学习会议上,将特征使用
2015-05-08 00:26:22
4003
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人