MyMediaLite  3.06
Public Member Functions | Protected Member Functions | Protected Attributes | Properties
UserAttributeKNN Class Reference

k-nearest neighbor (kNN) user-based collaborative filtering using the correlation of the user attibutes More...

Inheritance diagram for UserAttributeKNN:
UserKNN IUserAttributeAwareRecommender KNN IUserSimilarityProvider IFoldInItemRecommender IRecommender ItemRecommender IRecommender Recommender IRecommender

List of all members.

Public Member Functions

virtual bool CanPredict (int user_id, int item_id)
 Check whether a useful prediction (i.e. not using a fallback/default answer) can be made for a given user-item combination.
Object Clone ()
 create a shallow copy of the object
IList< int > GetMostSimilarUsers (int user_id, uint n=10)
 get the most similar users
float GetUserSimilarity (int user_id1, int user_id2)
 get the similarity between two users
override void LoadModel (string filename)
 Get the model parameters from a file.
override float Predict (int user_id, int item_id)
 Predict rating or score for a given user-item combination.
IList< Tuple< int, float > > Recommend (int user_id, int n=-1, ICollection< int > ignore_items=null, ICollection< int > candidate_items=null)
 Recommend items for a given user.
virtual
System.Collections.Generic.IList
< Tuple< int, float > > 
Recommend (int user_id, int n=-1, System.Collections.Generic.ICollection< int > ignore_items=null, System.Collections.Generic.ICollection< int > candidate_items=null)
override void SaveModel (string filename)
 Save the model parameters to a file.
IList< Tuple< int, float > > ScoreItems (IList< int > accessed_items, IList< int > candidate_items)
 Score a list of items given a list of items that represent a new user.
override string ToString ()
 Return a string representation of the recommender.
override void Train ()
 Learn the model parameters of the recommender from the training data.

Protected Member Functions

virtual IList< float > FoldIn (IList< int > items)
 Fold in one user, identified by their items.

Protected Attributes

IBinaryDataCorrelationMatrix correlation
 Correlation matrix over some kind of entity, e.g. users or items.
uint k = 80
 The number of neighbors to take into account for prediction.
IList< IList< int > > nearest_neighbors
 Precomputed nearest neighbors.

Properties

float Alpha [get, set]
 Alpha parameter for BidirectionalConditionalProbability.
BinaryCorrelationType Correlation [get, set]
 The kind of correlation to use.
override IBooleanMatrix DataMatrix [get]
 data matrix to learn the correlation from
virtual IPosOnlyFeedback Feedback [get, set]
 the feedback data to be used for training
uint K [get, set]
 The number of neighbors to take into account for prediction.
int MaxItemID [get, set]
 Maximum item ID.
int MaxUserID [get, set]
 Maximum user ID.
int NumUserAttributes [get, set]
float Q [get, set]
 Exponent to be used for transforming the neighbor's weights.
IBooleanMatrix UserAttributes [get, set]
bool Weighted [get, set]
 Gets or sets a value indicating whether this MyMediaLite.ItemRecommendation.KNN is weighted.

Detailed Description

k-nearest neighbor (kNN) user-based collaborative filtering using the correlation of the user attibutes

This recommender does NOT support incremental updates.


Member Function Documentation

virtual bool CanPredict ( int  user_id,
int  item_id 
) [inline, virtual, inherited]

Check whether a useful prediction (i.e. not using a fallback/default answer) can be made for a given user-item combination.

It is up to the recommender implementor to decide when a prediction is useful, and to document it accordingly.

Parameters:
user_idthe user ID
item_idthe item ID
Returns:
true if a useful prediction can be made, false otherwise

Implements IRecommender.

Reimplemented in BiPolarSlopeOne, SlopeOne, Constant, GlobalAverage, UserAverage, ItemAverage, and Random.

Object Clone ( ) [inline, inherited]

create a shallow copy of the object

virtual IList<float> FoldIn ( IList< int >  items) [inline, protected, virtual, inherited]

Fold in one user, identified by their items.

Returns:
a vector containing the similarities to all users
Parameters:
itemsthe items representing the user
IList<int> GetMostSimilarUsers ( int  user_id,
uint  n = 10 
) [inline, inherited]

get the most similar users

Returns:
the users most similar to a given user
Parameters:
user_idthe ID of the user
nthe number of similar users to return

Implements IUserSimilarityProvider.

float GetUserSimilarity ( int  user_id1,
int  user_id2 
) [inline, inherited]

get the similarity between two users

Returns:
the user similarity; higher means more similar
Parameters:
user_id1the ID of the first user
user_id2the ID of the second user

Implements IUserSimilarityProvider.

override void LoadModel ( string  filename) [inline, virtual, inherited]

Get the model parameters from a file.

Parameters:
filenamethe name of the file to read from

Reimplemented from Recommender.

override float Predict ( int  user_id,
int  item_id 
) [inline, inherited]

Predict rating or score for a given user-item combination.

Parameters:
user_idthe user ID
item_idthe item ID
Returns:
the predicted score/rating for the given user-item combination

Implements IRecommender.

IList<Tuple<int, float> > Recommend ( int  user_id,
int  n = -1,
ICollection< int >  ignore_items = null,
ICollection< int >  candidate_items = null 
) [inherited]

Recommend items for a given user.

Parameters:
user_idthe user ID
nthe number of items to recommend, -1 for as many as possible
ignore_itemscollection if items that should not be returned; if null, use empty collection
candidate_itemsthe candidate items to choose from; if null, use all items
Returns:
a sorted list of (item_id, score) tuples

Implemented in WeightedEnsemble, and Ensemble.

override void SaveModel ( string  filename) [inline, virtual, inherited]

Save the model parameters to a file.

Parameters:
filenamethe name of the file to write to

Reimplemented from Recommender.

IList<Tuple<int, float> > ScoreItems ( IList< int >  accessed_items,
IList< int >  candidate_items 
) [inline, inherited]

Score a list of items given a list of items that represent a new user.

Returns:
a list of int and float pairs, representing item IDs and predicted scores
Parameters:
accessed_itemsthe ratings (item IDs and rating values) representing the new user
candidate_itemsthe items to be rated

Implements IFoldInItemRecommender.

override string ToString ( ) [inline, inherited]

Return a string representation of the recommender.

The ToString() method of recommenders should list the class name and all hyperparameters, separated by space characters.

Reimplemented from Recommender.


Member Data Documentation

IBinaryDataCorrelationMatrix correlation [protected, inherited]

Correlation matrix over some kind of entity, e.g. users or items.

uint k = 80 [protected, inherited]

The number of neighbors to take into account for prediction.

IList<IList<int> > nearest_neighbors [protected, inherited]

Precomputed nearest neighbors.


Property Documentation

float Alpha [get, set, inherited]

Alpha parameter for BidirectionalConditionalProbability.

BinaryCorrelationType Correlation [get, set, inherited]

The kind of correlation to use.

override IBooleanMatrix DataMatrix [get, protected]

data matrix to learn the correlation from

Reimplemented from UserKNN.

virtual IPosOnlyFeedback Feedback [get, set, inherited]

the feedback data to be used for training

uint K [get, set, inherited]

The number of neighbors to take into account for prediction.

int MaxItemID [get, set, inherited]

Maximum item ID.

int MaxUserID [get, set, inherited]

Maximum user ID.

int NumUserAttributes [get, set]

Number of binary user attributes

Implements IUserAttributeAwareRecommender.

float Q [get, set, inherited]

Exponent to be used for transforming the neighbor's weights.

A value of 0 leads to counting of the relevant neighbors. 1 is the usual weighted prediction. Values greater than 1 give higher weight to higher correlated neighbors.

TODO LIT

The binary user attributes

Implements IUserAttributeAwareRecommender.

bool Weighted [get, set, inherited]

Gets or sets a value indicating whether this MyMediaLite.ItemRecommendation.KNN is weighted.

TODO add literature reference


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