P值計算好像不太對
老師你好,感謝分享!有個小問題:
ICF中最后P值計算,是指與J最相似的K個物品,和用戶U操作過的物品的交集,把他們的s求和。這個應該要遍歷所有物品吧?
但是視頻代碼中,取用戶操作過的前3個物品,再取它最相似的K個物品,似乎不太符合

我重寫了下,老師你看有問題么,非常感謝!
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
2018-12-11
您好,取了top幾個物品是由于有時效性,推薦過程中,我們不可能把用戶去年操作過的物品也拿過來做itemcf。因為隨著時間推移??赡茉缫呀洸幌矚g之前的物品了。所以召回過程中考慮到這一點。謝謝。
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上面那個不對,應該是這個
2019-01-25
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_result2019-01-25