Mahort共同推薦の簡単な例

3476 ワード

上の文章は共同で濾過するインストールと配置を紹介して、このはいくつかの共同で濾過する簡単な例を探して、見てみます.
Mahortは、強力な協同フィルタアルゴリズムを提供してくれます.新たにMavenベースのプロジェクトを作成する必要があります.
pom.xmlは導入するカバンが必要です.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <groupId>mahouttest</groupId>

  <artifactId>mahouttest</artifactId>

  <version>0.0.1-SNAPSHOT</version>

  <packaging>jar</packaging>

  <name>mahouttest</name>

  <url>http://maven.apache.org</url>

  <properties>

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

  </properties>

  <dependencies>

    <dependency>

      <groupId>junit</groupId>

      <artifactId>junit</artifactId>

      <version>4.8.1</version>

      <scope>test</scope>

    </dependency>

    <dependency>

    	<groupId>org.apache.mahout</groupId>

    	<artifactId>mahout-core</artifactId>

    	<version>0.8-SNAPSHOT</version>

    	<type>jar</type>

    	<scope>compile</scope>

    </dependency>

  </dependencies>

ここで導入したのは最新のMahoustバッグです.地元のMavenライブラリにインストールする必要があります.
まずテストのデータを用意しなければなりません. in action』の例:
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协同推荐简单实例
Mahoustの三つの異なる推奨コードを使って、先ほど提供したデータを実行します.Mahoustの推奨インターフェースを見てみます.
どう使いますか
1.ユーザーの共同推薦に基づくコード:
DataModel  model =new FileDataModel(new File("data/intro.csv"));

UserSimilarity similarity =new PearsonCorrelationSimilarity(model);

UserNeighborhood neighborhood =new NearestNUserNeighborhood(2,similarity,model);

Recommender recommender= new GenericUserBasedRecommender(model,neighborhood,similarity);

List<RecommendedItem> recommendations =recommender.recommend(1, 1);

for(RecommendedItem recommendation :recommendations){

	System.out.println(recommendation);

}

実行後の結果は、RecommandedItem[item:104,value:4.257081]
2.Itemに基づく共同フィルタのコード:
DataModel  model =new FileDataModel(new File("data/intro.csv"));

ItemSimilarity similarity =new PearsonCorrelationSimilarity(model);

Recommender recommender= new GenericItemBasedRecommender(model,similarity);

List<RecommendedItem> recommendations =recommender.recommend(1, 1);

for(RecommendedItem recommendation :recommendations){

    System.out.println(recommendation);

}

実行後の結果は、RecommandedItem[item:104,value:5.0]
3.SlopeOne推奨アルゴリズム
DataModel  model =new FileDataModel(new File("data/intro.csv"));

Recommender recommender= new SlopeOneRecommender(model);

List<RecommendedItem> recommendations =recommender.recommend(1, 1);

for(RecommendedItem recommendation :recommendations){

    System.out.println(recommendation);

}

実行結果は、RecommandedItem[item:105,value:5.75]