資源簡介
數據挖掘課程課件+學生實驗設計+基于相似性分析和用戶偏好的商品推薦系統(tǒng)論文

代碼片段和文件信息
from?math?import?sqrt
#用戶影評數據#
critics={‘Lisa?Rose‘:?{‘Lady?in?the?Water‘:?2.5?‘Snakes?on?a?Plane‘:?3.5
?‘Just?My?Luck‘:?3.0?‘Superman?Returns‘:?3.5?‘You?Me?and?Dupree‘:?2.5?
?‘The?Night?Listener‘:?3.0}
‘Gene?Seymour‘:?{‘Lady?in?the?Water‘:?3.0?‘Snakes?on?a?Plane‘:?3.5?
?‘Just?My?Luck‘:?1.5?‘Superman?Returns‘:?5.0?‘The?Night?Listener‘:?3.0?
?‘You?Me?and?Dupree‘:?3.5}?
‘Michael?Phillips‘:?{‘Lady?in?the?Water‘:?2.5?‘Snakes?on?a?Plane‘:?3.0
?‘Superman?Returns‘:?3.5?‘The?Night?Listener‘:?4.0}
‘Claudia?Puig‘:?{‘Snakes?on?a?Plane‘:?3.5?‘Just?My?Luck‘:?3.0
?‘The?Night?Listener‘:?4.5?‘Superman?Returns‘:?4.0?
?‘You?Me?and?Dupree‘:?2.5}
‘Mick?LaSalle‘:?{‘Lady?in?the?Water‘:?3.0?‘Snakes?on?a?Plane‘:?4.0?
?‘Just?My?Luck‘:?2.0?‘Superman?Returns‘:?3.0?‘The?Night?Listener‘:?3.0
?‘You?Me?and?Dupree‘:?2.0}?
‘Jack?Matthews‘:?{‘Lady?in?the?Water‘:?3.0?‘Snakes?on?a?Plane‘:?4.0
?‘The?Night?Listener‘:?3.0?‘Superman?Returns‘:?5.0?‘You?Me?and?Dupree‘:?3.5}
‘Toby‘:?{‘Snakes?on?a?Plane‘:4.5‘You?Me?and?Dupree‘:1.0‘Superman?Returns‘:4.0}}
#?返回p1和p2的皮爾遜相關系數
def?sim_pearson(prefsp1p2):
??#?得到雙方都曾評價過的物品列表
????si?={}
????for?item?in?prefs[p1]:?
????????if?item?in?prefs[p2]:?si[item]=1
????#?得到列表元素的個數
????n=len(si)
????#?如果兩者沒有共同之處,則返回0
????if?n==0:?return?1
????#?對所有偏好求和
????sum1=sum([prefs[p1][it]?for?it?in?si])
????sum2=sum([prefs[p2][it]?for?it?in?si])
????#?對所有偏好求平方和
????sum1Sq=sum([pow(prefs[p1][it]2)?for?it?in?si])
????sum2Sq=sum([pow(prefs[p2][it]2)?for?it?in?si])
????#?求乘積之和
????pSum=sum([prefs[p1][it]*prefs[p2][it]?for?it?in?si])
????#?計算皮爾遜評價值
????num=pSum-(sum1*sum2/n)
????den=sqrt((sum1Sq-pow(sum12)/n)*(sum2Sq-pow(sum22)/n))
????if?den==0:?return?0
????r?=?num?/?den
????return?r
#?測試sim_pearson函數
#sim_pearson(critics?‘Lisa?Rose‘?‘Gene?Seymour‘)
#?從數據字典中返回最佳的匹配者
#?返回結果的個數和相似度函數都是可選參數
def?topMatches(prefspersonn=5similarity=sim_pearson):
????scores=[(similarity(prefspersonother)other)?
????????????for?other?in?prefs?if?other!=person]
??
????#?對打分情況進行排序
????scores.sort()
????scores.reverse()
????return?scores[0:n]
#?測試topMatches函數
#?topMatches(critics?‘Toby‘?n=3)
#?利用所有他人評價值的加權平均,為某人提供建議
def?getRecommendations(prefspersonsimilarity=sim_pearson):
????totals={}
????simSums={}
????for?other?in?prefs:
????#?不和自己比較
????????if?other==person:?continue
????????sim=similarity(prefspersonother)
????????#?忽略評價值為0或小于0的情況
????????if?sim<=0:?continue
????????for?item?in?prefs[other]:
????????????#?僅為自己還沒有看過的影片進行評價
????????????if?item?not?in?prefs[person]?or?prefs[person][item]==0:
????????????????#?相似度*評價值
????????????????totals.setdefault(item0)
????????????????totals[item]+=prefs[other][item]*sim
????????????????#?相似度之和?
????????????????simSums.setdefault(item0)
????????????????simSums[item]+=sim
????#?建立一個歸一化的列表
????rankings=[(total/simSums[item]item)?for?itemtotal?in?totals.items()]
????#?返回經過排序的列表
???
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????6524??2018-07-10?16:11??數據挖掘\.ipynb_checkpoints\Unti
?????文件???????3351??2018-07-10?16:13??數據挖掘\基于相似性分析和用戶偏好的商品推薦系統(tǒng)\code.py
?????文件??????60627??2019-03-07?08:28??數據挖掘\基于相似性分析和用戶偏好的商品推薦系統(tǒng)\基于相似性分析和用戶偏好的商品推薦系統(tǒng)?(2).docx
?????文件??????59787??2019-03-07?08:28??數據挖掘\基于相似性分析和用戶偏好的商品推薦系統(tǒng)\基于相似性分析和用戶偏好的商品推薦系統(tǒng).docx
?????文件????1645568??2018-06-26?20:00??數據挖掘\數據挖掘實驗設計.doc
?????目錄??????????0??2018-12-20?09:56??數據挖掘\.ipynb_checkpoints
?????目錄??????????0??2019-03-07?08:29??數據挖掘\基于相似性分析和用戶偏好的商品推薦系統(tǒng)
?????目錄??????????0??2019-03-07?08:30??數據挖掘
-----------?---------??----------?-----??----
??????????????1775857????????????????????8
評論
共有 條評論