win7基于mahout推荐之用户相似度计算
http://www.douban.com/note/319219518/?type=like
win7基于mahout推荐之用户相似度计算
linux实在是hold不住啊,最后放弃了,可是最近计算用户相似度,实在是喜欢mahout 的开源,硬着头皮使用win7,+eclipse+maven+mahout0.8,下了好多东西;
网站:mahout下载网站
上面的东西基本都下载完了,可是怎么安装又成了问题,我已经在电脑上安装了maven3.1
但是直接使用maven导入到eclipse还是又问题,各种红叉,几个有用的网址:
其中遇到的问题有:
1,mvn install的时候不能下载;解决方法:安装代理:这里的原因是我使用的学校的网络可能会屏蔽一些网址,具体看一下http://www.cnblogs.com/chenying99/archive/2013/06/09/3127930.html我使用的是第三种方法。见下面详情‘
2,最简单的一个例子,http://blog.csdn.net/aidayei/article/details/6626699
按照他的方法,可以直接使用mahout 但是我没有找到怎样加入javadoc,即查看源码,所以最后放弃了~
3,使用Loglikelihood 对数似然相似度计算,因为在http://www.oschina.net/question/780962_125354
和http://www.cnblogs.com/dlts26/archive/2012/06/20/2555772.html
还有:http://www.oschina.net/question/780962_130015
中分别介绍的了各种相似度计算,我的数据是用户选择参与或者不参与所以最合适的应该是使用对数似然相似度计算;
上面的3个网站是对对数似然相似度的解释。
4,代码:
@Test
public void testCorrelationUserSimilarity() throws Exception {
// step:1 构建模型 2 计算相似度 3 查找k紧邻 4 构造推荐引擎
//-Xms1024m -Xmx1024m
DataModel model =new FileDataModel(new File("./data/core_userNo_eventNo.txt"));//文件名一定要是绝对路径
UserSimilarity similarityLog =new LogLikelihoodSimilarity(model);
for(int i =1;i<=500;i++){
for(int j =i+1;j<=500;j++){
System.out.println("用户"+i+"和"+j+"的相似度:"+similarityLog.userSimilarity(i, j));
}
}
UserNeighborhood neighborhood =new NearestNUserNeighborhood(2,similarityLog,model);
Recommender recommender= new GenericUserBasedRecommender(model,neighborhood,similarityLog);
List<RecommendedItem> recommendations =recommender.recommend(1, 2);//为用户1推荐两个ItemID
for(RecommendedItem recommendation :recommendations){
// System.out.println(recommendation);
}
}
5,结果:
![]() |
|
发现之间要么没有NaN,要么相似度还是很大》。。。看懂原理吧
|
----------------------------------------------------
第三种:设置HTTP代理
有时候你所在的公司由于安全因素考虑,要求你使用通过安全认证的代理访问因特网或无法访问。这种情况下,就需要为Maven配置HTTP代理,才能让它正 常访问外部仓库,以下载所需要的资源。 首先确认自己无法直接访问公共的Maven中央仓库,直接运行命令ping repo1.maven.org可以检查网络。如果真的需要代理,先检查一下代理服务器是否畅通,比如现在有一个IP 地址为218.14.227.197,端口为3128的代理服务,我们可以运行telnet 218.14.227.197 3128来检测该地址的该端口是否畅通。如果得到出错信息,需要先获取正确的代理服务信息;如果telnet 连接正确,则输入ctrl+],然后q,回车,退出即可。 检查完毕之后,编辑~/.m2/settings.xml文件(如果没有该文件,则复 制$M2_HOME/conf/settings.xml)。添加代理配置如下:
<settings>
-----------
<proxies>
<proxy>
<id>my-proxy</id>
<active>true</active>
<protocol>http</protocol>
<host>218.14.227.197</host>
<port>3128</port>
<!--
<username>***</username>
<password>***</password>
<nonProxyHosts>repository.mycom.com|*.google.com</nonProxyHosts>
-->
</proxy>
</proxies>
-----------------
</settings>
这段配置十分简单,proxies下可以有多个proxy元素,如果你声明了多个proxy元素,则默认情况下第一个被激活的proxy会生效。这里声明 了一个id为my-proxy的代理,active的值为true 表示激活该代理,protocol表示使用的代理协议,这里是http。当然,最重要的是指定正确的主机名(host 元素)和端口(port 元素)。上述XML配置中我注释掉了username、password、nonProxyHost几个元素,当你的代理服务需要认证时,就需要配置 username和password。nonProxyHost元素用来指定哪些主机名不需要代理,可以使用 | 符号来分隔多个主机名。此外,该配置也支持通配符,如*.google.com表示所有以google.com结尾的域名访问都不要通过代理
6.加入javadoc ,下载mahout-distribution-0.8-src.zip 大概12m,添加到javadoc 搞定;
怎样关联呢?http://blog.csdn.net/moruihong/article/details/7687365
win7基于mahout推荐之用户相似度计算的更多相关文章
- Note3 :《集体智慧编程》用户相似度计算
欧几里德距离评价: 以经过人们一致评价的物品为坐标轴,然后将参与评价的人绘制到图上,并考察他们彼此之间的距离远近.计算出每一轴向上的差值,求平方之后再相加,最后对总和取平方根. # -*- codin ...
- 基于Mahout的电影推荐系统
基于Mahout的电影推荐系统 1.Mahout 简介 Apache Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域 ...
- 基于MapReduce的(用户、物品、内容)的协同过滤推荐算法
1.基于用户的协同过滤推荐算法 利用相似度矩阵*评分矩阵得到推荐列表 已经推荐过的置零 2.基于物品的协同过滤推荐算法 3.基于内容的推荐 算法思想:给用户推荐和他们之前喜欢的物品在内容上相似的物品 ...
- Spark Mllib里相似度度量(基于余弦相似度计算不同用户之间相似性)(图文详解)
不多说,直接上干货! 常见的推荐算法 1.基于关系规则的推荐 2.基于内容的推荐 3.人口统计式的推荐 4.协调过滤式的推荐 协调过滤算法,是一种基于群体用户或者物品的典型推荐算法,也是目前常用的推荐 ...
- Mahout推荐算法API详解
转载自:http://blog.fens.me/mahout-recommendation-api/ Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, ...
- 转】Mahout推荐算法API详解
原博文出自于: http://blog.fens.me/mahout-recommendation-api/ 感谢! Posted: Oct 21, 2013 Tags: itemCFknnMahou ...
- [转]Mahout推荐算法API详解
Mahout推荐算法API详解 Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeepe ...
- Mahout推荐算法API具体解释【一起学Mahout】
阅读导读: 1.mahout单机内存算法实现和分布式算法实现分别存在哪些问题? 2.算法评判标准有哪些? 3.什么会影响算法的评分? 1. Mahout推荐算法介绍 Mahout推荐算法,从数据处理能 ...
- 从源代码剖析Mahout推荐引擎
转载自:http://blog.fens.me/mahout-recommend-engine/ Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pi ...
随机推荐
- 【转载】GetDeviceCaps()函数相关说明
CDC::GetDeviceCaps()物理长度与屏幕像素间的转换 作用:读取DC的一些打印区域信息,主要是像素和英寸方面的数据. 声明:GetDeviceCaps(int ) 使用例子://所有像素 ...
- 11、Redis的持久化(RDB、AOF)
写在前面的话:读书破万卷,编码如有神 --------------------------------------------------------------------------------- ...
- 使用 IntraWeb (1) - 先测试如何部署为 Asp.Net 的应用
IntraWeb 14 可以部署为 Asp.Net 的应用程序, 需要 NET Framework 4.5 和 ASP.NET MVC 4 或之上版本的支持; 这下, 只能用虚拟主机的朋友有福了! 我 ...
- HTML5中的跨文档消息传递
跨文档消息传送(cross-document messaging),有时候也简称为XDM,指的是来自不同域的页面间传递消息.例如,www.w3cmm.com域中的一个页面与一个位于内嵌框架中的p2p. ...
- 中国移动CMPP协议、联通SGIP协议、电信SMGP协议短信网关
移动cmpp协议 英文缩写:CMPP (China Mobile Peer to Peer) 中文名称:中国移动通信互联网短信网关接口协议 说明:为中国移动通信集团公司企业规范.规范中描述了中国移动短 ...
- Go Session 使用简介
6.session和数据存储 6.1 session和cookie 6.2 Go如何使用session 6.3 session存储 6.4 预防session劫持 6.5 小结
- Delphi XE2 compiler performance
原文: http://blog.barrkel.com/2011/10/delphi-xe2-compiler-performance.html Delphi XE2 compiler perform ...
- future封装了callable,thread封装future。
三.使用Callable,Future返回结果 总结:future封装了callable,thread封装future.将callable的返回结果封装在future中,thread封装future, ...
- UIWindow 介绍:概述、作用、主要属性及方法
概述: UIWindow 类是 UIView 的子类,用于管理.协调应用中显示的窗口,其两个最重要的职能就是 容器,给 view 提供展示的区域: 将事件(例如:点击事件.拖拉事件等)分发给 view ...
- arcgis10.1安装出现1606错误怎么办?找不到盘符
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ESRIHKEY_LOCAL_MACHINE\SOFTWARE\ESRIHKEY_CURRENT_USER\Softwa ...
