-
大小: 13KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-05-29
- 語言: 其他
- 標(biāo)簽:
資源簡介
基于用戶的協(xié)同過濾和基于內(nèi)容的混合推薦系統(tǒng)源代碼。

代碼片段和文件信息
#?代碼說明:
#?基于內(nèi)容的推薦算法的具體實現(xiàn)
import?math
import?numpy?as?np
import?pandas?as?pd
#?創(chuàng)建節(jié)目畫像
#?參數(shù)說明:
#?items_profiles?=?{item1:{‘label1‘:1?‘label2‘:?0?‘label3‘:?0?...}?item2:{...}...}
def?createItemsProfiles(data_array?labels_names?items_names):
????items_profiles?=?{}
????for?i?in?range(len(items_names)):
????????items_profiles[items_names[i]]?=?{}
????????for?j?in?range(len(labels_names)):
????????????items_profiles[items_names[i]][labels_names[j]]?=?data_array[i][j]
????return?items_profiles
#?創(chuàng)建用戶畫像
#?參數(shù)說明:
#?data_array:?所有用戶對于其所看過的節(jié)目的評分矩陣?data_array?=?[[2?0?0?1.1?...]?[0?0?1.1?...]?...]
#?users_profiles?=?{user1:{‘label1‘:1.1?‘label2‘:?0.5?‘label3‘:?0.0?...}?user2:{...}...}
def?createUsersProfiles(data_array?users_names?items_names?labels_names?items_profiles):
????users_profiles?=?{}
????#?計算每個用戶對所看過的所有節(jié)目的平均隱性評分
????#?users_average_scores_list?=?[1.2?2.2?4.3...]
????users_average_scores_list?=?[]
????#?統(tǒng)計每個用戶所看過的節(jié)目(不加入隱性評分信息)
????#?items_users_saw?=?{user1:[item1?item3?item5]?user2:[...]...}
????items_users_saw?=?{}
????#?統(tǒng)計每個用戶所看過的節(jié)目及評分
????#?items_users_saw_scores?=?{user1:[[item1?1.1]?[item2?4.1]]?user2:...}
????items_users_saw_scores?=?{}
????for?i?in?range(len(users_names)):
????????items_users_saw_scores[users_names[i]]?=?[]
????????items_users_saw[users_names[i]]?=?[]
????????count?=?0
????????sum?=?0.0
????????for?j?in?range(len(items_names)):
????????????#?用戶對該節(jié)目隱性評分為正,表示真正看過該節(jié)目
????????????if?data_array[i][j]?>?0:
????????????????items_users_saw[users_names[i]].append(items_names[j])
????????????????items_users_saw_scores[users_names[i]].append([items_names[j]?data_array[i][j]])
????????????????count?+=?1
????????????????sum?+=?data_array[i][j]
????????if?count?==?0:
????????????users_average_scores_list.append(0)
????????else:
????????????users_average_scores_list.append(sum?/?count)
????for?i?in?range(len(users_names)):
????????users_profiles[users_names[i]]?=?{}
????????for?j?in?range(len(labels_names)):
????????????count?=?0
????????????score?=?0.0
????????????for?item?in?items_users_saw_scores[users_names[i]]:
????????????????#?參數(shù):
????????????????#?用戶user1對于類型label1的隱性評分:?user1_score_to_label1
????????????????#?用戶user1對于其看過的含有類型label1的節(jié)目item?i?的評分:?score_to_item?i
????????????????#?用戶user1對其所看過的所有節(jié)目的平均評分:?user1_average_score
????????????????#?用戶user1看過的節(jié)目總數(shù):?items_count
????????????????#?公式:?user1_score_to_label1?=?Sigma(score_to_item?i?-?user1_average_score)/items_count
????????????????#?該節(jié)目含有特定標(biāo)簽labels_names[j]
????????????????if?items_profiles[item[0]][labels_names[j]]?>?0:
????????????????????score?+=?(item[1]?-?users_average_scores_list[i])
????????????????????count?+=?1
????????????#?如果求出的值太小,直接置0
????????????if?abs(score)?1e-6:
????????????????score?=?0.0
????????????if?count?==?0:
????????????????result?=?0.0
????????????else:
????????????????result?=?score?/?count
????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????8592??2018-05-02?12:51??recommender_system\CB.py
?????文件???????4849??2018-05-02?21:27??recommender_system\CB_Mixture_userCF.py
?????文件???????1841??2018-05-02?00:36??recommender_system\items_labels_to_01matrix.py
?????文件???????2230??2018-05-02?11:31??recommender_system\items_saw_labels_to_01matrix.py
?????文件???????7586??2018-05-02?19:53??recommender_system\UserCF.py
?????文件???????3686??2018-05-02?20:13??recommender_system\__pycache__\CB.cpython-36.pyc
?????文件???????3648??2018-05-02?20:13??recommender_system\__pycache__\UserCF.cpython-36.pyc
?????目錄??????????0??2018-05-02?21:57??recommender_system\__pycache__
?????目錄??????????0??2018-05-02?21:57??recommender_system
-----------?---------??----------?-----??----
????????????????32432????????????????????9
評論
共有 條評論