搭建mahout的eclipse環境不難,新建一個maven的quick-start java項目,在pom導入一些mahout的依賴便可,具體過程參考:用Maven構建Mahout項目
想要好好理解清楚,須要好好的研究代碼。例子中關鍵幾項內容解釋java
// DataModel,輸入數據模型,會自動把數據格式化成mahout須要的數據,更復雜格式的數據應該須要處理。 //類裏含有獲取全部user id,item id等等方法 DataModel model = new FileDataModel(new File(file)); // 一個用戶類似度的模型,相似二維數組,這裏使用歐氏距離來計算用戶的類似度。類裏含有查詢某兩個user的類似度。 UserSimilarity user = new EuclideanDistanceSimilarity(model); // 知道用戶類似度,便可以知道全部用戶的最近鄰居,這裏求前幾個最近鄰居。類裏含有求某個user id的最近鄰居的方法 NearestNUserNeighborhood neighbor = new NearestNUserNeighborhood(NEIGHBORHOOD_NUM, user, model); // 根據最近鄰居看過哪些電影,而當前user沒看過,則能夠推薦給當前用戶某些電影。類裏含有求某用戶推薦幾個電影等等方法。 Recommender r = new GenericUserBasedRecommender(model, neighbor, user);
在使用歐氏距離計算類似度時,有一點點不一樣。
開始理解歐氏距離公式是1 / ( 1 + d ),因而我經過手動計算2個用戶的歐式距離類似度,和程序裏面算得2個用戶的類似度不同(經過user.userSimilarity(1, 2)得到1和2的類似度),因而經過跟蹤代碼開始找緣由:數組