Example usage for org.apache.mahout.cf.taste.impl.similarity EuclideanDistanceSimilarity EuclideanDistanceSimilarity

List of usage examples for org.apache.mahout.cf.taste.impl.similarity EuclideanDistanceSimilarity EuclideanDistanceSimilarity

Introduction

In this page you can find the example usage for org.apache.mahout.cf.taste.impl.similarity EuclideanDistanceSimilarity EuclideanDistanceSimilarity.

Prototype

public EuclideanDistanceSimilarity(DataModel dataModel, Weighting weighting) throws TasteException 

Source Link

Usage

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;//  w w w  .java2s . c  om
    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;// www.  ja  v  a 2  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);
}