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. S2X环境搭建与示例运行

    S2X环境搭建与示例运行 http://dbis.informatik.uni-freiburg.de/forschung/projekte/DiPoS/S2X.html 环境 Maven proje ...

  2. Appium(JAVA)Windows 7系统搭建及示例运行

    Appium(JAVA)Windows 7系统搭建及示例运行 分类: Appium 2014-11-14 17:44 4323人阅读 评论(2) 收藏 举报 1.搭建Android环境 http:// ...

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

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

  4. 转载:官方Caffe-windows 配置与示例运行

    转载来自:http://blog.csdn.net/guoyk1990/article/details/52909864 本文主要介绍官方给出的caffe-windows的配置及如何训练mnist数据 ...

  5. 官方Caffe-windows 配置与示例运行

    http://blog.csdn.net/guoyk1990/article/details/52909864 标签: caffewindows配置训练自己的数据 2016-10-24 13:34 1 ...

  6. Flink快速入门--安装与示例运行

    flink是一款开源的大数据流式处理框架,他可以同时批处理和流处理,具有容错性.高吞吐.低延迟等优势,本文简述flink在windows和linux中安装步骤,和示例程序的运行. 首先要想运行Flin ...

  7. istio 安装与bookinfo示例运行

    目的 本文旨在帮助想了解istio安装和运行bookinfo示例的同学快速入门 前置准备 安装k8s和helm 1.k8s安装 修改主机名 hostnamectl set-hostname k8s-m ...

  8. Hama安装及示例运行

    Hama介绍 Apache Hama是一个纯BSP(Bulk Synchronous Parallel)计算框架,模仿了Google的Pregel.用来处理大规模的科学计算,特别是矩阵和图计算. BS ...

  9. Abp zero 示例运行

    https://aspnetboilerplate.com/Pages/Documents/Zero/Startup-Template-Core Introduction The easiest wa ...

随机推荐

  1. mybatis学习笔记(六) -- maven+spring+mybatis从零开始搭建整合详细过程(下)

    继续 mybatis学习笔记(五) -- maven+spring+mybatis从零开始搭建整合详细过程(上) 五.使用监听器启动Spring容器 1.修改pom.xml文件,添加Spring-we ...

  2. SNMP代理软件开发

    SNMP代理模块包括6个子模块: SNMP协议主要有五种报文get.get-next.set.get-response,trap.l.get-request操作:从代理进程处提取一个或多个参数值2.g ...

  3. 操作iframe 的方法与兼容性

    首先创建两个页面 //iframe1.html <!DOCTYPE html> <html lang="en"> <head> <meta ...

  4. qunar-dns

    去哪儿QInfra大会 IT大咖说 - 大咖干货,不再错过   http://www.itdks.com/eventlist/detail/1313

  5. android流量统计

    研究过一段时间的android流量统计发个自己的总结帖 1 android有一个TrafficStats类可以直接获取 总接受流量TrafficStats.getTotalRxBytes(), 总发送 ...

  6. 使用Puppeteer进行数据抓取(三)——简单的示例

    本文以一个示例简单的介绍一下puppeteer的用法,我们的目的是:获取我博客上的文章的前十页的所有随笔的标题和链接.由于puppeteer本身是自动化chorme,因此这里我们的步骤和手动操作浏览器 ...

  7. HDU 4738 Caocao's Bridges (2013杭州网络赛1001题,连通图,求桥)

    Caocao's Bridges Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  8. STM32 通用定时器的几种配置方式

    STM32 通用定时器的几种配置方式 //------------------------------------------------------------------------------ ...

  9. 【stanford C++】容器III——Vector类

    主要介绍如下5个容器类——Vector, Stack,Queue,Map和Set,各个都表示一重要的抽象数据类型.另外,各个类都是一些简单类型的值的集合,所以称它们为容器类. 暂且我们先不需要知道它们 ...

  10. delphi下实现ribbon界面的方法(一)

    http://www.cnblogs.com/shanmx/archive/2011/12/04/2275213.html