Predict() public method

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);
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
    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)));
    }
Ejemplo n.º 4
0
	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());
	}