private void LoadRelations(CrowdRecDataContainer container) { Console.WriteLine("Importing relations..."); foreach (var line in File.ReadAllLines(_relationsFile)) { var tokens = line.Split('\t'); if (tokens.Length < 5) { throw new Exception("Expect 5 tab seperated fields."); } string relationType = tokens[0]; string relationId = tokens[1]; double temp; double?timestamp; if (double.TryParse(tokens[2], out temp)) { timestamp = temp; } else { timestamp = null; } ItemRating ir = container.CreateItemRating(relationId, timestamp, tokens[3], tokens[4]); container.Ratings.Add(ir); } }
private void LoadEntities(CrowdRecDataContainer container) { Console.WriteLine("Importing entities..."); foreach (var line in File.ReadAllLines(_entitiesFile)) { var tokens = line.Split('\t'); string entityType = tokens[0]; string entityId = tokens[1]; double temp; double?timestamp; if (double.TryParse(tokens[2], out temp)) { timestamp = temp; } else { timestamp = null; } string properties = tokens.Length > 3 ? tokens[3] : "{}"; if (entityType.ToLower() == "user") { container.Users.Add(entityId, container.CreateUser(entityId, timestamp, properties)); } else if (entityType.ToLower() == "movie") { container.Items.Add(entityId, container.CreateItem(entityId, timestamp, properties)); } } }
private void LoadRelations(CrowdRecDataContainer container) { Console.WriteLine("Importing relations..."); foreach (var line in File.ReadAllLines(_relationsFile)) { var tokens = line.Split('\t'); if (tokens.Length < 5) throw new Exception("Expect 5 tab seperated fields."); string relationType = tokens[0]; string relationId = tokens[1]; double temp; double? timestamp; if (double.TryParse(tokens[2], out temp)) timestamp = temp; else timestamp = null; ItemRating ir = container.CreateItemRating(relationId, timestamp, tokens[3], tokens[4]); container.Ratings.Add(ir); } }
private void LoadEntities(CrowdRecDataContainer container) { Console.WriteLine("Importing entities..."); foreach (var line in File.ReadAllLines(_entitiesFile)) { var tokens = line.Split('\t'); string entityType = tokens[0]; string entityId = tokens[1]; double temp; double? timestamp; if (double.TryParse(tokens[2], out temp)) timestamp = temp; else timestamp = null; string properties = tokens.Length > 3 ? tokens[3] : "{}"; if (entityType.ToLower() == "user") container.Users.Add(entityId, container.CreateUser(entityId, timestamp, properties)); else if (entityType.ToLower() == "movie") container.Items.Add(entityId, container.CreateItem(entityId, timestamp, properties)); } }
public void RunDemo() { // step 1: load dataset var container = new CrowdRecDataContainer(); var reader = new CrowdRecDataReader(_entitesFile, _relationsFile); reader.LoadData(container); var dataset = new ItemRatingDataset(container, 0.3f); // step 2: recommender var recommender = new MediaLiteRatingPredictor(new BiasedMatrixFactorization()); // step 3: evaluations var pipline = new EvaluationPipeline<ItemRating>(new EvalutationContext<ItemRating>(recommender, dataset)); pipline.Evaluators.Add(new RMSE()); pipline.Evaluators.Add(new MAE()); pipline.Run(); }
public void RunDemo() { // step 1: load dataset var container = new CrowdRecDataContainer(); var reader = new CrowdRecDataReader(_entitesFile, _relationsFile); reader.LoadData(container); var dataset = new ItemRatingDataset(container, 0.3f); // step 2: recommender var recommender = new MediaLiteRatingPredictor(new BiasedMatrixFactorization()); // step 3: evaluations var pipline = new EvaluationPipeline <ItemRating>(new EvalutationContext <ItemRating>(recommender, dataset)); pipline.Evaluators.Add(new RMSE()); pipline.Evaluators.Add(new MAE()); pipline.Run(); }