Example usage for org.apache.mahout.cf.taste.common Weighting UNWEIGHTED

List of usage examples for org.apache.mahout.cf.taste.common Weighting UNWEIGHTED

Introduction

In this page you can find the example usage for org.apache.mahout.cf.taste.common Weighting UNWEIGHTED.

Prototype

Weighting UNWEIGHTED

To view the source code for org.apache.mahout.cf.taste.common Weighting UNWEIGHTED.

Click Source Link

Usage

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);
}