亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

P值計算好像不太對

老師你好,感謝分享!有個小問題:

ICF中最后P值計算,是指與J最相似的K個物品,和用戶U操作過的物品的交集,把他們的s求和。這個應該要遍歷所有物品吧?

但是視頻代碼中,取用戶操作過的前3個物品,再取它最相似的K個物品,似乎不太符合

https://img1.sycdn.imooc.com//5c0f34080001447d05360176.jpg

我重寫了下,老師你看有問題么,非常感謝!

def?cal_recom_result_2(sim_info,user_click):
????"""
????recom?by?item?collaboritive?filter
????Args:
????????sim_info:item?sim?dict
????????user_click:user?click?dict
????Return:
????????dict,key:userid?value?dict,?value_key?itemid,value_value?recome_score
????"""
????topk?=?5
????recom_info?=?{}
????for?user?in?user_click:
????????click_list?=?user_click[user]
????????recom_info.setdefault(user,{})
????????for?itemid_i,sim_item?in?sim_info.items():
????????????for?itemid_j,sim_score?in?sim_item[:topk]:
????????????????if?itemid_j?not?in?click_list:
????????????????????continue
????????????????recom_info[user].setdefault(itemid_j,0)
????????????????recom_info[user][itemid_j]?+=?sim_score
????return?recom_info


正在回答

4 回答

您好,取了top幾個物品是由于有時效性,推薦過程中,我們不可能把用戶去年操作過的物品也拿過來做itemcf。因為隨著時間推移??赡茉缫呀洸幌矚g之前的物品了。所以召回過程中考慮到這一點。謝謝。

0 回復 有任何疑惑可以回復我~
#1

朱思利 提問者

感謝老師!剛沒考慮時效問題。 假如考慮時效后,比如取最新3個物品u1、u2、u3,按算法應該是遍歷全部物品j,然后計算j與u1、u2、u3的相似度,再求和,再按和的大小排序,推薦最高的 核心疑問就是:p值公式是一個求和公式,我們計算時好像沒有求和
2018-12-11 回復 有任何疑惑可以回復我~
#2

慕少0472972 回復 朱思利 提問者

確實是,老師這里寫的確實沒有求和
2019-01-03 回復 有任何疑惑可以回復我~
#3

慕萊塢9201401 回復 朱思利 提問者

公式中規定的是與j最相似的k個物品,老師代碼中好像當成了與i最相似的k個物品
2019-01-25 回復 有任何疑惑可以回復我~
for?user_id,?item_list?in?user_click:
????recom_result.setdefault(user_id,?{})
????for?itemi,?sim_dict?in?sim_info:
????????for?itemj,?val?in?sim_info[itemi][:k]:
????????????if?itemj?not?in?item_list[:recent_click_num]:
????????????????continue
????????????recom_result[user_id].setdefault(itemi,?0)
????????????recom_result[user_id][itemi]?=?val

上面那個不對,應該是這個

0 回復 有任何疑惑可以回復我~
recent_click_num?=?3
k?=?3
for?user_id,?item_set?in?user_click.items():
????recom_result.setdefault(user_id,?{})????????
????for?item_id1?in?item_set[:recent_click_num]:
????????if?item_id1?not?in?sim_info:
????????????continue
????????for?item_id2,?val?in?sim_info[item_id1]:
????????????if?item_id1?not?in?sim_info[item_id2][:k]:
????????????????continue
????????????recom_result[user_id].setdefault(item_id2,?0)
????????????recom_result[user_id][item_id2]?=?val
return?recom_result


0 回復 有任何疑惑可以回復我~
倒數第二句代碼應該是recom_info[user][itemid_i]?+=?sim_score,不是?itemid_j


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

P值計算好像不太對

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號