List of usage examples for org.apache.mahout.cf.taste.common Weighting UNWEIGHTED
Weighting UNWEIGHTED
To view the source code for org.apache.mahout.cf.taste.common Weighting UNWEIGHTED.
Click Source Link
From source file:net.ufida.info.mahout.common.SlopeOneRecommender.java
License:Apache License
/** * <p>//from w ww .j a va 2 s .c om * Creates a based on the given {@link DataModel}. * </p> * * <p> * If {@code weighted} is set, acts as a weighted slope one recommender. This implementation also * includes an experimental "standard deviation" weighting which weights item-item ratings diffs with lower * standard deviation more highly, on the theory that they are more reliable. * </p> * * @param weighting * if {@link Weighting#WEIGHTED}, acts as a weighted slope one recommender * @param stdDevWeighting * use optional standard deviation weighting of diffs * @throws IllegalArgumentException * if {@code diffStorage} is null, or stdDevWeighted is set when weighted is not set */ public SlopeOneRecommender(DataModel dataModel, Weighting weighting, Weighting stdDevWeighting, DiffStorage diffStorage) { super(dataModel); Preconditions.checkArgument(stdDevWeighting != Weighting.WEIGHTED || weighting != Weighting.UNWEIGHTED, "weighted required when stdDevWeighted is set"); Preconditions.checkArgument(diffStorage != null, "diffStorage is null"); this.weighted = weighting == Weighting.WEIGHTED; this.stdDevWeighted = stdDevWeighting == Weighting.WEIGHTED; this.diffStorage = diffStorage; }
From source file:norbert.mynemo.core.recommendation.recommender.ItemSimilarityRecommender.java
License:Apache License
@Override public Recommender buildRecommender(DataModel dataModel) throws TasteException { checkArgument(dataModel != null, "Data model type must not be null."); ItemSimilarity similarity = null;/*from w w w . j av a2 s . c o m*/ switch (selectedSimilarity) { case ITEM_SIMILARITY_WITH_CITY_BLOCK_DISTANCE: similarity = new CityBlockSimilarity(dataModel); break; case ITEM_SIMILARITY_WITH_EUCLIDEAN_DISTANCE: similarity = new EuclideanDistanceSimilarity(dataModel, Weighting.UNWEIGHTED); break; case ITEM_SIMILARITY_WITH_LOG_LIKELIHOOD: similarity = new LogLikelihoodSimilarity(dataModel); break; case ITEM_SIMILARITY_WITH_PEARSON_CORRELATION: similarity = new PearsonCorrelationSimilarity(dataModel, Weighting.UNWEIGHTED); break; case ITEM_SIMILARITY_WITH_TANIMOTO_COEFFICIENT: similarity = new TanimotoCoefficientSimilarity(dataModel); break; case ITEM_SIMILARITY_WITH_UNCENTERED_COSINE: similarity = new UncenteredCosineSimilarity(dataModel, Weighting.UNWEIGHTED); break; case ITEM_SIMILARITY_WITH_WEIGHTED_EUCLIDEAN_DISTANCE: similarity = new EuclideanDistanceSimilarity(dataModel, Weighting.WEIGHTED); break; case ITEM_SIMILARITY_WITH_WEIGHTED_PEARSON_CORRELATION: similarity = new PearsonCorrelationSimilarity(dataModel, Weighting.WEIGHTED); break; case ITEM_SIMILARITY_WITH_WEIGHTED_UNCENTERED_COSINE: similarity = new UncenteredCosineSimilarity(dataModel, Weighting.WEIGHTED); break; default: throw new IllegalStateException(); } int cacheSize = Math.min(dataModel.getNumItems() * dataModel.getNumItems(), MAXIMUM_CACHE_SIZE); similarity = new CachingItemSimilarity(similarity, cacheSize); return new GenericItemBasedRecommender(dataModel, similarity); }
From source file:norbert.mynemo.core.recommendation.recommender.UserSimilarityRecommender.java
License:Apache License
private UserSimilarity createSimilarity(DataModel dataModel) throws TasteException { UserSimilarity selectedSimilarity;//from w w w . j a va2 s . c o m switch (configuration.getType()) { case USER_SIMILARITY_WITH_CITY_BLOCK_DISTANCE: selectedSimilarity = new CityBlockSimilarity(dataModel); break; case USER_SIMILARITY_WITH_EUCLIDEAN_DISTANCE: selectedSimilarity = new EuclideanDistanceSimilarity(dataModel, Weighting.UNWEIGHTED); break; case USER_SIMILARITY_WITH_LOG_LIKELIHOOD: selectedSimilarity = new LogLikelihoodSimilarity(dataModel); break; case USER_SIMILARITY_WITH_ORIGINAL_SPEARMAN_CORRELATION: selectedSimilarity = new OriginalSpearmanCorrelationSimilarity(dataModel); break; case USER_SIMILARITY_WITH_PEARSON_CORRELATION: selectedSimilarity = new PearsonCorrelationSimilarity(dataModel, Weighting.UNWEIGHTED); break; case USER_SIMILARITY_WITH_SPEARMAN_CORRELATION: selectedSimilarity = new SpearmanCorrelationSimilarity(dataModel); break; case USER_SIMILARITY_WITH_TANIMOTO_COEFFICIENT: selectedSimilarity = new TanimotoCoefficientSimilarity(dataModel); break; case USER_SIMILARITY_WITH_UNCENTERED_COSINE: selectedSimilarity = new UncenteredCosineSimilarity(dataModel, Weighting.UNWEIGHTED); break; case USER_SIMILARITY_WITH_WEIGHTED_EUCLIDEAN_DISTANCE: selectedSimilarity = new EuclideanDistanceSimilarity(dataModel, Weighting.WEIGHTED); break; case USER_SIMILARITY_WITH_WEIGHTED_PEARSON_CORRELATION: selectedSimilarity = new PearsonCorrelationSimilarity(dataModel, Weighting.WEIGHTED); break; case USER_SIMILARITY_WITH_WEIGHTED_UNCENTERED_COSINE: selectedSimilarity = new UncenteredCosineSimilarity(dataModel, Weighting.WEIGHTED); break; default: throw new IllegalStateException(); } int cacheSize = Math.min(dataModel.getNumUsers() * dataModel.getNumUsers(), MAXIMUM_CACHE_SIZE); return new CachingUserSimilarity(selectedSimilarity, cacheSize); }
From source file:recsys.similarity.TrueEuclideanDistanceSimilarity.java
License:Apache License
/** * @throws IllegalArgumentException//from w w w. java 2 s . c o m * if {@link DataModel} does not have preference values */ public TrueEuclideanDistanceSimilarity(DataModel dataModel) throws TasteException { this(dataModel, Weighting.UNWEIGHTED); }