public Predict ( int user_id, int item_id ) : double | ||
user_id | int | |
item_id | int | |
return | double |
/// <summary>Predict the rating of a given user for a given item</summary> /// <remarks> /// If the user or the item are not known to the recommender, the global effects prediction is returned. /// To avoid this behavior for unknown entities, use CanPredict() to check before. /// </remarks> /// <param name="user_id">the user ID</param> /// <param name="item_id">the item ID</param> /// <returns>the predicted rating</returns> public override float Predict(int user_id, int item_id) { if (user_id >= user_factors.dim1 || item_id >= item_factors.dim1) { return(global_effects.Predict(user_id, item_id)); } double result = global_effects.Predict(user_id, item_id) + DataType.MatrixExtensions.RowScalarProduct(user_factors, user_id, item_factors, item_id); if (result > MaxRating) { return(MaxRating); } if (result < MinRating) { return(MinRating); } return((float)result); }
/// <summary>Predict the rating of a given user for a given item</summary> /// <remarks> /// If the user or the item are not known to the recommender, the global effects prediction is returned. /// To avoid this behavior for unknown entities, use CanPredict() to check before. /// </remarks> /// <param name="user_id">the user ID</param> /// <param name="item_id">the item ID</param> /// <returns>the predicted rating</returns> public override double Predict(int user_id, int item_id) { if (user_id >= user_factors.dim1 || item_id >= item_factors.dim1) { return(global_effects.Predict(user_id, item_id)); } double result = global_effects.Predict(user_id, item_id) + MatrixUtils.RowScalarProduct(user_factors, user_id, item_factors, item_id); if (result > MaxRating) { return(MaxRating); } if (result < MinRating) { return(MinRating); } return(result); }
public static void Main(string[] args) { // load the data var user_mapping = new EntityMapping(); var item_mapping = new EntityMapping(); var training_data = MyMediaLite.IO.RatingPrediction.Read(args[0], user_mapping, item_mapping); var test_data = MyMediaLite.IO.RatingPrediction.Read(args[1], user_mapping, item_mapping); // set up the recommender var recommender = new UserItemBaseline(); recommender.Ratings = training_data; recommender.Train(); // measure the accuracy on the test data set var results = RatingEval.Evaluate(recommender, test_data); Console.WriteLine("RMSE={0} MAE={1}", results["RMSE"], results["MAE"]); // make a prediction for a certain user and item Console.WriteLine(recommender.Predict(user_mapping.ToInternalID(1), item_mapping.ToInternalID(1))); }
public static void Main(string[] args) { // load the data var training_data = RatingData.Read(args[0]); var test_data = RatingData.Read(args[1]); // set up the recommender var recommender = new UserItemBaseline(); recommender.Ratings = training_data; recommender.Train(); // measure the accuracy on the test data set var results = recommender.Evaluate(test_data); Console.WriteLine("RMSE={0} MAE={1}", results["RMSE"], results["MAE"]); Console.WriteLine(results); // make a prediction for a certain user and item Console.WriteLine(recommender.Predict(1, 1)); var bmf = new BiasedMatrixFactorization {Ratings = training_data}; Console.WriteLine(bmf.DoCrossValidation()); }