精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

用Spark學習矩陣分解推薦算法

大數據 算法 Spark
在矩陣分解在協同過濾推薦算法中的應用中,我們對矩陣分解在推薦算法中的應用原理做了總結,這里我們就從實踐的角度來用Spark學習矩陣分解推薦算法。

[[182792]]

在矩陣分解在協同過濾推薦算法中的應用中,我們對矩陣分解在推薦算法中的應用原理做了總結,這里我們就從實踐的角度來用Spark學習矩陣分解推薦算法。

1. Spark推薦算法概述

在Spark MLlib中,推薦算法這塊只實現了基于矩陣分解的協同過濾推薦算法。而基于的算法是FunkSVD算法,即將m個用戶和n個物品對應的評分矩陣M分解為兩個低維的矩陣:

其中k為分解成低維的維數,一般遠比m和n小。如果大家對FunkSVD算法不熟悉,可以復習對應的原理篇。

2. Spark推薦算法類庫介紹

在Spark MLlib中,實現的FunkSVD算法支持Python,Java,Scala和R的接口。由于前面的實踐篇我們都是基于Python,本文的后面的介紹和使用也會使用MLlib的Python接口。

Spark MLlib推薦算法python對應的接口都在pyspark.mllib.recommendation包中,這個包有三個類,Rating, MatrixFactorizationModel和ALS。雖然里面有三個類,但是算法只是FunkSVD算法。下面介紹這三個類的用途。

Rating類比較簡單,僅僅只是為了封裝用戶,物品與評分這3個值。也就是說,Rating類里面只有用戶,物品與評分三元組, 并沒有什么函數接口。

ALS負責訓練我們的FunkSVD模型。之所以這兒用交替最小二乘法ALS表示,是因為Spark在FunkSVD的矩陣分解的目標函數優化時,使用的是ALS。ALS函數有兩個函數,一個是train,這個函數直接使用我們的評分矩陣來訓練數據,而另一個函數trainImplicit則稍微復雜一點,它使用隱式反饋數據來訓練模型,和train函數相比,它多了一個指定隱式反饋信心閾值的參數,比如我們可以將評分矩陣轉化為反饋數據矩陣,將對應的評分值根據一定的反饋原則轉化為信心權重值。由于隱式反饋原則一般要根據具體的問題和數據來定,本文后面只討論普通的評分矩陣分解。

MatrixFactorizationModel類是我們用ALS類訓練出來的模型,這個模型可以幫助我們做預測。常用的預測有某一用戶和某一物品對應的評分,某用戶最喜歡的N個物品,某物品可能會被最喜歡的N個用戶,所有用戶各自最喜歡的N物品,以及所有物品被最喜歡的N個用戶。

對于這些類的用法我們再后面會有例子講解。

3. Spark推薦算法重要類參數

這里我們再對ALS訓練模型時的重要參數做一個總結。

1) ratings : 評分矩陣對應的RDD。需要我們輸入。如果是隱式反饋,則是評分矩陣對應的隱式反饋矩陣。

2) rank : 矩陣分解時對應的低維的維數。即PTm×kQk×nPm×kTQk×n中的維度k。這個值會影響矩陣分解的性能,越大則算法運行的時間和占用的內存可能會越多。通常需要進行調參,一般可以取10-200之間的數。

3) iterations :在矩陣分解用交替最小二乘法求解時,進行迭代的***次數。這個值取決于評分矩陣的維度,以及評分矩陣的系數程度。一般來說,不需要太大,比如5-20次即可。默認值是5。

4) lambda: 在 python接口中使用的是lambda_,原因是lambda是Python的保留字。這個值即為FunkSVD分解時對應的正則化系數。主要用于控制模型的擬合程度,增強模型泛化能力。取值越大,則正則化懲罰越強。大型推薦系統一般需要調參得到合適的值。

5) alpha : 這個參數僅僅在使用隱式反饋trainImplicit時有用。指定了隱式反饋信心閾值,這個值越大則越認為用戶和他沒有評分的物品之間沒有關聯。一般需要調參得到合適值。

從上面的描述可以看出,使用ALS算法還是蠻簡單的,需要注意調參的參數主要的是矩陣分解的維數rank, 正則化超參數lambda。如果是隱式反饋,還需要調參隱式反饋信心閾值alpha 。

4. Spark推薦算法實例

下面我們用一個具體的例子來講述Spark矩陣分解推薦算法的使用。

這里我們使用MovieLens 100K的數據,數據下載鏈接在這。

將數據解壓后,我們只使用其中的u.data文件中的評分數據。這個數據集每行有4列,分別對應用戶ID,物品ID,評分和時間戳。由于我的機器比較破,在下面的例子中,我只使用了前100條數據。因此如果你使用了所有的數據,后面的預測結果會與我的不同。

首先需要要確保你安裝好了Hadoop和Spark(版本不小于1.6),并設置好了環境變量。一般我們都是在ipython notebook(jupyter notebook)中學習,所以***把基于notebook的Spark環境搭好。當然不搭notebook的Spark環境也沒有關系,只是每次需要在運行前設置環境變量。

如果你沒有搭notebook的Spark環境,則需要先跑下面這段代碼。當然,如果你已經搭好了,則下面這段代碼不用跑了。

在跑算法之前,建議輸出Spark Context如下,如果可以正常打印內存地址,則說明Spark的運行環境搞定了。

  1. print sc 

比如我的輸出是:

首先我們將u.data文件讀入內存,并嘗試輸出***行的數據來檢驗是否成功讀入,注意復制代碼的時候,數據的目錄要用你自己的u.data的目錄。代碼如下:

輸出如下:

  1. u’196\t242\t3\t881250949′ 

可以看到數據是用\t分開的,我們需要將每行的字符串劃開,成為數組,并只取前三列,不要時間戳那一列。代碼如下:

輸出如下:

  1. [u’196′, u’242′, u’3′] 

此時雖然我們已經得到了評分矩陣數組對應的RDD,但是這些數據都還是字符串,Spark需要的是若干Rating類對應的數組。因此我們現在將RDD的數據類型做轉化,代碼如下:

輸出如下:

  1. Rating(user=196, product=242, rating=3.0) 

可見我們的數據已經是基于Rating類的RDD了,現在我們終于可以把整理好的數據拿來訓練了,代碼如下, 我們將矩陣分解的維度設置為20,***迭代次數設置為5,而正則化系數設置為0.02。在實際應用中,我們需要通過交叉驗證來選擇合適的矩陣分解維度與正則化系數。這里我們由于是實例,就簡化了。

將模型訓練完畢后,我們終于可以來做推薦系統的預測了。

首先做一個最簡單的預測,比如預測用戶38對物品20的評分。代碼如下:

  1. print model.predict(38,20) 

輸出如下:

  1. 0.311633491603 

可見評分并不高。

現在我們來預測了用戶38最喜歡的10個物品,代碼如下:

  1. print model.recommendProducts(38,10) 

輸出如下:

  1. [ Rating(user=38, product=95, rating=4.995227969811873),  
  2. Rating(user=38, product=304, rating=2.5159673379104484),  
  3. Rating(user=38, product=1014, rating=2.165428673820349),  
  4. Rating(user=38, product=322, rating=1.7002266119079879),  
  5. Rating(user=38, product=111, rating=1.2057528774266673),  
  6. Rating(user=38, product=196, rating=1.0612630766055788),  
  7. Rating(user=38, product=23, rating=1.0590775012913558),  
  8. Rating(user=38, product=327, rating=1.0335651317559753),  
  9. Rating(user=38, product=98, rating=0.9677333686628911),  
  10. Rating(user=38, product=181, rating=0.8536682271006641)] 

可以看出用戶38可能喜歡的對應評分從高到低的10個物品。

接著我們來預測下物品20可能最值得推薦的10個用戶,代碼如下:

  1. print model.recommendUsers(20,10) 

輸出如下:

  1. [ Rating(user=115, product=20, rating=2.9892138653406635),  
  2. Rating(user=25, product=20, rating=1.7558472892444517),  
  3. Rating(user=7, product=20, rating=1.523935609195585),  
  4. Rating(user=286, product=20, rating=1.3746309116764184),  
  5. Rating(user=222, product=20, rating=1.313891405211581),  
  6. Rating(user=135, product=20, rating=1.254412853860262),  
  7. Rating(user=186, product=20, rating=1.2194811581542384),  
  8. Rating(user=72, product=20, rating=1.1651855319930426),  
  9. Rating(user=241, product=20, rating=1.0863391992741023),  
  10. Rating(user=160, product=20, rating=1.072353288848142)] 

現在我們來看看每個用戶最值得推薦的三個物品,代碼如下:

  1. print model.recommendProductsForUsers(3).collect() 

由于輸出非常長,這里就不將輸出copy過來了。

而每個物品最值得被推薦的三個用戶,代碼如下:

  1. print model.recommendUsersForProducts(3).collect() 

同樣由于輸出非常長,這里就不將輸出copy過來了。

希望上面的例子對大家使用Spark矩陣分解推薦算法有幫助。

責任編輯:武曉燕 來源: 36大數據
相關推薦

2023-02-15 09:00:00

算法推薦系統矩陣分解算法

2021-06-24 08:30:00

人工智能數據計算

2022-04-06 15:05:52

機器學習深度學習數據庫

2017-07-11 09:46:29

2017-07-06 08:36:10

特征向量矩陣PCA

2024-02-02 10:26:26

2024-10-23 09:05:07

PixijsMatrixTransform

2024-02-26 00:06:00

排序學習算法斯奇拉姆

2017-08-10 15:31:57

Apache Spar TensorFlow

2018-07-05 08:26:16

矩陣分解技術

2014-07-15 09:36:55

機器學習

2014-07-04 10:05:57

機器學習

2016-09-30 15:03:13

推薦系統算法

2021-10-29 07:25:32

螺旋矩陣整數

2020-02-06 13:59:48

javascript算法復雜度

2020-06-29 07:30:00

推薦算法推薦系統

2023-12-01 10:21:00

機器學習算法

2024-02-05 09:30:10

推薦算法深度學習內容過濾

2021-10-28 19:33:36

矩陣圖像內存

2017-06-29 09:15:36

推薦算法策略
點贊
收藏

51CTO技術棧公眾號

亚洲激情中文在线| 国产一区二区久久久久| 国产网站一区二区三区| 国产一区私人高清影院| 蜜桃av免费观看| 99久久婷婷国产综合精品青牛牛| 免费欧美日韩国产三级电影| 中文字幕一区二区三区电影| 国产视频手机在线播放| 综合久久2o19| 99久久精品国产导航| 国产精品久久婷婷六月丁香| 中文字幕亚洲欧美日韩| 中文字幕av一区二区三区人| 欧美电影影音先锋| 波多野结衣家庭教师视频| 最新国产在线拍揄自揄视频| 久久综合久久综合久久综合| 亚洲va欧美va国产综合剧情| 69视频免费在线观看| 一区二区三区在线| 亚洲一区二区精品| 日本护士做爰视频| 麻豆久久久久| 色哟哟一区二区在线观看| 男人的天堂视频在线| 国产精品久久久久一区二区国产 | 日韩精品视频在线观看网址| 91日韩视频在线观看| 2021天堂中文幕一二区在线观| 国产美女一区二区| 26uuu亚洲国产精品| 亚洲欧美一区二区三区四区五区| 日韩中文字幕| 欧美精品18+| 久久久精品麻豆| 51精品视频| 一区二区久久久| 综合操久久久| 在线观看黄色av| 久久亚洲综合色一区二区三区| 精品素人av| 日韩欧美在线不卡| 一级黄色片在线免费观看| 一区在线影院| 欧美性欧美巨大黑白大战| 91免费视频网站在线观看| 麻豆av在线播放| 亚洲一区二区精品久久av| 国内精品国产三级国产99| 黄色网页网址在线免费| 中文字幕永久在线不卡| 日韩精品成人一区二区在线观看| 黄色一区二区视频| 国产精品乱看| 国模吧一区二区三区| 国产一级久久久| 伊人蜜桃色噜噜激情综合| 欧美疯狂做受xxxx高潮| 久久综合久久鬼| 精品不卡视频| 欧美一级免费看| 一区二区三区在线观看av| 久久久久网站| 国产精品女人久久久久久| 人妻中文字幕一区二区三区| 久久精品国产亚洲高清剧情介绍| 美日韩在线视频| 欧美日韩大片在线观看| 国产精品vip| 久久免费成人精品视频| 五月婷婷开心网| 香蕉久久夜色精品国产| 国产精品va在线播放| 中文字幕天堂在线| 狠狠色丁香婷婷综合| 91网站在线免费观看| 国产综合无码一区二区色蜜蜜| 久久精品男女| 成人黄色片在线| 亚洲av无码乱码国产麻豆| av一区二区三区黑人| 欧美少妇一区| 九义人在线观看完整免费版电视剧| 91麻豆国产在线观看| 日韩高清国产精品| 成人video亚洲精品| 午夜精品123| 精品少妇无遮挡毛片| 91麻豆精品| 日韩av在线免播放器| 丰满的亚洲女人毛茸茸| 香蕉国产精品| 欧美亚洲一级片| 97精品人妻一区二区三区| 成人夜色视频网站在线观看| 日韩动漫在线观看| 国产蜜臀在线| 欧美影视一区二区三区| 欧美极品jizzhd欧美仙踪林| 精品国产精品国产偷麻豆| 蜜臀久久99精品久久久无需会员 | 99精品在线| 国模gogo一区二区大胆私拍| 亚洲熟女乱色一区二区三区久久久 | 午夜精品久久久久久久久久蜜桃| 亚洲成人综合视频| 日本激情视频在线播放| 澳门成人av| 中文字幕日韩精品在线| 日韩成人免费在线视频| 青娱乐精品视频在线| 国产高清在线一区二区| 午夜免费播放观看在线视频| 精品日本高清在线播放| 无码国产精品一区二区高潮| 国内精品久久久久久99蜜桃| 国模精品系列视频| 国产深喉视频一区二区| 国产欧美综合色| 波多野结衣乳巨码无在线| 国产精品亚洲一区二区在线观看 | 天堂网成人在线| 国产a久久精品一区二区三区| 亚洲天堂男人的天堂| 欧美黑人一级片| 久草在线在线精品观看| 日韩欧美三级一区二区| av今日在线| 日韩欧美国产麻豆| 黄色一级片一级片| 日日夜夜精品视频天天综合网| 国产精品亚洲自拍| 手机看片福利在线| 一区二区三区中文在线观看| 91欧美一区二区三区| 久久麻豆精品| 国产精品视频中文字幕91| 黄色小视频在线免费观看| 欧美性xxxx极品hd满灌| 一区二区三区少妇| 一区视频在线| 国产精品自拍首页| 2019中文字幕在线电影免费 | 一本大道伊人av久久综合| 91久色porny| 国产乱子伦农村叉叉叉| 成人午夜网址| 欧美精品激情在线观看| 性一交一乱一伧老太| 玉米视频成人免费看| 美女又黄又免费的视频| 欧美久色视频| 97影院在线午夜| 毛片在线导航| 日韩精品中文字幕久久臀| av大片免费观看| 久久久久久97三级| 污污网站免费看| 成人羞羞动漫| 91在线无精精品一区二区| huan性巨大欧美| 欧美大片在线观看| 国产真人真事毛片| 91社区在线播放| 亚洲综合色在线观看| 国产精品二区不卡| 成人激情av| 丁香六月综合| 日韩视频精品在线| wwwav网站| 欧美日韩国产一区中文午夜| 久久精品视频18| 精品一区二区三区欧美| a级黄色片免费| 久久综合五月婷婷| 国产精品久久久久av免费| 精品孕妇一区二区三区| 精品成人a区在线观看| 欧美 日韩 精品| 国产精品久久久久三级| wwwww在线观看| 久久一区二区三区四区五区| 神马影院我不卡午夜| 精品国产麻豆| 欧美在线www| 黄色免费在线观看| 亚洲精品久久久久中文字幕二区| 欧美成人国产精品高潮| 99国产精品视频免费观看| 黄色aaa级片| 亚洲精品免费观看| 一本一生久久a久久精品综合蜜| 国产不卡网站| 另类专区欧美制服同性| 三级毛片在线免费看| 在线播放/欧美激情| 欧美三级韩国三级日本三斤在线观看| 国产精品99久久久久| 九一国产精品视频| 欧美aaaa视频| 国内精品二区| 国产精品亚洲四区在线观看| 日韩av免费看| 成人超碰在线| 欧美成人网在线| 国产视频精选在线| 精品国产乱码久久久久久夜甘婷婷| 久草中文在线视频| 欧美高清在线一区二区| 亚洲激情 欧美| 国产在线不卡一区| 五月婷婷之综合激情| 在线综合亚洲| 蜜臀在线免费观看| 色综合天天爱| 日本一区二区三区四区在线观看| 日韩高清中文字幕一区二区| 欧美激情亚洲激情| 免费黄网站在线| 中文字幕日韩欧美在线视频| 神马久久精品| 亚洲国产高潮在线观看| av免费在线不卡| 欧美另类高清zo欧美| 欧美男人亚洲天堂| 五月天中文字幕一区二区| 日本a级片视频| 亚洲视频在线观看三级| 在线看片中文字幕| 久久久久久久久久久久久久久99 | 成人午夜精品| 91爱视频在线| av丝袜在线| 欧美激情videos| av在线播放国产| 中文字幕亚洲一区| 春暖花开成人亚洲区| 日韩精品亚洲视频| 五月激情丁香婷婷| 亚洲国产精品99| 污视频软件在线观看| 亚洲第一网中文字幕| 欧美视频在线观看一区二区三区| 日本道色综合久久| 无码人妻av免费一区二区三区| 国产精品理论在线观看| 免费一级特黄3大片视频| 国产亚洲精久久久久久| 中国美女乱淫免费看视频| 成人综合在线视频| 中文字幕天堂网| 91亚洲国产成人精品一区二区三| 青青青国产在线视频| 天使萌一区二区三区免费观看| 青青草原国产免费| 久久久久国产精品| 高清无码一区二区在线观看吞精| 日韩成人一级| 久久av一区二区| 亚洲色图美女| 丝袜美腿玉足3d专区一区| 色欧美自拍视频| 特色特色大片在线| 亚洲激精日韩激精欧美精品| 成年人午夜视频在线观看 | 99久久精品国产麻豆演员表| 老熟女高潮一区二区三区| 波多野结衣中文一区| 国产精品jizz| 国产精品欧美一区喷水| 老湿机69福利| 欧美日韩视频免费播放| 国产精品欧美综合| 91精品国产综合久久精品图片| 欧美日韩乱国产| 色综合久久99| 国产又粗又长视频| 亚洲国产精彩中文乱码av| 国产中文字幕在线播放| 日韩三级成人av网| 欧美13videosex性极品| 国产日韩欧美一二三区| 伊人久久亚洲| 日本在线观看一区二区三区| 亚洲91视频| 日本免费一级视频| 国产一区二区精品久久99| 污片免费在线观看| 中文字幕一区二区三区在线不卡| 一区二区免费在线观看视频| 久久女同精品一区二区| 少妇高潮惨叫久久久久| 香蕉成人啪国产精品视频综合网| 国产一区二区精彩视频| 天天影视色香欲综合网老头| 最近中文字幕在线观看| 亚洲福利在线看| 成年人在线观看网站| 久久777国产线看观看精品| se01亚洲视频| 草莓视频一区| 国产国产精品| 久久久精品在线视频| 国产成人午夜精品影院观看视频| 免费在线观看污网站| 成人h动漫精品一区二区 | 99在线视频精品| 国产又粗又长又黄的视频| 午夜久久久久久电影| 一级黄色a视频| 亚洲欧美成人网| 91www在线| 亚洲综合在线中文字幕| 精品日本12videosex| 丁香六月激情婷婷| 国产一区不卡精品| 东京热无码av男人的天堂| 疯狂欧美牲乱大交777| 精品人妻一区二区三区浪潮在线| 精品成人免费观看| av片在线观看免费| 国产一区在线播放| 欧美熟乱15p| 国产自偷自偷免费一区| 久久综合九色综合久久久精品综合| 成年人网站免费在线观看| 亚洲一区二区四区蜜桃| 国产熟女精品视频| 久久久国产视频91| 日韩电影精品| 亚洲欧美99| 日本女优在线视频一区二区| 亚洲国产精品自拍视频| 图片区日韩欧美亚洲| 亚洲a视频在线观看| 欧美插天视频在线播放| 大胆国模一区二区三区| 在线精品亚洲一区二区| 老司机精品视频在线| 91麻豆精品久久毛片一级| 欧美综合亚洲图片综合区| 黄色av免费在线看| 国产精品福利在线观看网址| 国产精品一在线观看| 国产一二三四在线视频| 中文字幕av一区二区三区免费看| 欧美日韩国产精品综合| 欧美一区二区播放| 欧美野外wwwxxx| 成人蜜桃视频| 日韩一级在线| 香蕉网在线播放| 在线免费观看不卡av| 在线观看二区| 成人女保姆的销魂服务| 欧美二区视频| 日本一卡二卡在线| 欧美性色xo影院| 二区三区在线播放| 成人福利网站在线观看11| 911精品美国片911久久久| 男人添女人荫蒂国产| 黑人巨大精品欧美一区二区| 免费在线超碰| 成人动漫网站在线观看| 欧美成人嫩草网站| 亚洲调教欧美在线| 欧美优质美女网站| 91蜜桃在线视频| 精品无码久久久久国产| 天堂久久一区二区三区| 精品无码一区二区三区蜜臀| 欧美mv日韩mv| 欧美电影免费观看| 中文字幕成人一区| 成人午夜在线免费| 无码人妻av一区二区三区波多野 | 自由的xxxx在线视频| 国产福利一区二区三区在线观看| 婷婷综合五月| www.美色吧.com| 日本精品一区二区三区高清| 久草免费在线| 欧美裸体网站| 久久精品国产一区二区三 | 好看不卡的中文字幕| 欧产日产国产精品98| 欧美亚洲愉拍一区二区| av大大超碰在线| 日韩高清专区| 波多野结衣一区二区三区| 午夜一区二区三区四区| 欧美俄罗斯乱妇| 欧美亚洲国产精品久久| 扒开伸进免费视频| 欧美精品欧美精品系列| 色在线免费观看| 国产在线xxxx| 亚洲欧洲av在线|