http://www.douban.com/note/319219518/?type=like

win7基于mahout推荐之用户相似度计算

2013-12-03 09:19:11
 
 事情回到半年前,我想做关于推荐系统的东西,结果看到了强大的apache mahout,然后各种安装linux,hadoop,apache,mahout,taste,结局是,一个星期的努力,失败....
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推荐之用户相似度计算的更多相关文章

  1. Note3 :《集体智慧编程》用户相似度计算

    欧几里德距离评价: 以经过人们一致评价的物品为坐标轴,然后将参与评价的人绘制到图上,并考察他们彼此之间的距离远近.计算出每一轴向上的差值,求平方之后再相加,最后对总和取平方根. # -*- codin ...

  2. 基于Mahout的电影推荐系统

    基于Mahout的电影推荐系统 1.Mahout 简介 Apache Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域 ...

  3. 基于MapReduce的(用户、物品、内容)的协同过滤推荐算法

    1.基于用户的协同过滤推荐算法 利用相似度矩阵*评分矩阵得到推荐列表 已经推荐过的置零 2.基于物品的协同过滤推荐算法 3.基于内容的推荐 算法思想:给用户推荐和他们之前喜欢的物品在内容上相似的物品 ...

  4. Spark Mllib里相似度度量(基于余弦相似度计算不同用户之间相似性)(图文详解)

    不多说,直接上干货! 常见的推荐算法 1.基于关系规则的推荐 2.基于内容的推荐 3.人口统计式的推荐 4.协调过滤式的推荐 协调过滤算法,是一种基于群体用户或者物品的典型推荐算法,也是目前常用的推荐 ...

  5. Mahout推荐算法API详解

    转载自:http://blog.fens.me/mahout-recommendation-api/ Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, ...

  6. 转】Mahout推荐算法API详解

    原博文出自于: http://blog.fens.me/mahout-recommendation-api/ 感谢! Posted: Oct 21, 2013 Tags: itemCFknnMahou ...

  7. [转]Mahout推荐算法API详解

    Mahout推荐算法API详解 Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeepe ...

  8. Mahout推荐算法API具体解释【一起学Mahout】

    阅读导读: 1.mahout单机内存算法实现和分布式算法实现分别存在哪些问题? 2.算法评判标准有哪些? 3.什么会影响算法的评分? 1. Mahout推荐算法介绍 Mahout推荐算法,从数据处理能 ...

  9. 从源代码剖析Mahout推荐引擎

    转载自:http://blog.fens.me/mahout-recommend-engine/ Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pi ...

随机推荐

  1. HDU 5832 A water problem 水题

    A water problem 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5832 Description Two planets named H ...

  2. stm32的swd接口的烧写协议是否公开的呢?

    stm32的swd接口的烧写协议是否公开的呢? 需要用一台好的示波器来抓才能有足够的存储深度,保证你能够过滤掉那个该死的50clock. 按照Arm的手册,每次转换发送方都需要一个TNR---但是我观 ...

  3. systemtap 安装 总结

    http://blog.soul11201.com/notes/2017/02/22/systemstap-install.html

  4. 新玩的windows phone app studio

    其实我是一直想开发windows phone 8平台的应用的,奈何开始windows phone 8开发却是不是件容易的事.Windows phone 8的开发其实是对计算机的硬件有要求的,首先要装w ...

  5. Make the DbContext Ambient with UnitOfWorkScope(now named DbContextScope by mehdime)

    The Entity Framework DbContext (or LINQ-to-SQL DataContext) is a Unit Of Work implementation. That m ...

  6. delphiredisclient开源GIT

    delphiredisclient - Redis client for Delphi Delphi Redis Client版本2(此分支)与Delphi 10.1 Berlin兼容,更好.警告!如 ...

  7. 教你调用数据库读取短信 记事本 通讯录文件,让ios5的短信恢复到ios4

    由于高版本的ios固件向下恢复到低版固件时无法通过itunes恢复备份,所以一些数据,比如SMS需要通过提取文件的方式单独进行备份恢复特别是ios5的短信,之前很是头痛,直接将文件恢复到指定目录修改权 ...

  8. 西部世界第二季全集高清百度云在线观看BT种子迅雷下载

    原名:Westworld地区:美国语言:英语首播:2018-04-23 周一制作公司:HBO类型:科幻/惊悚/悬疑/西部别名:西方极乐园编剧:乔纳森·诺兰 / 丽莎·乔·诺兰导演:乔纳森·诺兰主演:埃 ...

  9. 数据更新后让ListView自动滚动到底部

    在做聊天界面的时候想要发送新的数据后,listview自动滚动到底部,显示出最新的数据.网上找了两个方法,觉得不错,记录一下. 方法一: 给listview添加下面两个属性 android:stack ...

  10. [Android Pro] 自己动手编译Android源码(超详细)

    cp from : https://www.jianshu.com/p/367f0886e62b 在Android Studio代码调试一文中,简单的介绍了代码调试的一些技巧.现在我们来谈谈andro ...