List of usage examples for org.apache.mahout.cf.taste.impl.recommender ItemAverageRecommender ItemAverageRecommender
public ItemAverageRecommender(DataModel dataModel) throws TasteException
From source file:edu.nudt.c6.datasetlinking.mahout.MyRecommenderBuilder.java
License:Apache License
@Override public Recommender buildRecommender(DataModel dataModel) throws TasteException { if (recommenderType == RECOMMENDER.ITEM) { ItemSimilarity itemSimilarity = null; switch (similarityType) { case PEARSON: itemSimilarity = new PearsonCorrelationSimilarity(dataModel); break; case PEARSON_WEIGHTED: itemSimilarity = new PearsonCorrelationSimilarity(dataModel, Weighting.WEIGHTED); break; case COSINE: itemSimilarity = new UncenteredCosineSimilarity(dataModel); break; case TANIMOTO: itemSimilarity = new TanimotoCoefficientSimilarity(dataModel); break; case LOGLIKELIHOOD: itemSimilarity = new LogLikelihoodSimilarity(dataModel); break; case CITYBLOCK: itemSimilarity = new CityBlockSimilarity(dataModel); break; case EUCLIDEAN: itemSimilarity = new EuclideanDistanceSimilarity(dataModel); break; case EUCLIDEAN_WEIGHTED: itemSimilarity = new EuclideanDistanceSimilarity(dataModel, Weighting.WEIGHTED); break; case DATASET_VOCABULARY_COSINE: try { itemSimilarity = new DatasetVocabularySimilarity(dataModel); } catch (ClassNotFoundException | IOException e) { // TODO Auto-generated catch block e.printStackTrace();//from ww w.j ava 2 s. co m } break; case DATASET_CLASS_COSINE: try { itemSimilarity = new DatasetClassSimilarity(dataModel); } catch (ClassNotFoundException | IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } break; case DATASET_PPROPERTY_COSINE_SUBJECTS: try { itemSimilarity = new DatasetPropertySubjectsSimilarity(dataModel); } catch (ClassNotFoundException | IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } break; case DATASET_PPROPERTY_COSINE_TRIPLES: try { itemSimilarity = new DatasetPropertyTriplesSimilarity(dataModel); } catch (ClassNotFoundException | IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } break; default: itemSimilarity = new EuclideanDistanceSimilarity(dataModel); } if (pref) { return new GenericItemBasedRecommender(dataModel, itemSimilarity); } else { return new GenericBooleanPrefItemBasedRecommender(dataModel, itemSimilarity); } } else if (recommenderType == RECOMMENDER.USER) { UserSimilarity userSimilarity = null; switch (similarityType) { case PEARSON: userSimilarity = new PearsonCorrelationSimilarity(dataModel); break; case PEARSON_WEIGHTED: userSimilarity = new PearsonCorrelationSimilarity(dataModel, Weighting.WEIGHTED); break; case COSINE: userSimilarity = new UncenteredCosineSimilarity(dataModel); break; case SPEARMAN: userSimilarity = new SpearmanCorrelationSimilarity(dataModel); break; case TANIMOTO: userSimilarity = new TanimotoCoefficientSimilarity(dataModel); break; case LOGLIKELIHOOD: userSimilarity = new LogLikelihoodSimilarity(dataModel); break; case CITYBLOCK: userSimilarity = new CityBlockSimilarity(dataModel); break; case EUCLIDEAN: userSimilarity = new EuclideanDistanceSimilarity(dataModel); break; case EUCLIDEAN_WEIGHTED: userSimilarity = new EuclideanDistanceSimilarity(dataModel, Weighting.WEIGHTED); break; case DATASET_VOCABULARY_COSINE: try { userSimilarity = new DatasetVocabularySimilarity(dataModel); } catch (ClassNotFoundException | IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } break; case DATASET_CLASS_COSINE: try { userSimilarity = new DatasetClassSimilarity(dataModel); } catch (ClassNotFoundException | IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } break; case DATASET_PPROPERTY_COSINE_SUBJECTS: try { userSimilarity = new DatasetPropertySubjectsSimilarity(dataModel); } catch (ClassNotFoundException | IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } break; case DATASET_PPROPERTY_COSINE_TRIPLES: try { userSimilarity = new DatasetPropertyTriplesSimilarity(dataModel); } catch (ClassNotFoundException | IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } break; default: userSimilarity = new EuclideanDistanceSimilarity(dataModel); } UserNeighborhood userNeighborhood = null; switch (neighborhoodType) { case NEAREST: userNeighborhood = new NearestNUserNeighborhood(this.nearestNum, userSimilarity, dataModel); break; case THRESHOLD: default: userNeighborhood = new ThresholdUserNeighborhood(this.neighborThreshold, userSimilarity, dataModel); } if (pref) { return new GenericUserBasedRecommender(dataModel, userNeighborhood, userSimilarity); } else { return new GenericBooleanPrefUserBasedRecommender(dataModel, userNeighborhood, userSimilarity); } } else if (recommenderType == RECOMMENDER.SVD) { AbstractFactorizer factorizer = null; switch (SVDfactorizerType) { case RatingSGD: factorizer = new RatingSGDFactorizer(dataModel, factorNum, iterationNum); break; case ALSWR: factorizer = new ALSWRFactorizer(dataModel, factorNum, lambda, iterationNum); break; case SVDPlusPlus: factorizer = new SVDPlusPlusFactorizer(dataModel, factorNum, iterationNum); break; case ParallelSGD: factorizer = new ParallelSGDFactorizer(dataModel, factorNum, lambda, iterationNum); break; case MyRatingSGD: factorizer = new MyRatingSGDFactorizer(dataModel, factorNum, iterationNum); break; } return new SVDRecommender(dataModel, factorizer); } else if (recommenderType == RECOMMENDER.LINKDOCUMENT) { } else if (recommenderType == RECOMMENDER.CollaborativeRanking) { AbstractCRFactorizer factorizer = null; switch (CRFactorizerType) { case BasicLFM: try { factorizer = new BasicLFMFactorizer(dataModel, factorNum, iterationNum); } catch (ClassNotFoundException | IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } break; case LFMTrans: try { factorizer = new LFMTransFactorizer(dataModel, factorNum, iterationNum, learningRate); } catch (ClassNotFoundException | IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } break; } return new CollaborativeRankingRecommender(dataModel, factorizer); } else if (recommenderType == RECOMMENDER.Random) { return new RandomRecommender(dataModel); } else if (recommenderType == RECOMMENDER.ItemAverage) { return new ItemAverageRecommender(dataModel); } else if (recommenderType == RECOMMENDER.ItemUserAverage) { return new ItemUserAverageRecommender(dataModel); } return null; }
From source file:norbert.mynemo.core.recommendation.recommender.BasicRecommender.java
License:Apache License
@Override public Recommender buildRecommender(DataModel dataModel) throws TasteException { switch (recommender) { case ITEM_AVERAGE: return new ItemAverageRecommender(dataModel); case RANDOM://from w w w .ja v a2s . c om return new RandomRecommender(dataModel); case USER_AVERAGE: return new ItemUserAverageRecommender(dataModel); default: throw new IllegalStateException(); } }