- 博客(108)
- 资源 (2)
- 收藏
- 关注
原创 [论文笔记]slope one predictors for online rating-based collaborative filtering
作者:Daniel Lemire, Anna Maclachlan。论文概要:slope-one是一种item-based的协同过滤算法,核心思想是线性回归f(x) = x+b。根据用户对item的评分信息,得到任意两个item之间的回归直线。然后根据已评分item计算未评分item的分值。最后根据计算出来的item的分值排序做推荐。它的优点是算法简单,容易实现,可扩展性也不错,但需要是基
2012-04-17 19:35:51
2439
原创 [论文笔记]Item-based collaborative filtering recommendation algorithms
作者:Badrul Sarwar, George Karypi, Joseph Konstan, John Riedl内容概要1. 协同过滤: 目标:推荐TOP N item类别:memory-based, model-based。2. user-based的协同过滤的问题: a. 数据稀疏性 b.可扩展性(因为它在推荐时需要用到邻居信息,并且邻居更新更频繁)3. i
2012-04-16 17:05:05
2939
原创 [论文笔记]amazon: item-to-item collaborative filtering
作者为amazon的Greg Linden, Brent Smith, and Jeremy York。内容概要:1. 传统的user-based协同过滤算法,复杂度为O(MN),其中M为用户数量,N为商品数量。由于大部分的用户购买都很稀疏,只有极少数用户可能购买了大量商品,因此复杂度可以简化至O(M+N)。然而这个算法受用户数和商品数影响较大,在大多数大型系统中较难应用。2. 基于聚
2012-04-11 11:17:54
2421
转载 IR的评价指标—MAP,NDCG,MRR
转载自:http://www.cnblogs.com/eyeszjwang/articles/2368087.htmlMAP(Mean Average Precision):单个主题的平均准确率是每篇相关文档检索出后的准确率的平均值。主集合的平均准确率(MAP)是每个主题的平均准确率的平均值。MAP 是反映系统在全部相关文档上性能的单值指标。系统检索出来的相关文档越靠前(rank 越高),
2012-03-27 12:39:39
16887
转载 VIM之分割窗口操作
原文:http://www.followstars.cn/article.asp?id=66 同时显示两个不同的文件,或者同时查看一个文件的两个不同的部分,甚至同步显示两个文件的不同之处,都可以使用vim的分割窗口来实现。 最简单的打开新窗口的方法就是使用命令:split,这样,原来的窗口就会分成上下两个部分,而光标停留在上明的窗口里。你会发现打开的新窗口和你原
2012-03-22 15:00:15
1160
原创 mahout分类算法效果评估指标
mahout中有许多分类器,包括Naive Bayes, Complementary Naive Bayes, Stochastic Gradient Descent, Support Vector Machine, Random Forest等。评估一个分类器(模型)的好坏,需要有一些指标,而在mahout中提供了下列衡量指标:1. %-correct (ConfusionMatrix
2012-03-20 15:09:15
2334
翻译 协同过滤之Slope One算法
纯笔记,直接从维基百科上翻译过来的:http://en.wikipedia.org/wiki/Slope_Oneslope-one算法是基于评分的item-based算法中最简单的一种了,它的思想非常简单,但在很多场合却有很好的效果。但是slope one只适用于有评分的情况,对于二值评分,如商品的有无购买,这种算法是不适用的。通常的item-based算法是基于用户的评分历史及其他用户对
2012-03-07 21:55:01
1874
转载 常用分类算法
分类算法通常需要经过两步:训练和分类。如下:训练:训练集——>特征选取——>训练——>分类器分类:新样本——>特征选取——>分类——>判决最初的数据挖掘分类应用大多都是在这些方法及基于内存基础上所构造的算法。目前数据挖掘方法都要求具有基于外存以处理大规模数据集合能力且具有可扩展能力。下面对几种主要的分类方法做个简要介绍:(1)决策树决策树归纳是经典的分类算法。它采用自顶
2012-02-23 00:26:49
1843
原创 统计学笔记
基本概念1. 直方图按方块的面积衡量所占的比例(一般没有纵向刻度,可能会有密度尺度)2. 平均数和中位数中位数:直方图上左右两边面积相等3. 均方根(Root mean square)r.m.s = sqrt(n1^2 + n2^2 + ...)4. 标准差指出数列中的数离它们的平均数有多远s.d. = sqrt((与平均数的偏差)^2的平均数)
2012-02-08 20:14:48
1893
转载 hive QL(HQL)简明指南
同事整理的,大部分原文摘过来,有少量改动。1. 基本数据类型tinyint , smallint, int, bigint, float, double, boolean: true/false, string2. 基础运算符与函数A IS NULL 空A IS NOT NULL 非空 A LIKE B 模糊匹配A RLIKE B
2012-02-06 14:59:05
4697
原创 Hadoop之combiner和partitioner
1. Combiner通常,每一个map可能会产生大量的输出,combiner的作用就是在map端对输出先做一次合并,以减少传输到reducer的数据量。我们以计算特定key对应值的平均值为例,展示一下combiner的用法:class Mapper method Map(string t, integer r) Emit(string t, integer r
2012-01-31 14:33:56
3386
翻译 基于map-reduce的并行最短路径算法
译自:Data-Intensive Text Processing with MapReduce, Chap.5.2一个有向图,由(V,E)组成,其中V是顶点的集合,E为联结各顶点的边,每条边e可能有相应的权重w。图的表示方式有两种:邻接矩阵和邻接表。其中对于节点数较少的图,用邻接矩阵表示较为方便,计算时也能充分应用矩阵计算的一些优势。但是当节点数特别大,需要借助map-reduce计
2012-01-29 17:40:16
6554
转载 java direct buffer VS non-direct buffer
原文:http://eyesmore.iteye.com/blog/1133335在java NIO中,有两种不同的buffer:direct buffer和non-direct buffer。所谓direct buffer,就是指直接在底层分配的缓存(比如操作系统内核缓存),而non-direct buffer就是在java堆中分配的缓存,即heap buffer。1、 劣势:创建和
2012-01-18 14:59:56
2101
原创 豆瓣备份工具
其实很早很早以前就想写了,并且已经完成了豆瓣API的C#的OAUTH测试代码。这两天刚好闲着,就把这个写出来了。昨天写了个Console版的,今天改了一下,改成winforms了。界面很简单,如下图:所有的东西都在配置文件里,主要包括:accesstoken:这个初始为空,需要通过oauth认证之后才能得到accesstokensecret:同上apikey: 豆瓣API的ap
2012-01-18 13:15:49
1950
转载 hive lateral view语句
原文地址:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+LateralView#lateral view用于和split, explode等UDTF一起使用,它能够将一列数据拆成多行数据,在此基础上可以对拆分后的数据进行聚合。一个简单的例子,假设我们有一张表pageAds,它有两列数据,第一列是pagei
2012-01-12 14:11:46
23654
转载 统计语言模型(SLM)
摘自:http://ir.ict.ac.cn/~wangbin/ircourse/index.htm 第12讲SLM广泛使用于语音识别和统计机器翻译领域,利用概率统计理论研究语言。规则方法:词、句、篇章的生成比如满足某些规则,不满足该规则就不应存在。统计方法:任何语言片断都有存在的可能,只是可能性大小不同对于一个文档片段d=w1w2…wn,统计语言模型是指概率P(w
2012-01-04 20:10:33
2887
转载 分类器的测试和验证
转载自:《数据挖掘:实用机器学习技术》在使用分类算法的时候,通常需要去验证分类算法的准确性。最简单常用的方法就是将数据划分成三部分:训练集,验证集,测试集。训练集用于创建分类器,验证集用于优化或调整分类器的参数,而测试集用于计算优化的分类器的误差率。一旦误差率确定,就可以将测试集合并到训练集中,将由此产生的新分类器用于实践。上述方法在对于大数据集的时候可以采用,然而,如果数据集不是很大
2011-12-27 11:23:30
3282
原创 VIM翻页
好土鳖啊,现在才知道。。。Ctrl + F:向下翻一页Ctrl + B:向上翻一页Ctrl + u :向上翻半页Ctrl + d :向下翻半页{ 和 } 是跳段落(即找空行),如果文件没有空行,那就直接跳到头和尾了
2011-12-23 15:33:34
2578
转载 shell基础
1. 变量VARNAME=valueexport VARNAME=value:导出环境变量输出变量:echo $VARNAMEecho ${VARNAME}2. 命令代换:'或$()DATE=`date`DATE=$(date)3. 算术代换:$(())VAR=300VAR2=$(($VAR+3))4. 单引号保留
2011-12-21 20:55:33
653
转载 数据的标准化
原文:http://webdataanalysis.net/data-analysis-method/data-normalization/ 数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。 其中最典型的就是数据的
2011-12-16 15:06:52
1291
原创 几个基础概念
极差:range = max -min方差:更适合离散趋势的描述标准差变异系数:标准差/均值,值越大,离散程度越大切比雪夫定理:在任何一个数据集中,至少有(1- 1/z^2)的数据项与平均数的距离在z个标准差之内,其中z是任意大于1的值定理含义:1. 至少有75%的数据项与平均数的距离在2个标准差之内2. 至少有89%的数据项与平均数的距离在3个标准差之内
2011-12-13 01:12:48
650
转载 Hadoop reduce多个输出
转自:Hadoop in Action在hadoop中,想要reduce支持多个输出,有两种实现方式。第一种就是继承MultipleTextOutputFormat类,重写generateFileNameForKey方法。public static class PartitionByCountryMTOF extends MultipleTextOutputFormat
2011-12-05 14:18:11
4293
原创 mahout使用KMeans算法
mahout提供了内存中和分布式的两种KMeans聚类实现。下面是内存中KMeans的代码示例,示例代码使用了最简单的一维向量作为输入: /** * Tests KMeans cluster algorithm in memory, note the test uses only 1-D vector * i.e., a vector of a single do
2011-12-01 12:59:17
5341
原创 mahout使用PFP和FPG算法
mahout提供了内存中的FPG和分布式的PFP两种算频繁项集的方法,其中PFP实现上也是将feature分组,然后在节点上独立地运行FPG算法。PFP默认分组为50,如果项的数量特别多,可能需要考虑修改这个值。先来看一下mahout 0.5的FPG测试代码: public void testMaxHeapFPGrowth() throws Exception { FPGr
2011-12-01 12:24:41
5067
原创 hive动态分区
在hive中,有时候会希望根据输入的key,把结果自动输出到不同的目录中,这可以通过动态分区来实现,就是把每一个key当作一个分区,代码示例如下:set hive.exec.dynamic.partition=true;set hive.exec.dynamic.partition.mode=nonstrict;set hive.exec.dynamic.partitions.pern
2011-11-30 20:00:33
6543
原创 maven学习笔记
生命周期:clean:包含了pre-clean, clean和post-clean三个过程。其中clean阶段会删除整个构建的输出(通常就是target目录的输出)若执行mvn clean:clean,则不会执行完整的生命周期。default:从validate开始,经过一系列阶段,包括compile, test-compile, test, package, inst
2011-11-26 15:53:34
751
转载 Hadoop读取sequencefile和textfile文件内容
读取sequencefile,其中MockReporter是从Reporter接口派生出的一个假的reporter,它什么也不做(只实现那些接口): public static List parseSequenceFile(String path) throws IOException { List result = new ArrayList();
2011-11-25 10:37:06
6510
原创 python使用crontab执行hadoop相关任务
由于公司hadoop云梯组有磁盘和文件配额限制,一旦超过限制,作业就不能正常跑了。所以我就写了一个定时扫描集群文件的python脚本。无非也就是能过执行一些hadoop fs -ls, hadoop fs -du这类的命令,得到HDFS目录下文件/空间的情况。脚本在正常情况下执行没有问题,但是一放到crontab里就出错,没有任何输出。经过定位,发现是stdout, stdin, stderr
2011-11-18 12:00:58
2662
原创 vim多buffer的查找替换
:bufdo %s/aaa/bbb/ge | update注意最后的 | update是指,替换了之后自动保存,不然的话,替换完一个文件,vim就会报错,说当前buffer没有保存,停止继续替换了。替换参数e是指如果没有找到匹配不报错。
2011-09-14 16:00:54
1978
原创 python多进程编程
部分转载自:http://www.ibm.com/developerworks/cn/aix/library/au-multiprocessing/ Python 实现线程式编程非常简单,但是这种方法的一个缺陷就是它并不总是能够提高应用程序的速度,因为全局解释器锁(Glo
2011-09-02 10:30:19
7197
转载 python装饰器
原文:http://www.cnblogs.com/huxi/archive/2011/03/01/1967600.html 写得不错,直接转过来了~~今天来讨论一下装饰器。装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志、性能测试、
2011-08-19 12:39:08
947
原创 Hadoop跑map-reduce任务时停滞不前的问题(二)
之前碰到过这个问题,是集群的配置问题。见http://blog.csdn.net/inte_sleeper/article/details/6572052今天又碰到这个问题啊,但是这次不是集群的问题了。。。调试了半天,发现其实是有一行输入数据特别巨大,一行数据10几M,而我的
2011-08-18 17:25:16
1374
原创 python中文编码详解
部分转自:http://www.cnblogs.com/huxi/archive/2010/12/05/1897271.html编码的历史1. ASCIIASCII(American Standard Code forInformation Interchange),是一种单字节的编码。计算机世界里一开始只有英文,而单字节可以表示256个不同的字符,可以表示所有的英文字符和
2011-08-10 16:50:14
11274
原创 python中mysql中文的读写
1. 设置mysql中的charset是UTF-8的,然后在python代码文件中设置#coding=utf-8。2. 使用MySQLdb连接数据库时,要加上charset='utf-8'的选项,不然它会以默认的编码去读取数据库的内容。确保了1和2之后,就能正常地读取中文
2011-08-10 12:44:29
10431
原创 python的web.py框架
有空看了一下Python的web.py框架,这个框架相对于django那种大玩意儿,显得轻量得多了,也简单得多。当然这也意味着,它的功能也比较简单。相比之下,缺点还是挺多的,比如缺少ORM,只对数据库操作做了很简单的封装。而django的ORM是相当完整而牛逼的;它的静态文件的访
2011-08-06 15:42:01
1498
原创 VIM的块复制
1. 普通模式下的复制只要把光标移动到要复制的行,然后按yy,即可复制整行。Nyy,其中N表示整数,即可复制从此行开始的N行。 dd是剪切整行。Ndd为剪切从此行开始的N行。 2.VISUAL模式下的复制普通模式下的复制有一个缺点,它只能复制整行,而不能复制一部分(或者是我
2011-07-22 11:00:19
4420
原创 Hadoop运行python作业时的依赖于其他库的问题
用hadoop streaming可以运行python写的map-reduce作业。但是如果map/reduce依赖于其他库呢?比如,map中依赖于我们自己写的一个库:hadoop_lib.py中的某些方法。这时在运行streaming作业的时候,如果还是像原来一样的命令行,就会
2011-07-18 17:31:59
2806
原创 Linux(CentOS)下把python脚本转化成可执行程序
在Windows下把python转化成可执行程序还是比较简单,用py2exe就可以了。Linux下比较方便的有这么几种:1. py2installer
2011-07-18 15:57:13
11717
原创 CentOS下编译64位的libpython2.6.so.1.0库
python下默认的python版本是2.4。如果你不幸用yum installpython26来安装了python2.6,虽然安装的时候不会有问题,但这时是不会有libpython2.6.so.1.0这个库的,即使安装了python-libs也没有用,这对于很多需要动态加载li
2011-07-18 14:57:12
7765
豆瓣备份工具
2013-02-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅