有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

推荐引擎PlusAnonymousConcurrentUserDataModel java示例

我正在尝试编写一个应该使用该函数的推荐系统代码 PlusAnonymousConcurrentUserDataModel 获取新用户的临时配置文件

我在用mahout 有人能举个例子吗

任何帮助都将不胜感激

干杯 金斯利


共 (1) 个答案

  1. # 1 楼答案

    我假设您已经有一个模型在运行,下面是您需要的代码,以使PlusAnonymousConcurrentUserDataModel正常工作

    // Build your datamodel
    DataModel dataModel = ...
    
    // Build anonymous data model with previous datamodel
    PlusAnonymousConcurrentUserDataModel anonymousDataModel = new PlusAnonymousConcurrentUserDataModel(dataModel, 100); 
    
    // Configure and build your recommender 
    UserSimilarity similarity = new PearsonCorrelationSimilarity(model);
    UserNeighborhood neighborhood = new NearestNUserNeighborhood(25, similarity, model);//
    
    recommender = new CachingRecommender(new GenericUserBasedRecommender(anonymousDataModel, neighborhood, similarity));
    

    现在,如果用户存在,您可以像往常一样检索建议。否则:

    //Get new user id
    long newUserID = anonymousDataModel.takeAvailableUser();
    
    // fill a Mahout data structure with the user's preferences
    GenericUserPreferenceArray tempPrefs = new GenericUserPreferenceArray(dUserPreferences.size());
    
    
    int i = 0;
    for(Map.Entry<Long, Float> entry : dUserPreferences.entrySet()) {
        Long key = entry.getKey();
        Float value = entry.getValue();
    
        tempPrefs.setUserID(i, newUserID);
        tempPrefs.setItemID(i, key);
        tempPrefs.setValue(i, value);
    
        i++;
    }
    
    // Add the temporaly preferences to model
    anonymousDataModel.setTempPrefs(tempPrefs, newUserID);
    
    // And get recommendations
    List<RecommendedItem> recommendations = recommender.recommend(newUserID, count);