- 浏览: 466626 次
- 性别:
- 来自: 北京
最新评论
-
u012772662:
您好,请问有参考的论文吗?
【0-1】矩阵分解 -
zhegeliang2:
qq_20599123 写道感谢博主的分享,想问下对BPR-O ...
BPR [Bayesian Personalized Ranking] 算法详解及应用实践 -
fobdddf:
kite1988 写道关于模型迭代更新公式的regularza ...
BPR [Bayesian Personalized Ranking] 算法详解及应用实践 -
orange666:
直接用sed呗$wc -l input.txt 5000002 ...
Shell下三种遍历文件的方法比较 -
qq_20599123:
感谢博主的分享,想问下对BPR-OPT的先验概率部分展开那一块 ...
BPR [Bayesian Personalized Ranking] 算法详解及应用实践
文章列表
现在一开电脑,尤其是一些IT性质的网站论坛,所谓大数据真是铺天盖地,很有气势。
好像每个搞IT的同仁不说点关于大数据的东西,都不好意思跟人打招呼。
关于这种疯狂,我们已经看得够多了。什么SOA、Ajax、RIA、HTML5.. ...
在实际工作中我们经常会遇到将一个list中最大[最小]的前TopK个元素输出的问题。
比如说在电商领域,求上个月卖的最好的前10个商品,或者是每个品类下卖的最好的前10个商品。
这类问题,很多数据库或数据仓库工具可以 ...
C语言的少即是多:
从语言内容来讲,C绝对是足够精炼的,它提供且仅提供了我们工作所必须的编程元素。
从可以实现的功能以及能为我们提供的代码管理和性能支持上来看,它也做的恰到好处。
没有C++的繁琐、比脚本及所谓的OO语言更高效、当然也比汇编更容易理解。
不过对于用惯了Java的HashMap、LinkedHashMap,Python的Dict,以及PHP的Array 的同学来说,C的简洁似乎就有些简陋,甚至是蹩脚了。
最近项目中需要在C语言中使用HashTable来提高按键的查找速度,在网上找了很多现成的实现,发现写的都很随意,都有问题。很多现有的实现版本中都是使 ...
前两天团队讨论了什么是推荐、什么是个性化推荐。关于这,大家有的顾名思义、有的引经据典。当然都能够较好地解释上面这两个概念。这里,我则试图从现实现象中去理解什么是推荐、什么是个性化推荐。
开始啰嗦了:
这次请假去外地,在火车站的一个卖报点发现一个比较有趣的现象。这个摊位除了报纸,还有杂志、书籍等。此外,很多人在买报的时候都不只买一份,基本上是两份起。
现象一:
经过我长达一个小时的观察,有两份报纸同时被买的次数最多,一份是《参考消息》,一份是《环球时报》。我想,这个现象与我们推荐的理论完全吻合。而且卖报点的这两份报纸也是放在一起的,更绝的是这两份报纸价钱:《参考消息》0.8元 ...
一、决策树简介:
关于决策树,几乎是数据挖掘分类算法中最先介绍到的。
决策树,顾名思义就是用来做决定的树,一个分支就是一个决策过程。
每个决策过程中涉及一个数据的属性,而且只涉及一个。然后递归地,贪心地直到满足决策条件(即可以得到明确的决策结果)。
决策树的实现首先要有一些先验(已经知道结果的历史)数据做训练,通过分析训练数据得到每个属性对结果的影响的大小,这里我们通过一种叫做信息增益的理论去描述它,期间也涉及到熵的概念。也可参考文章信息增益与熵.
下面我们结合实例说一下决策树实现过程中的上述关键概念:
假设我们有如下数据:
...
本文假设读者至少有对数据挖掘中的关联规则有基本了解,对Apriori算法的实现有一定了解。
在此基础上,我们讨论一种比Apriori更加高效的关联规则挖掘方法——基于FP-Tree的关联规则挖掘。
(一) 关于Apriori:
Apriori是关联规则挖掘中最最最经典的算法,没有之一。同时,它也是向初学同学阐明关联规则精髓的最佳武器。
首先,我们简单回顾下Apriori算法的两个概念:
频繁项集:即支持度不小于指定的最小支持度的项集就是频繁项集。
向下封闭:如果k项候选集中有一项不是频繁项集,则这个k项集也不是频繁项集。
它的主要问题是:
在由频繁 ...
DJBX33A 哈希函数又叫做time33 哈希函数,PHP、Perl、Apache中都是用该方法做为其哈希函数的实现。
本文就对该哈希函数做一简单的介绍,并用Bash对其进行实现。
该方法十分简单,将字符串中的每个字符的ascii码迭代*33加在一起即可。即hash(i)=hash(i-1)*33+ascii(i)。
假如字符串为:abc,则结果就是hashCode=(ascii(a)*33+ascii(b))*33+ascii(c)
PHP中的实现见博客:PHP中的hash函数实现
该问题和求单调递增子序列有点像,但不一样。
其主要区别就是在于连不连续,如果不要求连续(单调递增子序列)在实现时的算法是动态规划,比较复杂。
本文描述的问题是子序列连续的问题,相比而言会简单很多,原理和求最大值是一样的。
具体描述为给定一个字符串,求一个子串,该子串满足:
1. 连续
2. 该子串递增
3. 是最长的单调连续递增的子串
例如:zxuhababcba
结果:abc
代码如下:
#!/bin/bash
## the input str for test
inputStr="zxuhababcba";
...
上篇文章我们讨论了快速排序算法,它与归并算法同属分治算法的一种。
两者在实现上很相似,都使用了分治递归的策略来实现。
相信大家对快排和归并排序都不陌生,不过我们平常接触到的一般是这两种算法的递归实现方式。
以Java为例,其Arrays类中的sort在排序Object的时候用的就是归并排序。
不过其在实现上做了优化,在子问题足够小时(每个递归子序列长度不大于7)通过插入排序完成这个子序列的排序。
概括而言,Java中的Arrays.sort在排序Object对象的数组时用的是归并排序+插入排序的方式,即对插入排序结果的归并。
Java中的实现如下:
...
写blog的好处是,琢磨过的东西不用再琢磨第二次了。
快速排序算法的非递归实现:
#!/bin/bash
declare -a inputArray=(2 3 5 0 1 5 7 1 2 9 0);
declare -a startStack;
declare -a endStack;
#init inputArray randomly
for((i=0;i<10000;i++))
do
inputArray[$i]=$RANDOM;
done
arrayLength=${#inputArray[@]};
lastIndex=$(( ...
假设我们有一个求集合的全部子集(包含集合自身)的需求,即有一个集合s,包含两个元素 <a,b>,则其全部的子集为<a,ab,b>.
不难求得,子集个数sn与原集合元素个数n之间的关系为:sn=2^n-1。
本文分别讲述两种实现方法:
一:位图法:
1)构造一个和集合一样大小的数组A,分别与集合中的某个元素对应,数组A中的元素只有两种状态:“1”和“0”,分别代表每次子集输出中集合中对应元素是否要输出,这样数组A可以看作是原集合的一个标记位图。
2)数组A模拟整数“加一”的操作,每“加一”之后,就将原集合中所有与数组A中值为“1”的相对应的元素输出。 ...
在数据库操作中,我们常常遇到需要将数据去重计数的工作。例如:
表A,列col
A
C
A
B
C
D
A
B
结果就是一共出现4个不同的字母A、B、C、D
即结果为4
大体上我们可以选择count(distinct col)的方法和group+count的方法。
分别为 ...
相信编程时,字符串的处理是很频繁被处理的问题,其中大家肯定不陌生各种语言的string.split('sp')将字符串按照某个字符或子串切分成一个数组。
同样,我们在用shell处理文本信息时也可以方便地实现该功能。
这里主要使用了bash中关于字符串变量的处理和array初始化的能力。
如下:
#!/bin/bash
str="hello,world,i,like,you,babalala"
arr=(${str//,/ })
for i in ${arr[@]}
do
echo $i
done
将str按照 ...
昨天一个同事遇到一个需求:
有一个日志文件A,当日志文件中的某行包含某个字符串BC时,将字符串EF变成EG,并输出到新文件。即:
Input,A:
asdfasdf
asdfasdBCasdfEFasd
output:
asdfasdf
asdfasdBCasdfEGasd
这个文件有500w+行。
最开始用如下脚本解决:
cat $1 | while read line
do
echo $line | grep -q "BC"
if [ $? -eq 0 ] ; then
echo $line | sed "s/ ...
本来决定在iteye上不码情绪类的文字,但面对f*ck的2011却又不得不说点什么。
前年的今天,我很happy的在哈尔滨享受着冰城的风度。天气虽然寒冷,但心里很火热,对生活也充满了期待。
而就是从哈尔滨归来开始,各种不顺、各种纠结、各种悲剧,生活一下子仿佛回到了本来的颜色。让我无奈到觉得生活本来就TM是让人无奈的。
生活就是一面镜子,站在前面,我们都无法回避丑陋的自己。
自己很后悔当时在学校没有好好学习,把大好的青春都混过去了。其实想想,学习很简单,也不是非得让我们读多少书,上多少课,背多少单词,考多少分,拿多少奖学金。。。统统都不是,在学校里最珍贵的是打心底里要真 ...