MyMediaLite  3.11
Public Member Functions | Protected Member Functions | Properties | List of all members
Pearson Class Reference

Shrunk Pearson correlation for rating data More...

Inheritance diagram for Pearson:
SymmetricCorrelationMatrix IRatingCorrelationMatrix SymmetricSparseMatrix< float > ICorrelationMatrix ICorrelationMatrix IMatrix< float > IMatrix< float > RatingCosine

Public Member Functions

void AddEntity (int entity_id)
 Add an entity to the ICorrelationMatrix by growing it to the requested size. More...
 
float ComputeCorrelation (IRatings ratings, EntityType entity_type, int i, int j)
 Computes the correlation of two rating vectors More...
 
float ComputeCorrelation (IRatings ratings, EntityType entity_type, IList< Tuple< int, float >> entity_ratings, int j)
 Compute correlation between two entities for given ratings More...
 
void ComputeCorrelations (IRatings ratings, EntityType entity_type)
 Compute the correlations for a given entity type from a rating dataset More...
 
IMatrix< T > CreateMatrix (int num_rows, int num_columns)
 Create a matrix with a given number of rows and columns More...
 
IMatrix< T > CreateMatrix (int num_rows, int num_columns)
 Create a matrix with a given number of rows and columns More...
 
override IMatrix< T > CreateMatrix (int num_rows, int num_columns)
 Create a matrix with a given number of rows and columns More...
 
 Pearson (int num_entities, float shrinkage)
 Constructor. Create a Pearson correlation matrix More...
 
void Resize (int num_rows, int num_cols)
 Grows or shrinks the matrix to the requested size, if necessary More...
 
void Resize (int num_rows, int num_cols)
 Grows or shrinks the matrix to the requested size, if necessary More...
 
override void Resize (int size)
 Resize to the given size More...
 
IMatrix< T > Transpose ()
 Get the transpose of the matrix, i.e. a matrix where rows and columns are interchanged More...
 
IMatrix< T > Transpose ()
 Get the transpose of the matrix, i.e. a matrix where rows and columns are interchanged More...
 
void Write (StreamWriter writer)
 Write out the correlations to a StreamWriter More...
 

Protected Member Functions

virtual float ComputeCorrelation (double i_sum, double j_sum, double ii_sum, double jj_sum, double ij_sum, int n)
 
virtual double GetDenominator (double i_sum, double j_sum, double ii_sum, double jj_sum, int n)
 
virtual double GetNumerator (double i_sum, double j_sum, double ij_sum, int n)
 

Properties

override bool IsSymmetric [get]
 returns true if the matrix is symmetric, which is generally the case for similarity matrices
 
override IList< Tuple< int, int > > NonEmptyEntryIDs [get]
 
int NumberOfColumns [get]
 The number of columns of the matrix More...
 
int NumberOfColumns [get]
 The number of columns of the matrix More...
 
override int NumberOfNonEmptyEntries [get]
 
int NumberOfRows [get]
 The number of rows of the matrix More...
 
int NumberOfRows [get]
 The number of rows of the matrix More...
 
int NumEntities [get]
 Number of entities the correlation is defined over More...
 
float Shrinkage [get, set]
 shrinkage parameter, if set to 0 we have the standard Pearson correlation without shrinkage More...
 
override T this[int x, int y] [get, set]
 Access the elements of the sparse matrix More...
 
this[int x, int y] [get, set]
 The value at (i,j) More...
 
this[int x, int y] [get, set]
 The value at (i,j) More...
 

Detailed Description

Shrunk Pearson correlation for rating data

The correlation values are shrunk towards zero, depending on the number of ratings the estimate is based on. Otherwise, we would give too much weight to similarities estimated from just a few examples.

http://en.wikipedia.org/wiki/Pearson_correlation

We apply shrinkage as in formula (5.16) of chapter 5 of the Recommender Systems Handbook. Note that the shrinkage formula has changed betweem the two publications. It is now based on the assumption that the true correlations are normally distributed; the shrunk estimate is the posterior mean of the empirical estimate.

Literature:

Constructor & Destructor Documentation

Pearson ( int  num_entities,
float  shrinkage 
)
inline

Constructor. Create a Pearson correlation matrix

Parameters
num_entitiesthe number of entities
shrinkageshrinkage parameter

Member Function Documentation

void AddEntity ( int  entity_id)
inlineinherited

Add an entity to the ICorrelationMatrix by growing it to the requested size.

Note that you still have to correctly compute and set the entity's correlation values

Parameters
entity_idthe numerical ID of the entity

Implements ICorrelationMatrix.

float ComputeCorrelation ( IRatings  ratings,
EntityType  entity_type,
int  i,
int  j 
)
inline

Computes the correlation of two rating vectors

Parameters
ratingsthe rating data
entity_typethe entity type, either USER or ITEM
ithe ID of the first entity
jthe ID of the second entity
Returns
the correlation of the two vectors

Implements IRatingCorrelationMatrix.

float ComputeCorrelation ( IRatings  ratings,
EntityType  entity_type,
IList< Tuple< int, float >>  entity_ratings,
int  j 
)
inline

Compute correlation between two entities for given ratings

Parameters
ratingsthe rating data
entity_typethe entity type, either USER or ITEM
entity_ratingsratings identifying the first entity
jthe ID of second entity

Implements IRatingCorrelationMatrix.

void ComputeCorrelations ( IRatings  ratings,
EntityType  entity_type 
)
inline

Compute the correlations for a given entity type from a rating dataset

Parameters
ratingsthe rating data
entity_typethe EntityType - either USER or ITEM

Implements IRatingCorrelationMatrix.

IMatrix<T> CreateMatrix ( int  num_rows,
int  num_columns 
)
inherited

Create a matrix with a given number of rows and columns

Parameters
num_rowsthe number of rows
num_columnsthe number of columns
Returns
A matrix with num_rows rows and num_column columns
IMatrix<T> CreateMatrix ( int  num_rows,
int  num_columns 
)
inherited

Create a matrix with a given number of rows and columns

Parameters
num_rowsthe number of rows
num_columnsthe number of columns
Returns
A matrix with num_rows rows and num_column columns
override IMatrix<T> CreateMatrix ( int  num_rows,
int  num_columns 
)
inlineinherited

Create a matrix with a given number of rows and columns

Parameters
num_rowsthe number of rows
num_columnsthe number of columns
Returns
A matrix with num_rows rows and num_column columns
void Resize ( int  num_rows,
int  num_cols 
)
inherited

Grows or shrinks the matrix to the requested size, if necessary

The new entries are filled with zeros. Obsolete entries are removed.

Parameters
num_rowsthe number of rows
num_colsthe number of columns
void Resize ( int  num_rows,
int  num_cols 
)
inherited

Grows or shrinks the matrix to the requested size, if necessary

The new entries are filled with zeros. Obsolete entries are removed.

Parameters
num_rowsthe number of rows
num_colsthe number of columns
override void Resize ( int  size)
inlineinherited

Resize to the given size

Parameters
sizethe size

Implements ICorrelationMatrix.

IMatrix<T> Transpose ( )
inherited

Get the transpose of the matrix, i.e. a matrix where rows and columns are interchanged

Returns
the transpose of the matrix (copy)
IMatrix<T> Transpose ( )
inherited

Get the transpose of the matrix, i.e. a matrix where rows and columns are interchanged

Returns
the transpose of the matrix (copy)
void Write ( StreamWriter  writer)
inlineinherited

Write out the correlations to a StreamWriter

Parameters
writerA StreamWriter

Implements ICorrelationMatrix.

Property Documentation

int NumberOfColumns
getinherited

The number of columns of the matrix

The number of columns of the matrix

int NumberOfColumns
getinherited

The number of columns of the matrix

The number of columns of the matrix

int NumberOfRows
getinherited

The number of rows of the matrix

The number of rows of the matrix

int NumberOfRows
getinherited

The number of rows of the matrix

The number of rows of the matrix

int NumEntities
getinherited

Number of entities the correlation is defined over

float Shrinkage
getset

shrinkage parameter, if set to 0 we have the standard Pearson correlation without shrinkage

override T this[int x, int y]
getsetinherited

Access the elements of the sparse matrix

Parameters
xthe row ID
ythe column ID
T this[int x, int y]
getsetinherited

The value at (i,j)

The value at (i,j)

Parameters
xthe row ID
ythe column ID
T this[int x, int y]
getsetinherited

The value at (i,j)

The value at (i,j)

Parameters
xthe row ID
ythe column ID

The documentation for this class was generated from the following file: