http://1992mrwang.blog.51cto.com/3265935/1205282

运行太不容易了 所以要记下来以免后面忘记了

首先是数据

vim testdata.txt

第一列为UserID ,第二列为ItemID,第三列为Preference Value 即评分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
1,101,5
1,102,3
1,103,2.5
2,101,2
2,102,2.5
2,103,5
2,104,2
3,101,2.5
3,104,4
3,105,4.5
3,107,5
4,101,5
4,103,3
4,104,4.5
4,106,4
5,101,4
5,102,3
5,103,2
5,104,4
5,105,3.5
5,106,4

新建立一个工程

导入 mahout包 mahout-core-0.7-job.jar

这样进行开发的时候就不会出现各种红叉叉  从编程心情上会更好一点

新建一个类 RecommenderIntro

代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import org.apache.mahout.cf.taste.impl.model.file.*;
import org.apache.mahout.cf.taste.impl.neighborhood.*;
import org.apache.mahout.cf.taste.impl.recommender.*;
import org.apache.mahout.cf.taste.impl.similarity.*;
import org.apache.mahout.cf.taste.model.*;
import org.apache.mahout.cf.taste.neighborhood.*;
import org.apache.mahout.cf.taste.recommender.*;
import org.apache.mahout.cf.taste.similarity.*;
import java.io.*;
import java.util.*;
public class RecommenderIntro {
    private RecommenderIntro(){}
                                                                                                                                                                         
    public static void main(String[] args) throws Exception {                 
        DataModel model = new FileDataModel(new File(
                "intro.csv")); // step:1 构建模型
        UserSimilarity similarity = new PearsonCorrelationSimilarity(model); // 2 计算相似度
        UserNeighborhood neighborhood = new NearestNUserNeighborhood(2,
                similarity, model); // 3 查找邻近
        Recommender recommender = new GenericUserBasedRecommender(model,
                neighborhood, similarity); // 4 构造推荐引擎
        List<RecommendedItem> recommendations = recommender.recommend(12);// 为用户1推荐两个ItemID
        for (RecommendedItem recommendation : recommendations) {
            System.out.println(recommendation);
        }
    }
}

这样就能够运行了

但是会报错 原因在于没有导入它所需要的所有包

在mahout当中 只要你正确安装了都会有他所需要的包

除了google的一个需要自己下

1
2
3
4
5
6
7
mahout-core-0.7-job.jar
slf4j-api-1.6.1.jar
slf4j-jcl-1.6.1.jar
google-collection-1.0-rc2.jar //这个找不到 然后需要自己下载一个 guava-r09.zip 用当中的 guava-r09.jar来解决这个google依赖问题
commons-logging-1.1.1.jar
mahout-math-0.7.jar
uncommons-maths-1.2.2.jar

然后就能够运行了

结果 应该是

1
2
3
4
5
6
7
8
9
10
2013-5-21 2:45:56 org.slf4j.impl.JCLLoggerAdapter info
信息: Creating FileDataModel for file /root/input/testMahout.txt
2013-5-21 2:45:56 org.slf4j.impl.JCLLoggerAdapter info
信息: Reading file info...
2013-5-21 2:45:56 org.slf4j.impl.JCLLoggerAdapter info
信息: Read lines: 21
2013-5-21 2:45:56 org.slf4j.impl.JCLLoggerAdapter info
信息: Processed 5 users
RecommendedItem[item:104, value:4.257081]
RecommendedItem[item:106, value:4.0]

总结:

主要是依赖问题解决用了比较长的时间

我用的ubuntu 下开发 所以在找包的时候 直接用 find | grep *** 在mahout 的安装目录下去寻找包

参考自:http://blog.csdn.net/aidayei/article/details/6626699

mahout0.7 示例运行纪实相关推荐

  1. ROS 学习笔记(三):自定义服务数据srv+server+client 示例运行

    ROS 学习笔记(三):自定义服务数据srv+Server+Client 示例运行 一.自定义服务数据: 1.向功能包添加自定义服务文件(AddTwoInts.srv) cd ~/catkin_ws/ ...

  2. ROS 学习笔记(二):自定义消息msg+Publisher+Subscriber 示例运行

    ROS 学习笔记(二):自定义消息msg+Publisher+Subscriber 示例运行 一.自定义消息: 1.新建msg文件夹,创建定义Person.msg 文件 mkdir -p ~/catk ...

  3. 沁恒CH32F103C8T6(一): Keil5环境配置,示例运行和烧录

    目录 沁恒CH32F103C8T6(一): Keil5环境配置,示例运行和烧录 沁恒CH32F103C8T6(二): Linux PlatformIO环境配置, 示例运行和烧录 沁恒CH32F103C ...

  4. 沁恒CH32F103C8T6(二): Linux PlatformIO环境配置, 示例运行和烧录

    目录 沁恒CH32F103C8T6(一): Keil5环境配置,示例运行和烧录 沁恒CH32F103C8T6(二): Linux PlatformIO环境配置, 示例运行和烧录 沁恒CH32F103C ...

  5. 【DDSCAT——离散偶极近似仿真程序10】DDSCAT内置示例运行结果

    此部分我们整理了DDSCAT 7.3.0 Examples中所有的示例的单波长运行结果,并对vtr文件进行了可视化. 对于所有的示例文件,只有个别的ddscat.par中设定了1 = NRFLD,即进 ...

  6. 【气象水文】WRF示例运行与后处理软件

    [目的]用于备忘WRF的安装过程,记录所遇到问题与解决方式: [安排]该内容分为三个部分:WRF模型安装.示例运行.可视化环境配置. [操作系统与软件]Windows系统与其子系统Ubuntu系统 [ ...

  7. 【Android 插件化】DroidPlugin 编译运行 ( DroidPlugin 简介 | 编译 DroidPlugin 官方示例 | 运行 DroidPlugin 官方示例 )

    文章目录 一.DroidPlugin 简介 二.DroidPlugin 编译运行 1.编译 DroidPlugin 官方示例 2.运行 DroidPlugin 官方示例 一.DroidPlugin 简 ...

  8. 【错误记录】Tinker 热修复示例运行报错 ( Execution failed for task ‘:app:tinkerProcessD‘ . tinkerId is not set!!! )

    文章目录 一.报错信息 二.问题分析 三.解决方案 1.解决方案 1 2.解决方案 2 一.报错信息 运行 tinker 官方示例 https://github.com/Tencent/tinker/ ...

  9. 学习笔记:Maxent的示例运行及部分结果解释

    文件准备 Samples文件 .csv格式 通常为三列,分别为"物种"."经度"."纬度" Tips: 默认情况下会删除重复项(同一网格单元 ...

最新文章

  1. 几种常用的C#排序方法简介
  2. 微分求积:复化梯形、复化辛浦生
  3. 【今日互联网大事儿】小米净化器出来了呢
  4. 【收藏】Spark之RDD的mapPartitions算子
  5. 爬取了京东商城上的部分手机评论数据,仅供学习使用
  6. linux boot procedure
  7. Python 辨异 —— __init__ 与 __new__
  8. ArrayList和LinkedList(转)
  9. 机器学习基础---超参数和验证集
  10. SQLCLR(一)入门
  11. jQuery 查找父元素
  12. mysql加密复制_MySQL主从复制使用SSL加密
  13. android开发根据分辨率设置高度,【android】根据屏幕分辨率设置底栏高度
  14. java三色球问题_2020100期专业玩彩双色球走势分析
  15. svm python 多分类_机器学习之SVM多分类
  16. python读取xps文件_Python操作PDF-文本和图片提取(使用PyPDF2和PyMuPDF)
  17. Java中unicode占几个,Java语言使用的是Unicode字符集,每个字符在内存中占8位。()...
  18. 电子设计教程53:555定时器工作原理与常见应用
  19. 点对点视频分发:从早期互联网到ZB字节(Zettabyte)时代的分布式网络
  20. Linux常用命令汇总 - 近乎全量命令!

热门文章

  1. MySQL server has gone away 问题的解决方法
  2. 视频解码芯片SAA7111A的初始化
  3. liunx trac 插件使用之GanttCalendarPlugin
  4. 软件工程导论团队介绍——信科吴彦组
  5. Mysql数据类型TINYINT(1)与BOOLEAN踩坑记
  6. jhipster详解
  7. editor does not contain a main type的解决方案
  8. 蓝牙协议栈中的 OSAL
  9. javascript 获取图片原始尺寸
  10. HDU 4407 Sum(容斥原理+状态压缩)