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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

ML之RS之CF:基于用户的CF算法—利用大量用户的电影及其评分数据集对一个新用户Jason进行推荐电影+(已知Jason曾观看几十部电影及其评分)

發布時間:2025/3/21 编程问答 15 豆豆

ML之RS之CF:基于用戶的CF算法—利用大量用戶的電影及其評分數據集對一個新用戶Jason進行推薦電影+(已知Jason曾觀看幾十部電影及其評分)

?

?

目錄

輸出結果

實現代碼


?

?

?

輸出結果

先看推薦結果顯示

?

實現代碼

from math import sqrt#pearson距離 def pearson_dis(rating1, rating2):sum_xy = 0sum_x = 0sum_y = 0sum_x2 = 0sum_y2 = 0n = 0for key in rating1:if key in rating2:n += 1x = rating1[key]y = rating2[key]sum_xy += x * ysum_x += xsum_y += ysum_x2 += pow(x, 2)sum_y2 += pow(y, 2)# now compute denominatordenominator = sqrt(sum_x2 - pow(sum_x, 2) / n) * sqrt(sum_y2 - pow(sum_y, 2) / n)if denominator == 0:return 0else:return (sum_xy - (sum_x * sum_y) / n) / denominator#查找最近鄰函數 def computeNearestNeighbor(username, users):"""在給定username的情況下,計算其他用戶和它的距離并排序"""distances = []for user in users: #全用戶遍歷,找到兩個用戶,計算pearson距離,依次添加到列表內if user != username: #distance = manhattan_dis(users[user], users[username])distance = pearson_dis(users[user], users[username])distances.append((distance, user))distances.sort()return distances#進行推薦函數 def recommend(username, users):nearest = computeNearestNeighbor(username, users)[0][1]recommendations = []neighborRatings = users[nearest]userRatings = users[username]for artist in neighborRatings:if not artist in userRatings:recommendations.append((artist, neighborRatings[artist]))results = sorted(recommendations, key=lambda artistTuple: artistTuple[1], reverse = True)for result in results:print(result[0], result[1])recommend('Jason', users)

?

?

?

相關文章推薦

ML之RS之CF:基于用戶的CF算法—利用大量用戶的電影及其評分數據集對一個新用戶Jason進行推薦電影+(已知Jason曾觀看幾十部電影及其評分)

?

?

總結

以上是生活随笔為你收集整理的ML之RS之CF:基于用户的CF算法—利用大量用户的电影及其评分数据集对一个新用户Jason进行推荐电影+(已知Jason曾观看几十部电影及其评分)的全部內容,希望文章能夠幫你解決所遇到的問題。

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