本文整理汇总了Java中org.grouplens.lenskit.vectors.similarity.CosineVectorSimilarity类的典型用法代码示例。如果您正苦于以下问题:Java CosineVectorSimilarity类的具体用法?Java CosineVectorSimilarity怎么用?Java CosineVectorSimilarity使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
CosineVectorSimilarity类属于org.grouplens.lenskit.vectors.similarity包,在下文中一共展示了CosineVectorSimilarity类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getUserUserSimilarity
import org.grouplens.lenskit.vectors.similarity.CosineVectorSimilarity; //导入依赖的package包/类
/**
* Get the cosine similarity between user-user
* @param user1 user ID 1
* @param user2 user ID 2
* @return the cosine similarity
*/
private double getUserUserSimilarity(long user1, long user2){
CosineVectorSimilarity csim = new CosineVectorSimilarity();
SparseVector uv1 = getUserRatingVector(user1);
SparseVector uv2 = getUserRatingVector(user2);
MutableSparseVector mv1 = uv1.mutableCopy();
MutableSparseVector mv2 = uv2.mutableCopy();
mv1.add(-uv1.mean());
mv2.add(-uv2.mean());
return csim.similarity(mv1,mv2);
}
开发者ID:4DD8A19D69F5324F9D49D17EF78BBBCC,项目名称:Introd_uction_to_Recom_mander_S_ystem,代码行数:18,代码来源:SimpleUserUserItemScorer.java
示例2: get
import org.grouplens.lenskit.vectors.similarity.CosineVectorSimilarity; //导入依赖的package包/类
@Override
public SimpleItemItemModel get() {
// Get the transposed rating matrix
// This gives us a map of item IDs to those items' rating vectors
Map<Long, ImmutableSparseVector> itemVectors = getItemVectors();
// Get all items - you might find this useful
LongSortedSet items = LongUtils.packedSet(itemVectors.keySet());
// Map items to vectors of item similarities
@SuppressWarnings("unused")
Map<Long,MutableSparseVector> itemSimilarities = new HashMap<Long, MutableSparseVector>();
// Compute the similarities between each pair of items
// It will need to be in a map of longs to lists of Scored IDs to store in the model
Map<Long, List<ScoredId>> neighborhoods = new HashMap<Long, List<ScoredId>>();
// Compute the similarities between each pair of items
CosineVectorSimilarity cosine = new CosineVectorSimilarity();
for(long item : items){
// get this item ratings
ImmutableSparseVector itemRatings = itemVectors.get(item);
// create the accumulator for this item
TopNScoredItemAccumulator accumulator = new TopNScoredItemAccumulator(items.size() - 1);
for(long neighbor : items){
// skip itself
if(item == neighbor) continue;
ImmutableSparseVector neighRatings = itemVectors.get(neighbor);
// cosine similarity
double similarity = cosine.similarity(itemRatings, neighRatings);
//accumulate positive similarities
if(similarity >= 0.0){
accumulator.put(neighbor, similarity);
}
}
//get the final list of sorted neighbors
List<ScoredId> similarities = accumulator.finish();
// update the map of similarity
neighborhoods.put(item, similarities);
}
// It will need to be in a map of longs to lists of Scored IDs to store in the model
return new SimpleItemItemModel(neighborhoods);
}
示例3: get
import org.grouplens.lenskit.vectors.similarity.CosineVectorSimilarity; //导入依赖的package包/类
@Override
public SimpleItemItemModel get() {
// Get the transposed rating matrix
// This gives us a map of item IDs to those items' rating vectors
Map<Long, ImmutableSparseVector> itemVectors = getItemVectors();
// Get all items - you might find this useful
LongSortedSet items = LongUtils.packedSet(itemVectors.keySet());
// Map items to vectors of item similarities
//Map<Long,MutableSparseVector> itemSimilarities = new HashMap<Long, MutableSparseVector>();
Map<Long, List<ScoredId>> neighborhoods = new HashMap<Long, List<ScoredId>>();
// Computing the similarities between each pair of items
// It will need to be in a map of longs to lists of Scored IDs to store in the model
for(Iterator outerIter = items.iterator(); outerIter.hasNext() ; ) {
Long thisItemId = (Long) outerIter.next();
TopNScoredItemAccumulator accumulator = new TopNScoredItemAccumulator(items.size()-1);
// Calculate similiarity with other item one by one and
for(Iterator innerIter = items.iterator(); innerIter.hasNext() ; ) {
Long nghbrItemId = (Long) innerIter.next();
if(thisItemId.equals(nghbrItemId)) continue;
// cosine similarity
double similarity = new CosineVectorSimilarity().similarity(itemVectors.get(thisItemId),
itemVectors.get(nghbrItemId));
//accumulate
if (similarity > 0) {
accumulator.put(nghbrItemId, similarity);
}
}
//put in the final list of sorted neighbors
List<ScoredId> similarities = accumulator.finish();
neighborhoods.put(thisItemId, similarities);
}
return new SimpleItemItemModel(neighborhoods);
//return new SimpleItemItemModel(Collections.EMPTY_MAP);
}
开发者ID:rohitsinha54,项目名称:Coursera-Introduction-to-Recommender-Systems-Programming-Assignment-5,代码行数:42,代码来源:SimpleItemItemModelBuilder.java
示例4: calculateUserSimilarity
import org.grouplens.lenskit.vectors.similarity.CosineVectorSimilarity; //导入依赖的package包/类
/**
* Calculate User similarity
* @param userVector, otherUserVector
* @return The similarity vector
*/
private double calculateUserSimilarity(SparseVector userVector, SparseVector otherUserVector) {
MutableSparseVector userCopy = userVector.mutableCopy();
MutableSparseVector otherUserCopy = otherUserVector.mutableCopy();
userCopy.subtract(MutableSparseVector.create(userCopy.keyDomain(), userVector.mean()));
otherUserCopy.subtract(MutableSparseVector.create(otherUserCopy.keyDomain(), otherUserCopy.mean()));
CosineVectorSimilarity similarity = new CosineVectorSimilarity();
return similarity.similarity(userCopy, otherUserCopy);
}