Mahout(二) Similarity和 Recommender 的继承层次机构

来源:互联网 发布:织梦cms加千牛云教程 编辑:程序博客网 时间:2024/06/07 16:34
usersimilarity

相似度similarity分为usersimilarity和itemsimilarity的interface

interface 继承层次如下

itemsimilarityinterface的继承层次如下

userinterface的继承层次如下

其中的AbstractSimilarity

abstract class AbstractSimilarity extends AbstractItemSimilarity implements UserSimilarity

 package org.apache.mahout.cf.taste.common;
 
 public interface Refreshable {
      void refresh(Collection<Refreshable> alreadyRefreshed);
 }
 
 package org.apache.mahout.cf.taste.similarity;
 
 public interface PreferenceInferrer extends Refreshable {
     float inferPreference(long userID, long itemID) throws TasteException;
 }
 
 
  public interface UserSimilarity extends Refreshable {
     double userSimilarity(long userID1, long userID2) throws TasteException;
     void setPreferenceInferrer(PreferenceInferrer inferrer);
 }
 
 
 public interface ItemSimilarity extends Refreshable{
     double itemSimilarity(long itemID1, long itemID2) throws TasteException;
     double[] itemSimilarities(long itemID1, long[] itemID2s) throws TasteException;
     long[] allSimilarItemIDs(long itemID) throws TasteException;
 }
 
 
 public abstract class AbstractItemSimilarity implements ItemSimilarity {
     @Override
     public long[] allSimilarItemIDs(long itemID) throws TasteException {}
     @Override
     public void refresh(Collection<Refreshable> alreadyRefreshed) {}
 }
 
 
 abstract class AbstractSimilarity extends AbstractItemSimilarity implements UserSimilarity {
      @Override
      public final void setPreferenceInferrer(PreferenceInferrer inferrer) {}
      @Override
      public double userSimilarity(long userID1, long userID2) throws TasteException {}
      @Override
      public final double itemSimilarity(long itemID1, long itemID2) throws TasteException {}
      @Override
      public double[] itemSimilarities(long itemID1, long[] itemID2s) throws TasteException {}
      @Override
      public final void refresh(Collection<Refreshable> alreadyRefreshed) {}
      @Override
      public final String toString() {}
      
      abstract double computeResult(int n, double sumXY, double sumX2, double sumY2, double sumXYdiff2);
}


Recommender interface继承层次如下

itemBasedRecommender和userbasedRecommender interface 继承自 Recommender 接口

0 0