prea.recommender.etc
Class SlopeOne

java.lang.Object
  extended by prea.recommender.etc.SlopeOne
All Implemented Interfaces:
Recommender

public class SlopeOne
extends java.lang.Object
implements Recommender

This is a class implementing Slope-One algorithm. Technical detail of the algorithm can be found in Daniel Lemire and Anna Maclachlan, Slope One Predictors for Online Rating-Based Collaborative Filtering, Society for Industrial Mathematics, 05:471-480, 2005.

Since:
2012. 4. 20
Version:
1.1
Author:
Joonseok Lee

Field Summary
private  DenseMatrix diffMatrix
          Prepared difference matrix
private  DenseMatrix freqMatrix
          Prepared frequency matrix
 int itemCount
          The number of items.
 double maxValue
          Maximum value of rating, existing in the dataset.
 double minValue
          Minimum value of rating, existing in the dataset.
 SparseMatrix rateMatrix
          Rating matrix for each user (row) and item (column)
 int userCount
          The number of users.
 
Constructor Summary
SlopeOne(int uc, int ic, double max, double min)
          Construct a Fast NPCA model with the given data.
 
Method Summary
 void buildModel(SparseMatrix rm)
          Build a model with the given data and algorithm.
 EvaluationMetrics evaluate(SparseMatrix testMatrix)
          Evaluate the designated algorithm with the given test data.
private  SparseVector getEstimation(int u, int[] testItems)
          Estimate of ratings for a given user and a set of test items.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

rateMatrix

public SparseMatrix rateMatrix
Rating matrix for each user (row) and item (column)


userCount

public int userCount
The number of users.


itemCount

public int itemCount
The number of items.


maxValue

public double maxValue
Maximum value of rating, existing in the dataset.


minValue

public double minValue
Minimum value of rating, existing in the dataset.


diffMatrix

private DenseMatrix diffMatrix
Prepared difference matrix


freqMatrix

private DenseMatrix freqMatrix
Prepared frequency matrix

Constructor Detail

SlopeOne

public SlopeOne(int uc,
                int ic,
                double max,
                double min)
Construct a Fast NPCA model with the given data.

Parameters:
uc - The number of users in the dataset.
ic - The number of items in the dataset.
max - The maximum rating value in the dataset.
min - The minimum rating value in the dataset.
Method Detail

buildModel

public void buildModel(SparseMatrix rm)
Build a model with the given data and algorithm.

Specified by:
buildModel in interface Recommender
Parameters:
rm - The rating matrix with train data.

evaluate

public EvaluationMetrics evaluate(SparseMatrix testMatrix)
Evaluate the designated algorithm with the given test data.

Specified by:
evaluate in interface Recommender
Parameters:
testMatrix - The rating matrix with test data.
Returns:
The result of evaluation, such as MAE, RMSE, and rank-score.

getEstimation

private SparseVector getEstimation(int u,
                                   int[] testItems)
Estimate of ratings for a given user and a set of test items.

Parameters:
u - The user number.
testItems - The list of items to be predicted.
Returns:
A list containing predicted rating scores.