次のことをうまく実行する方法を作成するのを手伝ってくれる人はいますか?:
一部のユーザーにいくつかの異なるアイテムを評価してもらいます。
ユーザーに良いレコメンデーションを提供するには、好みが似ているユーザーを見つける必要があります。好みが似ている他のユーザーの評価の高い商品をおすすめできるように。
私のデータは、Entity Framework でマップされたデータベースから取得されています。
私は動作しているアルゴリズムを持っていますが、パフォーマンスが悪く、多くのループを実行しています。何か案は?
/ケント
namespace ConsoleApplication1
{
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
const int NoOfUsers = 100;
const int NoOfRatingsPerUser = 100;
const int NoOfDifferentItems = 100;
var listOfRatings = new List<Rating>();
var r = new Random();
for (int user = 0; user < NoOfUsers; user++)
{
for (int ratingsPerUser = 0; ratingsPerUser < NoOfRatingsPerUser; ratingsPerUser++)
{
var rating = new Rating();
rating.Score = r.Next(1, 10);
rating.ItemId = r.Next(1, NoOfDifferentItems);
rating.UserId = user;
listOfRatings.RemoveAll(x => x.UserId == user && x.ItemId == rating.ItemId);
listOfRatings.Add(rating);
}
}
Console.ReadLine();
}
struct Rating
{
public int ItemId;
public int Score;
public int UserId;
}
}
}