欢迎喜欢深入了解推荐系统和mahout的兄弟加入群 推荐系统之Mahout 135918911
在讲解皮尔逊相关性之前我们先讲解一下z分数
z分数(z-score),也叫标准分数(standard score)是一个分数与平均数的差再除以标准差的过程。z分数可以回答这样一个问题:"一个给定分数距离平均数多少个标准差?"在平均数之上的分数会得到一个正的标准分数,在平均数之下的分数会得到一个负的标准分数。 z分数是一种可以看出某分数在分布中相对位置的方法。z分数能够真实的反应一个分数距离平均数的相对标准距离。如果我们把每一个分数都抓换成z分数,那么每一个z分数会以标准差为单位表示一个具体分数到平均数的距离或离差。将成正态分布的数据中的原始分数转换为z分数,我们就可以通过查阅z分数在正态曲线下面积的表格来得知平均数与z分数之间的面积,进而得知原始分数在数据集合中的百分等级。一个数列的各z分数的平方和等于该数列数据的个数,并且z分数的标准差和方差都为
总体z分数:z=(X-μ)/σ 其中X-μ为离均差,σ表示标准差
样本z分数:
理解皮尔逊相关的两个角度
其一, 按照高中数学水平来理解, 皮尔逊相关(Pearson Correlation Coefficient)很简单, 可以看做将两组数据首先做Z分数处理之后, 然后两组数据的乘积和除以样本数
Z分数一般代表正态分布中, 数据偏离中心点的距离.等于变量减掉平均数再除以标准差.(就是高考的标准分类似的处理)
标准差则等于变量减掉平均数的平方和,再除以样本数,最后再开方.
所以, 根据这个最朴素的理解,我们可以将公式依次精简为:
其二, 按照大学的线性数学水平来理解, 它比较复杂一点,可以看做是两组数据的向量夹角的余弦. 台湾学者黄富廷在论文中进行了详细介绍.
皮尔逊相关的约束条件
从以上解释, 也可以理解皮尔逊相关的约束条件:
* 两个变量间有线性关系
* 变量是连续变量
* 变量均符合正态分布,且二元分布也符合正态分布
* 两变量独立
在实践统计中,一般只输出两个系数,一个是相关系数,也就是计算出来的相关系数大小,在-1到1之间;另一个是独立样本检验系数,用来检验样本一致性.
手算的例子
使用维基相关中的例子:
例如,假设五个国家的国民生产总值分别是1、2、3、5、8(单位10亿美元),又假设这五个国家的贫困比例分别是11%、12%、13%、15%、18%。
创建2个向量.(R语言)
x<-c(1,2,3,5,8)
y<-c(0.11,0.12,0.13,0.15,0.18)
按照维基的例子,应计算出相关系数为1出来.我们看看如何一步一步计算出来的.
x的平均数是:3.8 y的平均数是0.138
所以,
sum((x-mean(x))*(y-mean(y)))=0.308
用大白话来写就是:
(1-3.8)*(0.11-0.138)=0.0784
(2-3.8)*(0.12-0.138)=0.0324
(3-3.8)*(0.13-0.138)=0.0064
(5-3.8)*(0.15-0.138)=0.0144
(8-3.8)*(0.18-0.138)=0.1764
0.0784+0.0324+0.0064+0.0144+0.1764=0.308
同理, 分号下面的,分别是:
sum((x-mean(x))^2)=30.8
sum((y-mean(y))^2)= 0.00308
用大白话来写,分别是:
(1-3.8)^2=7.84 #平方
(2-3.8)^2=3.24 #平方
(3-3.8)^2=0.64 #平方
(5-3.8)^2=1.44 #平方
(8-3.8)^2=17.64 #平方
7.84+3.24+0.64+1.44+17.64=30.8
同理,求得:
sum((y-mean(y))^2)= 0.00308
然后再开平方根,分别是:
30.8^0.5=5.549775
0.00308^0.5=0.05549775
用分子除以分母,就计算出最终结果:
0.308/(5.549775*0.05549775)=1
相关推荐
在Mahout中,MapReduce被用来并行化计算,处理大量数据以提高推荐算法的效率。Map阶段将输入数据拆分成键值对,Reduce阶段则根据相同的键聚合这些对,并执行必要的计算。 在使用Mahout和MapReduce进行推荐算法的...
1. **基于内容的推荐引擎**:这类推荐引擎主要依据用户以往的行为和偏好,寻找与之相似的内容进行推荐。例如,如果一位用户经常阅读历史类书籍,那么推荐引擎可能会推荐更多与此主题相关的新书给他。 2. **基于...
在给定文件的信息中,虽然科技情报开发与经济并非与标题“基于Hadoop和Mahout的分布式推荐引擎的设计”直接相关,但其中涉及的一些概念和知识点,例如分布式系统的设计与应用,仍然可以为设计分布式推荐引擎提供重要...
使用Mahout的`UserSimilarity`类计算用户之间的相似度,常见的相似度度量有皮尔逊相关系数(Pearson Correlation Coefficient)和余弦相似度(Cosine Similarity)。 ```java UserSimilarity similarity = new ...
3. 计算用户相似度:利用Mahout库提供的相似度计算方法(如皮尔逊相关系数)确定用户之间的相似性。 4. 生成推荐列表:根据用户相似度,为每个用户推荐他们可能感兴趣的未评分图书。 5. 用户界面展示:将推荐结果以...
相似度计算是数据分析和机器学习领域中的核心概念,主要用于比较两个数据对象的相似性或相关性。在推荐系统、文本挖掘、信息检索等场景中,它有着广泛的应用。以下是几种常见的相似度计算方法的详细说明: 1. **...
6. 配置推荐引擎的属性 在Mahout Taste Webapp的recommender.properties文件中,需要指定推荐算法的类,例如GroupLensRecommender。这是配置推荐系统行为的重要步骤。 7. 准备数据文件 Mahout Taste Webapp需要数据...
选择不同的用户相似度度量方法,这里选择了基于谷本系数、基于对数似然和基于曼哈顿距离 基于内容的推荐 对新闻文本进行分词 调用Deeplearning4j中构建paragraphvector的方法,通过doc2vec构建VSM 用Gensim会更方便...
本文将深入浅出地介绍Mahout的三个核心算法:聚类、分类和相似度计算,并结合实际案例帮助初学者快速入门。 首先,我们来了解**聚类算法**。聚类是无监督学习的一种,目标是将数据集中的对象按照某些相似性原则分成...
推荐引擎服务API Apache Mahout建议( )作为与dropwizard( )一起提供的RESTful Web服务。 要求 Java 1.7 Postgres数据库服务器(必需) 评分表或视图,例如“ user_id,item_id,评分...” 设置 使用您的设置...
Mahout关联推荐算法是Apache Mahout项目中的一种推荐系统算法,它基于用户的历史行为数据,通过挖掘用户之间的关联性来生成个性化的推荐。在Mahout中,关联推荐算法主要应用于发现用户行为模式,例如用户购买商品A后...
总结来说,构建推荐引擎涉及数据模型的建立、用户和物品相似度的计算、邻域的选择以及推荐策略的设计。这些组件相互配合,使得推荐引擎能够提供个性化的、有价值的建议,提升用户体验,同时也为企业创造商业价值。
《Mahout推荐算法实战》是一本深度探讨Apache Mahout库在推荐系统开发中的应用书籍。Apache Mahout是一个基于Hadoop的机器学习库,它提供了多种推荐算法,旨在帮助开发者构建大规模的数据挖掘和机器学习系统。这本书...
自定义文件模型Mahout 用于 mahout 推荐引擎的 CustomFileDataModel,它索引现实生活中的数据,即 UserId、ItemId 到与 mahout FileDataModel 兼容的 data(long)。
具体步骤,参见博客:http://blog.csdn.net/fufengrui/article/details/17022535
### Mahout机器学习领域分布式计算框架 #### 一、引言 随着大数据时代的到来,如何高效地处理和分析海量数据成为了一个重要的课题。Apache Mahout作为一款基于Hadoop的机器学习库,为解决这一问题提供了强大的工具...
总的来说,协同过滤算法在电影推荐系统中的应用依赖于有效的数据模型、相似度计算和用户邻域的确定,以及推荐引擎的实现。Apache Mahout 的 Taste 提供了一个强大的框架,使得开发者能够快速构建和优化推荐系统,...
这是这篇博文的工程代码,是MyEclipse的工程文件。...由于原工程开发的时候是在MyEclipse中引用mahout的jar包,所以这个压缩文件并没有相关的jar文件,故运行此项目之前需要做的事请,是需要导入mahout的开发包。