Data structure for storing ratings with time information. More...
Public Member Functions | |
void | Add (float item) |
virtual void | Add (int user_id, int item_id, byte rating) |
Add byte-valued rating to the collection. | |
virtual void | Add (int user_id, int item_id, float rating, DateTime time) |
add a rating event including time information | |
override void | Add (int user_id, int item_id, float rating) |
Add float-valued rating to the collection. | |
void | BuildByItemCounts () |
void | BuildByUserCounts () |
void | BuildItemIndices () |
Build the item indices. | |
void | BuildRandomIndex () |
Build the random index. | |
void | BuildUserIndices () |
Build the user indices. | |
void | Clear () |
bool | Contains (float item) |
void | CopyTo (float[] array, int index) |
virtual float | Get (int user_id, int item_id, ICollection< int > indexes) |
Directly access rating by user and item. | |
int | GetIndex (int user_id, int item_id, ICollection< int > indexes) |
Get index for given user and item. | |
int | GetIndex (int user_id, int item_id) |
Get index for a given user and item. | |
ISet< int > | GetItems (IList< int > indices) |
Get all items that are referenced by a given list of indices. | |
override void | GetObjectData (SerializationInfo info, StreamingContext context) |
ISet< int > | GetUsers (IList< int > indices) |
Get all users that are referenced by a given list of indices. | |
int | IndexOf (float item) |
void | Insert (int index, float item) |
bool | Remove (float item) |
virtual void | RemoveAt (int index) |
override void | RemoveItem (int item_id) |
Remove all events related to a given item. | |
override void | RemoveUser (int user_id) |
Remove all events related to a given user. | |
TimedRatings (SerializationInfo info, StreamingContext context) | |
TimedRatings () | |
Default constructor. | |
virtual bool | TryGet (int user_id, int item_id, ICollection< int > indexes, out float rating) |
Try to retrieve a rating for a given user-item combination. | |
virtual bool | TryGet (int user_id, int item_id, out float rating) |
Try to retrieve a rating for a given user-item combination. | |
bool | TryGetIndex (int user_id, int item_id, ICollection< int > indexes, out int index) |
Try to get the index for given user and item. | |
bool | TryGetIndex (int user_id, int item_id, out int index) |
Try to get the index for given user and item. | |
Protected Member Functions | |
void | UpdateCountsAndIndices (ISet< int > users, ISet< int > items) |
update user- and item-wise counts and indices | |
Protected Attributes | |
IList< IList< int > > | by_item |
Indices organized by item. | |
IList< IList< int > > | by_user |
Indices organized by user. | |
IList< float > | Values |
Properties | |
IList< int > | AllItems [get] |
all item IDs in the dataset | |
IList< int > | AllUsers [get] |
all user IDs in the dataset | |
float | Average [get] |
average rating in the dataset | |
IList< IList< int > > | ByItem [get] |
indices by item | |
IList< IList< int > > | ByUser [get] |
indices by user | |
new int | Count [get] |
the number of interaction events in the dataset | |
virtual int | Count [get] |
the number of interaction events in the dataset | |
IList< int > | CountByItem [get] |
rating count by item | |
IList< int > | CountByUser [get] |
rating count by user | |
DateTime | EarliestTime [get, set] |
earliest time | |
bool | IsReadOnly [get] |
IList< int > | Items [get, set] |
the item entries | |
DateTime | LatestTime [get, set] |
latest time | |
int | MaxItemID [get, set] |
the maximum item ID in the dataset | |
float | MaxRating [get, set] |
the maximum rating in the dataset | |
int | MaxUserID [get, set] |
the maximum user ID in the dataset | |
float | MinRating [get, set] |
the minimum rating in the dataset | |
IList< int > | RandomIndex [get] |
get a randomly ordered list of all indices | |
virtual float | this [int index] [get, set] |
Directly access rating by user and item. | |
IList< DateTime > | Times [get, set] |
the item entries | |
IList< int > | Users [get, set] |
the user entries |
Data structure for storing ratings with time information.
This data structure supports incremental updates.
Loading the Netflix Prize data set (100,000,000 ratings) into this data structure requires about 3.2 GB of memory.
TimedRatings | ( | ) | [inline] |
Default constructor.
virtual void Add | ( | int | user_id, | |
int | item_id, | |||
byte | rating | |||
) | [inline, virtual, inherited] |
Add byte-valued rating to the collection.
user_id | the user ID | |
item_id | the item ID | |
rating | the rating |
Implements IRatings.
Reimplemented in StaticByteRatings.
virtual void Add | ( | int | user_id, | |
int | item_id, | |||
float | rating, | |||
DateTime | time | |||
) | [inline, virtual] |
add a rating event including time information
It is up to the user of a class implementing this interface to decide whether the DateTime object represent local time, UTC, or any other time.
user_id | the user ID | |
item_id | the item ID | |
rating | the rating value | |
time | A DateTime specifying the time of the rating event |
Implements ITimedRatings.
override void Add | ( | int | user_id, | |
int | item_id, | |||
float | rating | |||
) | [inline, virtual] |
Add float-valued rating to the collection.
user_id | the user ID | |
item_id | the item ID | |
rating | the rating |
Reimplemented from Ratings.
void BuildItemIndices | ( | ) | [inline, inherited] |
Build the item indices.
Implements IDataSet.
void BuildRandomIndex | ( | ) | [inline, inherited] |
Build the random index.
Implements IDataSet.
void BuildUserIndices | ( | ) | [inline, inherited] |
Build the user indices.
Implements IDataSet.
virtual float Get | ( | int | user_id, | |
int | item_id, | |||
ICollection< int > | indexes | |||
) | [inline, virtual, inherited] |
Directly access rating by user and item.
user_id | the user ID | |
item_id | the item ID | |
indexes | the indexes to look at |
Implements IRatings.
Reimplemented in StaticByteRatings.
int GetIndex | ( | int | user_id, | |
int | item_id, | |||
ICollection< int > | indexes | |||
) | [inline, inherited] |
Get index for given user and item.
user_id | the user ID | |
item_id | the item ID | |
indexes | the indexes to look at |
Implements IDataSet.
int GetIndex | ( | int | user_id, | |
int | item_id | |||
) | [inline, inherited] |
Get index for a given user and item.
user_id | the user ID | |
item_id | the item ID |
Implements IDataSet.
ISet<int> GetItems | ( | IList< int > | indices | ) | [inline, inherited] |
Get all items that are referenced by a given list of indices.
indices | the indices to take into account |
Implements IDataSet.
ISet<int> GetUsers | ( | IList< int > | indices | ) | [inline, inherited] |
Get all users that are referenced by a given list of indices.
indices | the indices to take into account |
Implements IDataSet.
override void RemoveItem | ( | int | item_id | ) | [inline, virtual, inherited] |
Remove all events related to a given item.
item_id | the item ID |
Implements DataSet.
Reimplemented in RatingsProxy, and StaticRatings.
override void RemoveUser | ( | int | user_id | ) | [inline, virtual, inherited] |
Remove all events related to a given user.
user_id | the user ID |
Implements DataSet.
Reimplemented in RatingsProxy, and StaticRatings.
virtual bool TryGet | ( | int | user_id, | |
int | item_id, | |||
ICollection< int > | indexes, | |||
out float | rating | |||
) | [inline, virtual, inherited] |
Try to retrieve a rating for a given user-item combination.
user_id | the user ID | |
item_id | the item ID | |
indexes | the indexes to look at | |
rating | will contain the first rating encountered that matches the user ID and item ID |
Implements IRatings.
Reimplemented in StaticByteRatings.
virtual bool TryGet | ( | int | user_id, | |
int | item_id, | |||
out float | rating | |||
) | [inline, virtual, inherited] |
Try to retrieve a rating for a given user-item combination.
user_id | the user ID | |
item_id | the item ID | |
rating | will contain the first rating encountered that matches the user ID and item ID |
Implements IRatings.
Reimplemented in StaticByteRatings.
bool TryGetIndex | ( | int | user_id, | |
int | item_id, | |||
ICollection< int > | indexes, | |||
out int | index | |||
) | [inline, inherited] |
Try to get the index for given user and item.
user_id | the user ID | |
item_id | the item ID | |
indexes | the indexes to look at | |
index | will contain the index of the first event encountered that matches the user ID and item ID |
Implements IDataSet.
bool TryGetIndex | ( | int | user_id, | |
int | item_id, | |||
out int | index | |||
) | [inline, inherited] |
Try to get the index for given user and item.
user_id | the user ID | |
item_id | the item ID | |
index | will contain the index of the first event encountered that matches the user ID and item ID |
Implements IDataSet.
void UpdateCountsAndIndices | ( | ISet< int > | users, | |
ISet< int > | items | |||
) | [inline, protected, inherited] |
update user- and item-wise counts and indices
users | the modified users | |
items | the modified itemsItems. |
IList<IList<int> > by_item [protected, inherited] |
Indices organized by item.
IList<IList<int> > by_user [protected, inherited] |
Indices organized by user.
IList<int> AllItems [get, inherited] |
all item IDs in the dataset
Implements IDataSet.
IList<int> AllUsers [get, inherited] |
all user IDs in the dataset
Implements IDataSet.
float Average [get, inherited] |
average rating in the dataset
Implements IRatings.
IList<IList<int> > ByItem [get, inherited] |
IList<IList<int> > ByUser [get, inherited] |
new int Count [get, inherited] |
virtual int Count [get, inherited] |
the number of interaction events in the dataset
Implements IDataSet.
Reimplemented in StaticRatings.
IList<int> CountByItem [get, inherited] |
IList<int> CountByUser [get, inherited] |
DateTime EarliestTime [get, set] |
earliest time
Implements ITimedDataSet.
IList<int> Items [get, set, inherited] |
the item entries
Implements IDataSet.
DateTime LatestTime [get, set] |
latest time
Implements ITimedDataSet.
int MaxItemID [get, set, inherited] |
the maximum item ID in the dataset
Implements IDataSet.
float MaxRating [get, set, inherited] |
the maximum rating in the dataset
Implements IRatings.
int MaxUserID [get, set, inherited] |
the maximum user ID in the dataset
Implements IDataSet.
float MinRating [get, set, inherited] |
the minimum rating in the dataset
Implements IRatings.
IList<int> RandomIndex [get, inherited] |
get a randomly ordered list of all indices
Should be implemented as a lazy data structure
Implements IDataSet.
float this [get, set, inherited] |
Directly access rating by user and item.
user_id | the user ID | |
item_id | the item ID |
the rating value for the given user and item
Implements IRatings.
Reimplemented in StaticByteRatings.
IList<DateTime> Times [get, set] |
the item entries
Implements ITimedDataSet.
IList<int> Users [get, set, inherited] |
the user entries
Implements IDataSet.