奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

C語言

C#實現協同過濾算法的實例代碼

時間:2024-06-19 03:47:09 C語言 我要投稿
  • 相關推薦

C#實現協同過濾算法的實例代碼

  還在找C#實現協同過濾算法的代碼嗎?下面小編為大家整理了C#實現協同過濾算法的實例代碼,希望能幫到大家!

  復制代碼 代碼如下:

  using System;

  using System.Collections.Generic;

  using System.Linq;

  using System.Text;

  namespace SlopeOne

  {

  public class Rating

  {

  public float Value { get; set; }

  public int Freq { get; set; }

  public float AverageValue

  {

  get { return Value / Freq; }

  }

  }

  public class RatingDifferenceCollection : Dictionary

  {

  private string GetKey(int Item1Id, int Item2Id)

  {

  return (Item1Id < Item2Id) ? Item1Id + "/" + Item2Id : Item2Id + "/" + Item1Id ;

  }

  public bool Contains(int Item1Id, int Item2Id)

  {

  return this.Keys.Contains(GetKey(Item1Id, Item2Id));

  }

  public Rating this[int Item1Id, int Item2Id]

  {

  get {

  return this[this.GetKey(Item1Id, Item2Id)];

  }

  set { this[this.GetKey(Item1Id, Item2Id)] = value; }

  }

  }

  public class SlopeOne

  {

  public RatingDifferenceCollection _DiffMarix = new RatingDifferenceCollection(); // The dictionary to keep the diff matrix

  public HashSet_Items = new HashSet(); // Tracking how many items totally

  public void AddUserRatings(IDictionaryuserRatings)

  {

  foreach (var item1 in userRatings)

  {

  int item1Id = item1.Key;

  float item1Rating = item1.Value;

  _Items.Add(item1.Key);

  foreach (var item2 in userRatings)

  {

  if (item2.Key <= item1Id) continue; // Eliminate redundancy

  int item2Id = item2.Key;

  float item2Rating = item2.Value;

  Rating ratingDiff;

  if (_DiffMarix.Contains(item1Id, item2Id))

  {

  ratingDiff = _DiffMarix[item1Id, item2Id];

  }

  else

  {

  ratingDiff = new Rating();

  _DiffMarix[item1Id, item2Id] = ratingDiff;

  }

  ratingDiff.Value += item1Rating - item2Rating;

  ratingDiff.Freq += 1;

  }

  }

  }

  // Input ratings of all users

  public void AddUerRatings(IListRatings)

  {

  foreach(var userRatings in Ratings)

  {

  AddUserRatings(userRatings);

  }

  }

  public IDictionaryPredict(IDictionaryuserRatings)

  {

  DictionaryPredictions = new Dictionary();

  foreach (var itemId in this._Items)

  {

  if (userRatings.Keys.Contains(itemId)) continue; // User has rated this item, just skip it

  Rating itemRating = new Rating();

  foreach (var userRating in userRatings)

  {

  if (userRating.Key == itemId) continue;

  int inputItemId = userRating.Key;

  if (_DiffMarix.Contains(itemId, inputItemId))

  {

  Rating diff = _DiffMarix[itemId, inputItemId];

  itemRating.Value += diff.Freq * (userRating.Value + diff.AverageValue * ((itemId < inputItemId) ? 1 : -1));

  itemRating.Freq += diff.Freq;

  }

  }

  Predictions.Add(itemId, itemRating.AverageValue);

  }

  return Predictions;

  }

  public static void Test()

  {

  SlopeOne test = new SlopeOne();

  DictionaryuserRating = new Dictionary();

  userRating.Add(1, 5);

  userRating.Add(2, 4);

  userRating.Add(3, 4);

  test.AddUserRatings(userRating);

  userRating = new Dictionary();

  userRating.Add(1, 4);

  userRating.Add(2, 5);

  userRating.Add(3, 3);

  userRating.Add(4, 5);

  test.AddUserRatings(userRating);

  userRating = new Dictionary();

  userRating.Add(1, 4);

  userRating.Add(2, 4);

  userRating.Add(4, 5);

  test.AddUserRatings(userRating);

  userRating = new Dictionary();

  userRating.Add(1, 5);

  userRating.Add(3, 4);

  IDictionaryPredictions = test.Predict(userRating);

  foreach (var rating in Predictions)

  {

  Console.WriteLine("Item " + rating.Key + " Rating: " + rating.Value);

  }

  }

  }

  }

【C#實現協同過濾算法的實例代碼】相關文章:

C#數據結構之循環鏈表的實例代碼12-04

C語言插入排序算法及實例代碼12-05

C語言選擇排序算法及實例代碼11-25

C語言實現歸并排序算法實例04-01

Java實現在不同線程中運行的代碼實例詳解11-20

C語言中實現“17進制”轉“10進制”代碼(實例)03-02

C語言快速排序實例代碼06-04

讓網站變灰的css代碼實例12-02

java中通用的線程池實例代碼08-27

主站蜘蛛池模板: 忻州市| 行唐县| 孟州市| 徐汇区| 鹰潭市| 巴塘县| 尚志市| 玉环县| 鱼台县| 凤冈县| 贡觉县| 洛阳市| 宾阳县| 沅陵县| 仪征市| 赣榆县| 明水县| 桦甸市| 忻州市| 福贡县| 镇康县| 南丹县| 淳安县| 健康| 墨玉县| 宣化县| 兴海县| 黄陵县| 丹巴县| 利川市| 杨浦区| 德钦县| 普陀区| 曲松县| 南通市| 长阳| 剑川县| 荣成市| 武强县| 九龙县| 客服|