簡體   English   中英

在Apache Mahout中計算首選項值

[英]Computing preference values in Apache Mahout

我正在嘗試學習Apache mahout,這是該主題的新手。 我想實現基於用戶的推薦器。 為此,在互聯網上進行探索之后,我發現了以下示例

public static void main(String[] args) {
        try {
            int userId = 2;

            DataModel model = new FileDataModel(new File("data/mydataset.csv"), ";");
            UserSimilarity similarity = new PearsonCorrelationSimilarity(model);
            UserNeighborhood neighborhood = new NearestNUserNeighborhood(2, similarity, model);
            UserBasedRecommender recommender = new GenericUserBasedRecommender(model, neighborhood, similarity);

            List<RecommendedItem> recommendations = recommender.recommend(userId, 3);
            for (RecommendedItem recommendation : recommendations) {
                logger.log(Level.INFO, "Item Id recommended : " + recommendation.getItemID() + " Ratings : "
                        + recommendation.getValue() + " For UserId : " + userId);
            }
        } catch (Exception e) {
            logger.log(Level.SEVERE, "Exception in main() ::", e);
        }

我正在使用以下數據集,其中分別包含用戶ID,項目ID,首選項值,

1,10,1.0
1,11,2.0
1,12,5.0
1,13,5.0
1,14,5.0
1,15,4.0
1,16,5.0
1,17,1.0
1,18,5.0
2,10,1.0
2,11,2.0
2,15,5.0
2,16,4.5
2,17,1.0
2,18,5.0
3,11,2.5
3,12,4.5
3,13,4.0
3,14,3.0
3,15,3.5
3,16,4.5
3,17,4.0
3,18,5.0
4,10,5.0
4,11,5.0
4,12,5.0
4,13,0.0
4,14,2.0
4,15,3.0
4,16,1.0
4,17,4.0
4,18,1.0

在這種情況下,它可以正常工作,但我的主要問題是我擁有不包含首選項值的不同數據集,其中包含一些基於我正在考慮計算首選項值的數據。 以下是我的新數據集,

userid  itemid  likes   shares  comments
1        4       1      20      3
2        6       18     20      12
3        12      10     2       20
4        7       0      20      13
5        9       0      2       1
6        5       5      3       2
7        3       9      7       0
8        1       15     0       0

我的問題是如何根據其他一些列(如頂,分享,評論等)為特定記錄計算首選項值。是否有任何方法可以在mahout中進行計算?

是的-我認為您的代碼段來自Mahout的較舊版本,但是您要使用的是“相關相關事件”推薦器。 CCO推薦器是多模式的(允許用戶輸入各種內容)。

有CLI驅動程序,但我猜你想代碼,還有斯卡拉教程這里

我認為在本教程中,建議根據標記的流派和“喜歡的”藝術家以及您當前的朋友推薦“朋友”。

正如@rawkintrevo所說,Mahout已從較舊的“品味”推薦者轉移到其他人,他們很快就會從Mahout中棄用。

您可以在此處通過Mahout中的CCO算法構建自己的系統。 它允許您使用來自不同用戶行為的數據,例如“喜歡,分享,評論”。 因此,我們稱其為多模式。

或者在另一個項目中,我們基於Mahout創建了功能齊全的推薦服務器,稱為Universal Recommender 它基於Apache PredicitonIO構建,其中UR是稱為模板的插件。 他們一起提供了一個幾乎交鑰匙的服務器,該服務器接受輸入並響應查詢。 要輕松上手,請嘗試使整個系統正常運行的AWS AMI 這里顯示其他一些安裝方法。

這就是所有Apache許可的OSS,但是Mahout不再能夠真正提供可用於生產的環境,Mahout可以執行算法,但是您需要一個圍繞它的系統。 構建自己的數據庫或嘗試使用基於PredictionIO的數據庫。 由於一切都是OSS,因此您可以根據需要進行調整。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM