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

Python用戶推薦系統(tǒng)曼哈頓算法實(shí)現(xiàn)完整代碼

 更新時(shí)間:2017年12月01日 11:31:27   投稿:mengwei  
這篇文章主要介紹了Python用戶推薦系統(tǒng)曼哈頓算法實(shí)現(xiàn)完整代碼,簡(jiǎn)單介紹了曼哈頓距離的定義,然后分享了其Python實(shí)現(xiàn)代碼,具有一定借鑒價(jià)值,需要的朋友可以了解下。

出租車幾何或曼哈頓距離(Manhattan Distance)是由十九世紀(jì)的赫爾曼·閔可夫斯基所創(chuàng)詞匯 ,是種使用在幾何度量空間的幾何學(xué)用語(yǔ),用以標(biāo)明兩個(gè)點(diǎn)在標(biāo)準(zhǔn)坐標(biāo)系上的絕對(duì)軸距總和。

圖中紅線代表曼哈頓距離,綠色代表歐氏距離,也就是直線距離,而藍(lán)色和黃色代表等價(jià)的曼哈頓距離。曼哈頓距離——兩點(diǎn)在南北方向上的距離加上在東西方向上的距離,即d(i,j)=|xi-xj|+|yi-yj|。對(duì)于一個(gè)具有正南正北、正東正西方向規(guī)則布局的城鎮(zhèn)街道,從一點(diǎn)到達(dá)另一點(diǎn)的距離正是在南北方向上旅行的距離加上在東西方向上旅行的距離,因此,曼哈頓距離又稱為出租車距離。曼哈頓距離不是距離不變量,當(dāng)坐標(biāo)軸變動(dòng)時(shí),點(diǎn)間的距離就會(huì)不同。曼哈頓距離示意圖在早期的計(jì)算機(jī)圖形學(xué)中,屏幕是由像素構(gòu)成,是整數(shù),點(diǎn)的坐標(biāo)也一般是整數(shù),原因是浮點(diǎn)運(yùn)算很昂貴,很慢而且有誤差,如果直接使用AB的歐氏距離(歐幾里德距離:在二維和三維空間中的歐氏距離的就是兩點(diǎn)之間的距離),則必須要進(jìn)行浮點(diǎn)運(yùn)算,如果使用AC和CB,則只要計(jì)算加減法即可,這就大大提高了運(yùn)算速度,而且不管累計(jì)運(yùn)算多少次,都不會(huì)有誤差。

Python用戶推薦系統(tǒng)曼哈頓算法實(shí)現(xiàn)

#-*- coding: utf-8 -*-
 
import codecs
from math import sqrt
 
users = {"Angelica": {"Blues Traveler": 3.5, "Broken Bells": 2.0, "Norah Jones": 4.5, "Phoenix": 5.0, "Slightly Stoopid": 1.5, "The Strokes": 2.5, "Vampire Weekend": 2.0},
     "Bill":{"Blues Traveler": 2.0, "Broken Bells": 3.5, "Deadmau5": 4.0, "Phoenix": 2.0, "Slightly Stoopid": 3.5, "Vampire Weekend": 3.0},
     "Chan": {"Blues Traveler": 5.0, "Broken Bells": 1.0, "Deadmau5": 1.0, "Norah Jones": 3.0, "Phoenix": 5, "Slightly Stoopid": 1.0},
     "Dan": {"Blues Traveler": 3.0, "Broken Bells": 4.0, "Deadmau5": 4.5, "Phoenix": 3.0, "Slightly Stoopid": 4.5, "The Strokes": 4.0, "Vampire Weekend": 2.0},
     "Hailey": {"Broken Bells": 4.0, "Deadmau5": 1.0, "Norah Jones": 4.0, "The Strokes": 4.0, "Vampire Weekend": 1.0},
     "Jordyn": {"Broken Bells": 4.5, "Deadmau5": 4.0, "Norah Jones": 5.0, "Phoenix": 5.0, "Slightly Stoopid": 4.5, "The Strokes": 4.0, "Vampire Weekend": 4.0},
     "Sam": {"Blues Traveler": 5.0, "Broken Bells": 2.0, "Norah Jones": 3.0, "Phoenix": 5.0, "Slightly Stoopid": 4.0, "The Strokes": 5.0},
     "Veronica": {"Blues Traveler": 3.0, "Norah Jones": 5.0, "Phoenix": 4.0, "Slightly Stoopid": 2.5, "The Strokes": 3.0}
    }
 
# Python計(jì)算曼哈頓距離 www.iplaypy.com
def manhattan(rate1,rate2):
  distance = 0
  commonRating = False
  for key in rate1:
    if key in rate2:
      distance+=abs(rate1[key]-rate2[key])
      commonRating=True
  if commonRating:
    return distance
  else:
    return -1
 
# python返回最近距離用戶
def computeNearestNeighbor(username,users):
  distances = []
  for key in users:
    if key<>username:
      distance = manhattan(users[username],users[key])
      distances.append((distance,key)) 
  distances.sort()     
  return distances
 
#推薦python實(shí)現(xiàn)
def recommend(username,users):
  #獲得最近用戶的name
  nearest = computeNearestNeighbor(username,users)[0][1]
  recommendations =[]
  #得到最近用戶的推薦列表
  neighborRatings = users[nearest]
  for key in neighborRatings:
    if not key in users[username]:
      recommendations.append((key,neighborRatings[key]))
  recommendations.sort(key=lambda rat:rat[1], reverse=True)
  return recommendations
 
   
if __name__ == '__main__':
  print recommend('Hailey', users)

總結(jié)

以上就是本文關(guān)于Python用戶推薦系統(tǒng)曼哈頓算法實(shí)現(xiàn)完整代碼的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

相關(guān)文章

  • Python錯(cuò)誤+異常+模塊總結(jié)

    Python錯(cuò)誤+異常+模塊總結(jié)

    這篇文章主要介紹了Python錯(cuò)誤+異常+模塊總結(jié),在編程時(shí)遇見(jiàn)錯(cuò)誤信息在所難免,Python中會(huì)也有很多種錯(cuò)誤信息,常見(jiàn)的兩種就是語(yǔ)法錯(cuò)誤和邏輯錯(cuò)誤,下文我們就來(lái)總結(jié)一下那些常見(jiàn)的異常,需要的小伙伴可以參考一下
    2022-05-05
  • Python一階馬爾科夫鏈生成隨機(jī)DNA序列實(shí)現(xiàn)示例

    Python一階馬爾科夫鏈生成隨機(jī)DNA序列實(shí)現(xiàn)示例

    這篇文章主要為大家介紹了Python實(shí)現(xiàn)一階馬爾科夫鏈生成隨機(jī)DNA序列示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • python繪圖模塊matplotlib示例詳解

    python繪圖模塊matplotlib示例詳解

    這篇文章主要介紹了python繪圖模塊matplotlib示例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Python創(chuàng)建自己的加密貨幣的示例

    Python創(chuàng)建自己的加密貨幣的示例

    這篇文章主要介紹了Python創(chuàng)建自己的加密貨幣的示例,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03
  • Numpy中np.random.rand()和np.random.randn() 用法和區(qū)別詳解

    Numpy中np.random.rand()和np.random.randn() 用法和區(qū)別詳解

    這篇文章主要介紹了Numpy中np.random.rand()和np.random.randn() 用法和區(qū)別詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Python+Django實(shí)現(xiàn)接口測(cè)試工具的示例代嗎

    Python+Django實(shí)現(xiàn)接口測(cè)試工具的示例代嗎

    本文主要介紹了Python+Django實(shí)現(xiàn)接口測(cè)試工具,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Python使用正則表達(dá)式實(shí)現(xiàn)爬蟲(chóng)數(shù)據(jù)抽取

    Python使用正則表達(dá)式實(shí)現(xiàn)爬蟲(chóng)數(shù)據(jù)抽取

    這篇文章主要介紹了Python使用正則表達(dá)式實(shí)現(xiàn)爬蟲(chóng)數(shù)據(jù)抽取,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 用Python selenium實(shí)現(xiàn)淘寶搶單機(jī)器人

    用Python selenium實(shí)現(xiàn)淘寶搶單機(jī)器人

    今天給大家?guī)?lái)的是關(guān)于Python實(shí)戰(zhàn)的相關(guān)知識(shí),文章圍繞著用Python selenium實(shí)現(xiàn)淘寶搶單機(jī)器人展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • 利用Python爬蟲(chóng)實(shí)現(xiàn)搶購(gòu)某寶秒殺商品

    利用Python爬蟲(chóng)實(shí)現(xiàn)搶購(gòu)某寶秒殺商品

    這篇文章主要介紹了利用Python爬蟲(chóng)實(shí)現(xiàn)搶購(gòu)某寶秒殺商品,文章基于python的相關(guān)資料展開(kāi)詳細(xì)的內(nèi)容介紹具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-06-06
  • python3格式化字符串 f-string的高級(jí)用法(推薦)

    python3格式化字符串 f-string的高級(jí)用法(推薦)

    從Python 3.6開(kāi)始,f-string是格式化字符串的一種很好的新方法。與其他格式化方式相比,它們不僅更易讀,更簡(jiǎn)潔,不易出錯(cuò),而且速度更快!本文重點(diǎn)給大家介紹python3格式化字符串 f-string的高級(jí)用法,一起看看吧
    2020-03-03

最新評(píng)論

阿克陶县| 当阳市| 尖扎县| 休宁县| 武强县| 曲麻莱县| 安阳县| 乌兰浩特市| 高清| 城口县| 历史| 濮阳县| 南郑县| 万盛区| 玛纳斯县| 乡宁县| 孝昌县| 清远市| 贡觉县| 河曲县| 凤山市| 和顺县| 葵青区| 太原市| 清水县| 墨脱县| 且末县| 富宁县| 宜城市| 赣榆县| 汝阳县| 清河县| 桐梓县| 厦门市| 石林| 平罗县| 松滋市| 寻甸| 广水市| 维西| 连城县|