`
davidxiaozhi
  • 浏览: 240001 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mahout推荐引擎相似度计算之皮尔逊相关性

阅读更多
欢迎喜欢深入了解推荐系统和mahout的兄弟加入群     推荐系统之Mahout  135918911
 
在讲解皮尔逊相关性之前我们先讲解一下z分数
 
z分数(z-score),也叫标准分数(standard score)是一个分数与平均数的差再除以标准差的过程。z分数可以回答这样一个问题:"一个给定分数距离平均数多少个标准差?"在平均数之上的分数会得到一个正的标准分数,在平均数之下的分数会得到一个负的标准分数。  z分数是一种可以看出某分数在分布中相对位置的方法。z分数能够真实的反应一个分数距离平均数的相对标准距离。如果我们把每一个分数都抓换成z分数,那么每一个z分数会以标准差为单位表示一个具体分数到平均数的距离或离差。将成正态分布的数据中的原始分数转换为z分数,我们就可以通过查阅z分数在正态曲线下面积的表格来得知平均数与z分数之间的面积,进而得知原始分数在数据集合中的百分等级。一个数列的各z分数的平方和等于该数列数据的个数,并且z分数的标准差和方差都为
总体z分数:z=(X-μ)/σ  其中X-μ为离均差,σ表示标准差
[1]     
样本z分数:

理解皮尔逊相关的两个角度

其一, 按照高中数学水平来理解, 皮尔逊相关(Pearson Correlation Coefficient)很简单, 可以看做将两组数据首先做Z分数处理之后, 然后两组数据的乘积和除以样本数

Z分数一般代表正态分布中, 数据偏离中心点的距离.等于变量减掉平均数再除以标准差.(就是高考的标准分类似的处理)

标准差则等于变量减掉平均数的平方和,再除以样本数,最后再开方.

所以, 根据这个最朴素的理解,我们可以将公式依次精简为:

alt text

其二, 按照大学的线性数学水平来理解, 它比较复杂一点,可以看做是两组数据的向量夹角的余弦. 台湾学者黄富廷在论文中进行了详细介绍.

皮尔逊相关的约束条件

从以上解释, 也可以理解皮尔逊相关的约束条件:

* 两个变量间有线性关系

* 变量是连续变量

* 变量均符合正态分布,且二元分布也符合正态分布

* 两变量独立

在实践统计中,一般只输出两个系数,一个是相关系数,也就是计算出来的相关系数大小,在-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  

 

0
0
分享到:
评论

相关推荐

    测试mahout推荐算法的数据集

    在Mahout中,MapReduce被用来并行化计算,处理大量数据以提高推荐算法的效率。Map阶段将输入数据拆分成键值对,Reduce阶段则根据相同的键聚合这些对,并执行必要的计算。 在使用Mahout和MapReduce进行推荐算法的...

    Mahout推荐系统

    1. **基于内容的推荐引擎**:这类推荐引擎主要依据用户以往的行为和偏好,寻找与之相似的内容进行推荐。例如,如果一位用户经常阅读历史类书籍,那么推荐引擎可能会推荐更多与此主题相关的新书给他。 2. **基于...

    基于Hadoop和Mahout的分布式推荐引擎的设计.pdf

    在给定文件的信息中,虽然科技情报开发与经济并非与标题“基于Hadoop和Mahout的分布式推荐引擎的设计”直接相关,但其中涉及的一些概念和知识点,例如分布式系统的设计与应用,仍然可以为设计分布式推荐引擎提供重要...

    mahout的基于用户的推荐Demo

    使用Mahout的`UserSimilarity`类计算用户之间的相似度,常见的相似度度量有皮尔逊相关系数(Pearson Correlation Coefficient)和余弦相似度(Cosine Similarity)。 ```java UserSimilarity similarity = new ...

    相似度计算

    相似度计算是数据分析和机器学习领域中的核心概念,主要用于比较两个数据对象的相似性或相关性。在推荐系统、文本挖掘、信息检索等场景中,它有着广泛的应用。以下是几种常见的相似度计算方法的详细说明: 1. **...

    如何成功运行Apache Mahout的Taste Webapp-Mahout推荐教程-Maven3.0.5-JDK1.6-Mahout0.5

    6. 配置推荐引擎的属性 在Mahout Taste Webapp的recommender.properties文件中,需要指定推荐算法的类,例如GroupLensRecommender。这是配置推荐系统行为的重要步骤。 7. 准备数据文件 Mahout Taste Webapp需要数据...

    人工智能-推荐系统-新闻推荐-基于Mahout的新闻推荐系统

    选择不同的用户相似度度量方法,这里选择了基于谷本系数、基于对数似然和基于曼哈顿距离 基于内容的推荐 对新闻文本进行分词 调用Deeplearning4j中构建paragraphvector的方法,通过doc2vec构建VSM 用Gensim会更方便...

    mahout 实例

    本文将深入浅出地介绍Mahout的三个核心算法:聚类、分类和相似度计算,并结合实际案例帮助初学者快速入门。 首先,我们来了解**聚类算法**。聚类是无监督学习的一种,目标是将数据集中的对象按照某些相似性原则分成...

    recommendationengine:Dropwizard + Apache Mahout推荐引擎

    推荐引擎服务API Apache Mahout建议( )作为与dropwizard( )一起提供的RESTful Web服务。 要求 Java 1.7 Postgres数据库服务器(必需) 评分表或视图,例如“ user_id,item_id,评分...” 设置 使用您的设置...

    mahout关联推荐算法

    Mahout关联推荐算法是Apache Mahout项目中的一种推荐系统算法,它基于用户的历史行为数据,通过挖掘用户之间的关联性来生成个性化的推荐。在Mahout中,关联推荐算法主要应用于发现用户行为模式,例如用户购买商品A后...

    mahout学习1---推荐引擎的构建1

    总结来说,构建推荐引擎涉及数据模型的建立、用户和物品相似度的计算、邻域的选择以及推荐策略的设计。这些组件相互配合,使得推荐引擎能够提供个性化的、有价值的建议,提升用户体验,同时也为企业创造商业价值。

    Mahout推荐算法实战

    《Mahout推荐算法实战》是一本深度探讨Apache Mahout库在推荐系统开发中的应用书籍。Apache Mahout是一个基于Hadoop的机器学习库,它提供了多种推荐算法,旨在帮助开发者构建大规模的数据挖掘和机器学习系统。这本书...

    CustomFileModelMahout:用于 mahout 推荐引擎的 CustomFileDataModel,它索引现实生活数据,即 UserId、ItemId 到与 mahout FileDataModel 兼容的 data(long)

    自定义文件模型Mahout 用于 mahout 推荐引擎的 CustomFileDataModel,它索引现实生活中的数据,即 UserId、ItemId 到与 mahout FileDataModel 兼容的 data(long)。

    实践《基于 Apache Mahout 构建社会化推荐引擎》

    具体步骤,参见博客:http://blog.csdn.net/fufengrui/article/details/17022535

    基于Java+Mahout的协同过滤推荐算法图书推荐系统源码+项目说明.zip

    最新版本,在原先手动计算皮尔逊相似度和评分矩阵的基础上添加了Mahout实现的协同过滤推荐算法。 【备注】 主要针对计算机相关专业的正在做毕设的学生和需要项目实战的Java学习者。 也可作为课程设计、期末大作业。...

    Mahout机器学习领域分布式计算框架

    ### Mahout机器学习领域分布式计算框架 #### 一、引言 随着大数据时代的到来,如何高效地处理和分析海量数据成为了一个重要的课题。Apache Mahout作为一款基于Hadoop的机器学习库,为解决这一问题提供了强大的工具...

    基于.协同过滤算法的电影推荐系统.docx

    总的来说,协同过滤算法在电影推荐系统中的应用依赖于有效的数据模型、相似度计算和用户邻域的确定,以及推荐引擎的实现。Apache Mahout 的 Taste 提供了一个强大的框架,使得开发者能够快速构建和优化推荐系统,...

    基于Mahout的电影推荐系统

    这是这篇博文的工程代码,是MyEclipse的工程文件。...由于原工程开发的时候是在MyEclipse中引用mahout的jar包,所以这个压缩文件并没有相关的jar文件,故运行此项目之前需要做的事请,是需要导入mahout的开发包。

    recommender:SpringBoot + Apache Mahout 推荐引擎 基于用户评分数据推荐相关电影

    在本项目中,我们主要探讨如何使用SpringBoot框架与Apache Mahout构建一个推荐系统,该系统专注于基于用户评分数据来推荐相关的电影。首先,让我们深入理解这个系统的各个组成部分。 **SpringBoot** SpringBoot是由...

Global site tag (gtag.js) - Google Analytics