日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于物品的协同过滤ItemCF的mapreduce实现

發布時間:2023/12/31 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于物品的协同过滤ItemCF的mapreduce实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章的UML圖比較好看.....

原文鏈接:www.cnblogs.com/anny-1980/articles/3519555.html

基于物品的協同過濾ItemCF

數據集字段:

1.? User_id: 用戶ID

2.? Item_id: 物品ID

3.? preference:用戶對該物品的評分

?

算法的思想:

1.? 建立物品的同現矩陣A,即統計兩兩物品同時出現的次數

數據格式:Item_id1:Item_id2??????? 次數

2.? 建立用戶對物品的評分矩陣B,即每一個用戶對某一物品的評分

數據格式:Item_id????????? user_id:preference

3.? 推薦結果=物品的同現矩陣A * 用戶對物品的評分矩陣B

數據格式:user_id?????????? item_id,推薦分值

4. 過濾用戶已評分的物品項

5.對推薦結果按推薦分值從高到低排序

?

原始數據:

1,101,5.0

1,102,3.0

1,103,2.5

2,101,2.0

2,102,2.5

2,103,5.0

2,104,2.0

3,101,2.0

3,104,4.0

3,105,4.5

3,107,5.0

4,101,5.0

4,103,3.0

4,104,4.5

4,106,4.0

5,101,4.0

5,102,3.0

5,103,2.0

5,104,4.0

5,105,3.5

5,106,4.0

6,102,4.0

6,103,2.0

6,105,3.5

6,107,4.0

?

?

Hadoop MapReduce程序分為四步:

第一步: 讀取原始數據,按用戶ID分組,輸出文件數據格式為

1?????? ? 103:2.5,101:5.0,102:3.0

2?????? ? 101:2.0,102:2.5,103:5.0,104:2.0

3?????? ? 107:5.0,101:2.0,104:4.0,105:4.5

4?????? ? 103:3.0,106:4.0,104:4.5,101:5.0

5?????? ? 101:4.0,102:3.0,103:2.0,104:4.0,105:3.5,106:4.0

6?????? ? 102:4.0,103:2.0,105:3.5,107:4.0

?

第二步:統計兩兩物品同時出現的次數,輸出文件數據格式為

101:101 5

101:102 3

101:103 4

101:104 4

101:105 2

101:106 2

101:107 1

102:101 3

102:102 4

102:103 4

102:104 2

102:105 2

102:106 1

102:107 1

103:101 4

103:102 4

103:103 5

103:104 3

103:105 2

103:106 2

103:107 1

104:101 4

104:102 2

104:103 3

104:104 4

104:105 2

104:106 2

104:107 1

105:101 2

105:102 2

105:103 2

105:104 2

105:105 3

105:106 1

105:107 2

106:101 2

106:102 1

106:103 2

106:104 2

106:105 1

106:106 2

107:101 1

107:102 1

107:103 1

107:104 1

107:105 2

107:107 2

第三步:生成用戶評分矩陣和物品同現矩陣

第一個mapper結果為用戶評分矩陣,結果如下:

101???? ? 2:2.0

101???? ? 5:4.0

101???? ? 4:5.0

101???? ? 3:2.0

101???? ? 1:5.0

102???? ? 2:2.5

102???? ? 1:3.0

102???? ? 6:4.0

102???? ? 5:3.0

103???? ? 6:2.0

103???? ? 5:2.0

103???? ? 1:2.5

103???? ? 4:3.0

103???? ? 2:5.0

104???? ? 5:4.0

104???? ? 2:2.0

104???? ? 3:4.0

104???? ? 4:4.5

105???? ? 5:3.5

105???? ? 3:4.5

105???? ? 6:3.5

106???? ? 4:4.0

106???? ? 5:4.0

107???? ? 3:5.0

107???? ? 6:4.0

第二個mapper生成物品同現矩陣,結果如下:

101:101 5

101:102 3

101:103 4

101:104 4

101:105 2

101:106 2

101:107 1

102:101 3

102:102 4

102:103 4

102:104 2

102:105 2

102:106 1

102:107 1

103:101 4

103:102 4

103:103 5

103:104 3

103:105 2

103:106 2

103:107 1

104:101 4

104:102 2

104:103 3

104:104 4

104:105 2

104:106 2

104:107 1

105:101 2

105:102 2

105:103 2

105:104 2

105:105 3

105:106 1

105:107 2

106:101 2

106:102 1

106:103 2

106:104 2

106:105 1

106:106 2

107:101 1

107:102 1

107:103 1

107:104 1

107:105 2

107:107 2

第四步:做矩陣乘法,推薦結果=物品的同現矩陣A * 用戶對物品的評分矩陣B

結果如下:

1?????? ? 107,10.5

1?????? ? 106,18.0

1?????? ? 105,21.0

1?????? ? 104,33.5

1?????? ? 103,44.5

1?????? ? 102,37.0

1?????? ? 101,44.0

2?????? ? 107,11.5

2?????? ? 106,20.5

2?????? ? 105,23.0

2?????? ? 104,36.0

2?????? ? 103,49.0

2?????? ? 102,40.0

2?????? ? 101,45.5

3?????? ? 107,25.0

3?????? ? 106,16.5

3?????? ? 105,35.5

3?????? ? 104,38.0

3?????? ? 103,34.0

3?????? ? 102,28.0

3?????? ? 101,40.0

4?????? ? 107,12.5

4?????? ? 106,33.0

4?????? ? 105,29.0

4?????? ? 104,55.0

4?????? ? 103,56.5

4?????? ? 102,40.0

4?????? ? 101,63.0

5?????? ? 107,20.0

5?????? ? 106,34.5

5 ??????105,40.5

5?????? ? 104,59.0

5?????? ? 103,65.0

5?????? ? 102,51.0

5?????? ? 101,68.0

6?????? ? 107,21.0

6?????? ? 106,11.5

6?????? ? 105,30.5

6?????? ? 104,25.0

6?????? ? 103,37.0

6?????? ? 102,35.0

6?????? ? 101,31.0

?


總結

以上是生活随笔為你收集整理的基于物品的协同过滤ItemCF的mapreduce实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。