1. 程式人生 > >8.7 Mahout與協同過濾

8.7 Mahout與協同過濾

mahout是一個工具一個來自Apache的、開源的、JAVA的機器學習軟體庫當所處理的資料規模遠大於單機處理能力時成為一種可選的機 器學習工具,建立在Apache的Hadoop分散式計算專案之上mahout安裝:1,上傳apache-mahout-distribution-0.12.2.tar.gz包到linux伺服器(hdfs叢集的一個節點安裝就行)2,解壓tar -zxvf apache-mahout-distribution-0.12.2.tar.gz3,上傳測試資料包synthetic_control.data到伺服器4,啟動hadoop叢集測試:1,檢視hdfs叢集上/user/root這個資料夾有沒有,沒有就建立 hadoop fs -mkdir /user/root
2,上傳本地的資料檔案到hdfs: hadoop fs -copyFromLocal /opt/local/synthetic_control.data testdata testdata 是相對路徑的意思,當前使用者目錄下,也就是hdfs的/user/root下的testdata3,進入apache-mahout-distribution-0.12.2目錄下執行測試jar:hadoop jar mahout-examples-0.12.2-job.jar org.apache.mahout.clustering.syntheticcontrol.canopy.Job4,程式分別運行了3個Job任務,最後把原始資料分為六類。在HDFS檔案系統中/user/root/output資料夾中可以看到輸出的檔案
5,把資料拷貝到linux本地:./bin/mahout clusterdump -i output/clusters-0-final -p output/clusteredPoints -o test.txt-i是輸入檔案路徑,即執行Canopy演算法產生的中心點檔案路徑(HDFS檔案系統);-p是執行Canopy演算法後把原始資料分類後的資料檔案目錄(HDFS檔案系統);-o是分類結果的所有文字檔案要生成的檔案路徑(本地檔案系統)。協同過濾是推薦系統中使用的技術簡單來說是利用某興趣相投、擁有共同經驗之群體的喜好來推 薦使用者感興趣的資訊協同過濾Mahout:基於使用者的協同過濾:簡單講就是,給使用者推薦和他興趣相似的其他使用者喜歡的物品1.收集使用者資料2.最近鄰搜尋找到相似使用者3.計算產生推薦結果(以使用者為基礎的協同推薦演算法隨著使用者數量的增多,計算 的時間就會變長 社交網路站點中,UserCF是一個不錯的選擇)基於物品的協同過濾:簡單講就是,給使用者推薦和他之前喜歡的物品相似的物品1.收集使用者資料2.針對物品的最近鄰搜尋找到相似物品3.計算產生推薦結果(是目前電子商務採用最廣泛的推薦演算法)Mahout協同過濾演算法(SIMILARITY_LOGLIKELIHOOD )
:1,進入apache-mahout-distribution-0.12.2目錄下2,上傳本地的資料檔案到hdfs: hadoop fs -copyFromLocal /opt/local/user.txt input/file 意思是檔案上傳到當期使用者目錄下的input/file目錄3,./bin/mahout recommenditembased -s SIMILARITY_LOGLIKELIHOOD -i input/file -o output/file --numRecommendations 25 讀取檔案按協同過濾演算法計算,結果輸出到當前使用者目錄下output/file4,檢視結果資料hadoop fs -cat /user/root/output/file/part-r-00000