最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

簡單的python協(xié)同過濾程序?qū)嵗a

 更新時間:2018年01月31日 11:11:20   作者:葉落花開  
這篇文章主要介紹了簡單的python協(xié)同過濾程序,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下

本文研究的主要是python協(xié)同過濾程序的相關(guān)內(nèi)容,具體介紹如下。

關(guān)于協(xié)同過濾的一個最經(jīng)典的例子就是看電影,有時候不知道哪一部電影是我們喜歡的或者評分比較高的,那么通常的做法就是問問周圍的朋友,看看最近有什么好的電影推薦。在問的時候,都習(xí)慣于問跟自己口味差不多的朋友,這就是協(xié)同過濾的核心思想。

這個程序完全是為了應(yīng)付大數(shù)據(jù)分析與計算的課程作業(yè)所寫的一個小程序,先上程序,一共55行。不在意細節(jié)的話,55行的程序已經(jīng)表現(xiàn)出了協(xié)同過濾的特性了。就是對每一個用戶找4個最接近的用戶,然后進行推薦,在選擇推薦的時候是直接做的在4個用戶中選擇該用戶item沒包括的,當(dāng)然這里沒限制推薦數(shù)量,個人覺得如果要提高推薦準確率的畫,起碼,1,要對流行的item進行處理。2,將相鄰的四個用戶的item進行排序,從多到少的進行推薦。程序所用的數(shù)據(jù)是movielens上的(http://grouplens.org/datasets/movielens)。相似度的計算也很簡單,直接用了交集和差集的比值。好吧,上程序

#coding utf-8
import os
import sys
import re

f1=open("/home/alber/data_base/bigdata/movielens_train_result.txt",'r')  #讀取train文件,已經(jīng)處理成每一行代表一位用戶的item,項之間用空格。
f2=open("/home/alber/data_base/bigdata/movielens_train_result3.txt",'a')
txt=f1.readlines()
contxt=[]
f1.close()
userdic={}
for line in txt:
  line_clean=" ".join(line.split())
  position=line_clean.index(",")
  ID=line_clean[0:position]
  item=line_clean[position+1:]
  userdic.setdefault(ID,item)
  if len(item)>=5:           #對觀影量少于5的用戶不計入相似性計算的范圍
    contxt.append(item)
for key in userdic.keys():        #計算每位用戶的4個最相似用戶
  ID_num=key
  value=userdic[key]
   user_item=value.split(' ')
   Sim_user=[]
   for lines in contxt:
     lines_clean=lines.split(' ')
     intersection=list(set(lines_clean).intersection(set(user_item)))
     lenth_intersection=len(intersection)
     difference=list(set(lines_clean).difference(set(user_item)))
     lenth_difference=len(difference)
     if lenth_difference!=0:                     
       Similarity=float(lenth_intersection)/lenth_difference          #交集除以差集作為相似性的判斷條件
       Sim_user.append(Similarity)
     else:
       Sim_user.append("0")
   Sim_user_copy=Sim_user[:]
   Sim_user_copy.sort()
   Sim_best=Sim_user_copy[-4:]
   position1=Sim_user.index(Sim_best[3])
   position2=Sim_user.index(Sim_best[2])
   position3=Sim_user.index(Sim_best[1])
   position4=Sim_user.index(Sim_best[0])
   if position1!=0 and position2!=0 and position3!=0 and position4!=0:
     recommender=userdic[str(position1)]+" "+userdic[str(position2)]+" "+userdic[str(position3)]+" "+userdic[str(position4)] #將4位用戶的看過的電影作為推薦 
  else:
    recommender="none"   
  reco_list=recommender.split(' ')
  recomm=[]
  for good in reco_list:
    if good not in user_item:
      recomm.append(good)
    else:
      pass
  f2.write((" ".join(recomm)+"\n"))
f2.close()

總結(jié)

以上就是本文關(guān)于簡單的python協(xié)同過濾程序?qū)嵗a的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關(guān)文章

  • 解析目標檢測之IoU

    解析目標檢測之IoU

    Intersection over Union(IoU)是一種測量在特定數(shù)據(jù)集中檢測相應(yīng)物體準確度的一個標準。IoU是一個簡單的測量標準,只要是在輸出中得出一個預(yù)測范圍(bounding boxes)的任務(wù)都可以用IoU來進行測量
    2021-06-06
  • Python快速實現(xiàn)分列轉(zhuǎn)到行的示例代碼

    Python快速實現(xiàn)分列轉(zhuǎn)到行的示例代碼

    這篇文章主要為大家詳細介紹了如何利用Python快速實現(xiàn)分列轉(zhuǎn)到行的效果,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)一下
    2023-03-03
  • python實現(xiàn)UDP協(xié)議下的文件傳輸

    python實現(xiàn)UDP協(xié)議下的文件傳輸

    這篇文章主要為大家詳細介紹了python實現(xiàn)UDP協(xié)議下的文件傳輸,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • 利用python解決mysql視圖導(dǎo)入導(dǎo)出依賴的問題

    利用python解決mysql視圖導(dǎo)入導(dǎo)出依賴的問題

    這篇文章主要給大家介紹了關(guān)于利用python解決mysql視圖導(dǎo)入導(dǎo)出依賴的問題,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-12-12
  • python3新特性函數(shù)注釋Function Annotations用法分析

    python3新特性函數(shù)注釋Function Annotations用法分析

    這篇文章主要介紹了python3新特性函數(shù)注釋Function Annotations用法,結(jié)合實例形式分析了Python3函數(shù)注釋的定義方法與使用技巧,需要的朋友可以參考下
    2016-07-07
  • python繪制地震散點圖

    python繪制地震散點圖

    這篇文章主要為大家詳細介紹了python繪制地震散點圖的相關(guān)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • 詳解python requests中的post請求的參數(shù)問題

    詳解python requests中的post請求的參數(shù)問題

    這篇文章主要介紹了詳解python requests中的post請求的參數(shù)問題,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Python中私有屬性“_“下劃線和“__“雙下劃線區(qū)別

    Python中私有屬性“_“下劃線和“__“雙下劃線區(qū)別

    本文主要介紹了Python中私有屬性“_“下劃線和“__“雙下劃線區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 解讀python中的類型提示(type hint)

    解讀python中的類型提示(type hint)

    這篇文章主要介紹了解讀python中的類型提示(type hint),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Python實現(xiàn)的直接插入排序算法示例

    Python實現(xiàn)的直接插入排序算法示例

    這篇文章主要介紹了Python實現(xiàn)的直接插入排序算法,結(jié)合實例形式分析了Python直接插入排序算法的定義與使用相關(guān)操作技巧,代碼備有較為詳盡的注釋便于理解,需要的朋友可以參考下
    2018-04-04

最新評論

陇川县| 辽中县| 洪湖市| 香河县| 福泉市| 玉龙| 九龙坡区| 凤阳县| 措勤县| 抚顺市| 临安市| 修水县| 西华县| 荣成市| 茌平县| 固始县| 石狮市| 广昌县| 蒙城县| 林甸县| 巴林右旗| 讷河市| 含山县| 牙克石市| 迁安市| 佛学| 大理市| 进贤县| 法库县| 吉木萨尔县| 祥云县| 福州市| 陕西省| 胶南市| 宣武区| 安岳县| 锦州市| 漳浦县| 邻水| 本溪市| 闽清县|