Example usage for org.apache.mahout.cf.taste.recommender UserBasedRecommender recommend

List of usage examples for org.apache.mahout.cf.taste.recommender UserBasedRecommender recommend

Introduction

In this page you can find the example usage for org.apache.mahout.cf.taste.recommender UserBasedRecommender recommend.

Prototype

List<RecommendedItem> recommend(long userID, int howMany) throws TasteException;

Source Link

Usage

From source file:com.checkup.mahout.test.ExampleTest.java

@Test
public void quickstart() throws IOException, TasteException {
    DataModel model = new FileDataModel(new File(Resources.quickstart_csv.getFile()));
    UserSimilarity similarity = new PearsonCorrelationSimilarity(model);
    UserNeighborhood neighborhood = new ThresholdUserNeighborhood(0.1, similarity, model);
    UserBasedRecommender recommender = new GenericUserBasedRecommender(model, neighborhood, similarity);
    List<RecommendedItem> recommendations = recommender.recommend(2, 3);
    for (RecommendedItem recommendation : recommendations) {
        System.out.println(recommendation);
    }//w  w  w. java  2 s . co  m
}

From source file:com.mycompany.mahoutrecco.App.java

public static void main(String[] args) throws Exception {

    DataModel model = new FileDataModel(new File("data/justBeforeMahout.csv"));

    UserSimilarity similarity = new PearsonCorrelationSimilarity(model);
    UserNeighborhood neighborhood = new ThresholdUserNeighborhood(0.1, similarity, model);
    UserBasedRecommender recommender = new GenericUserBasedRecommender(model, neighborhood, similarity);

    List<RecommendedItem> recommendations = recommender.recommend(503046, 5);
    System.out.println(recommendations);
    for (RecommendedItem recommendation : recommendations) {
        System.out.println(recommendation);
    }//from ww  w  .  j av a  2 s.c  o m
}

From source file:com.mycompany.mavenproject1.Recommendor.java

public static void main(String[] args) throws Exception {
    DataModel model = new FileDataModel(new File("src/Data/data.csv"));
    UserSimilarity similarity = new PearsonCorrelationSimilarity(model);
    UserNeighborhood neighborhood = new ThresholdUserNeighborhood(2, similarity, model);
    UserBasedRecommender recommender = new GenericUserBasedRecommender(model, neighborhood, similarity);
    List<RecommendedItem> recommendations = recommender.recommend(1, 1);
    for (RecommendedItem recommendation : recommendations) {
        System.out.println(recommendation);
    }/*from   w  w  w  .  j a  v  a  2s . c  om*/

}

From source file:final_mahout.Final_Mahout.java

/**
 * @param args the command line arguments
 *///from  w w w .j a  va2s.  c om
public static void main(String[] args) throws TasteException, IOException {
    DataModel model = new FileDataModel(new File("/Users/wendyzhuo/Desktop/data3.csv"));
    //Computer the similarity between users,according to their preference
    UserSimilarity similarity = new EuclideanDistanceSimilarity(model);

    //Group the users with similar preference
    UserNeighborhood neighborhood = new ThresholdUserNeighborhood(0.2, similarity, model);

    //Create a recommender
    UserBasedRecommender recommender = new GenericUserBasedRecommender(model, neighborhood, similarity);
    //For the user with the id 1 get two recommendations

    List<RecommendedItem> recommendations = recommender.recommend(1, 2);
    for (RecommendedItem recommendation : recommendations) {
        System.out.println("they should not take id: " + recommendation.getItemID() + "(predicted preference:"
                + recommendation.getValue() + ")");
    }

    // TODO code application logic here
}

From source file:fr.paris.lutece.plugins.recommendation.service.RecommendationService.java

License:Open Source License

/**
 * Provides a list of recommended items for a given user based on a recommender
 * @param strRecommender The recommender name
 * @param lUserID The User's ID/* w w  w . j a  va  2 s  . co m*/
 * @param nCount The number of recommendation whished
 * @return The list of recommended items
 */
public List<RecommendedItem> getRecommendations(String strRecommender, long lUserID, int nCount) {
    UserBasedRecommender recommender = _mapRecommenders.get(strRecommender);

    if (recommender != null) {
        try {
            return recommender.recommend(lUserID, nCount);
        } catch (TasteException ex) {
            AppLogService.error("Error  getting recommendation : " + ex.getMessage(), ex);
        }
    }

    return LIST_NO_RECOMMENDATION;
}

From source file:org.eclipse.agail.recommenderserver.collaborative.CollaborativeFiltering.java

License:Open Source License

private void applyCollaborativeFiltering(GatewayProfile profile) {

    int userID = addNewItemsandUser(profile);
    System.out.println("userID: " + userID);

    try {//w ww .  ja  va2  s.  c  o m
        // load the data from the file with format "userID,itemID,value"
        DataModel model = new FileDataModel(new File(userProfilesFile));

        //  compute the correlation coefficient between their interactions
        //UserSimilarity similarity = new PearsonCorrelationSimilarity(model);
        UserSimilarity similarity = new EuclideanDistanceSimilarity(model);
        // we'll use all that have a similarity greater than 0.1
        UserNeighborhood neighborhood = new ThresholdUserNeighborhood(0.1, similarity, model);
        //UserNeighborhood neighborhood = new NearestNUserNeighborhood(3, similarity, model);

        // all the pieces to create our recommender
        UserBasedRecommender recommender = new GenericUserBasedRecommender(model, neighborhood, similarity);

        //  get 10 items recommended for the user with userID 
        recommendations = recommender.recommend(userID, 10);

        for (RecommendedItem recommendation : recommendations) {
            System.out.println(recommendation);
            String item = getItem(recommendation.getItemID());
            if (item.split(",")[0].contains("App")) {
                apps.getAppList().add(new App("App", item.split(",")[1], 0, 0));
            } else if (item.split(",")[0].contains("Device")) {
                devs.getDeviceList().add(new Device("Device", item.split(",")[1]));
            } else if (item.split(",")[0].contains("Workflow")) {
                wfs.getWfList().add(new Workflow("Workflow", "Workflow", "Workflow", item.split(",")[1]));
            } else if (item.split(",")[0].contains("Cloud")) {
                clouds.getCloudList().add(new Cloud("Cloud", item.split(",")[1], "", "", "", "", "", "", ""));
            }
        }

    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

From source file:org.eclipse.agail.recommenderserver.Test.java

License:Open Source License

public static void testCollaborativeFiltering() {

    System.out.println("testCollaborativeFiltering");

    try {/*from w  ww  .j  a v a 2  s . c om*/
        // load the data from the file with format "userID,itemID,value"
        DataModel model = new FileDataModel(new File(testFile2));

        //  compute the correlation coefficient between their interactions
        UserSimilarity similarity = new EuclideanDistanceSimilarity(model);

        double similar = similarity.userSimilarity(1, 2);
        System.out.println(similar);

        // we'll use all that have a similarity greater than 0.1
        UserNeighborhood neighborhood = new ThresholdUserNeighborhood(0.1, similarity, model);

        // all the pieces to create our recommender
        UserBasedRecommender recommender = new GenericUserBasedRecommender(model, neighborhood, similarity);

        //  get three items recommended for the user with userID 2
        List<RecommendedItem> recommendations = recommender.recommend(2, 10);
        for (RecommendedItem recommendation : recommendations) {
            System.out.println(recommendation);
        }

    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

From source file:smartcityrecommender.Recommender.java

License:Open Source License

public static void recommend1() {
    try {//from  www .  jav  a2s.  c  o  m
        // load the data from the file
        DataModel model = new FileDataModel(new File("C:\\Users\\cenni\\Downloads\\dataset.csv"));

        // JDBC data model
        /*MysqlDataSource dataSource = new MysqlDataSource();
         dataSource.setServerName("my_database_host");
         dataSource.setUser("my_user");
         dataSource.setPassword("my_password");
         dataSource.setDatabaseName("my_database_name");
                
         JDBCDataModel model = new MySQLJDBCDataModel(
         dataSource, "my_prefs_table", "my_user_column",
         "my_item_column", "my_pref_value_column", "my_timestamp_column");*/
        // compute the correlation coefficient between their interactions
        UserSimilarity similarity = new PearsonCorrelationSimilarity(model);
        // define which similar users we want to leverage for the recommender; use all that have a similarity greater than 0.1
        UserNeighborhood neighborhood = new ThresholdUserNeighborhood(0.1, similarity, model);
        // create the recommender
        UserBasedRecommender recommender = new GenericUserBasedRecommender(model, neighborhood, similarity);
        List recommendations = recommender.recommend(2, 3);
        // print the recommendations
        recommendations.stream().forEach((recommendation) -> {
            System.out.println(recommendation);
        });

    } catch (TasteException | IOException ex) {
        Logger.getLogger(Recommender.class.getName()).log(Level.SEVERE, null, ex);
    }
}

From source file:StudyResults.Test.java

/**
 * Basic Taste example of use/* ww  w  . ja  va  2 s  .  c  o m*/
 * @throws IOException
 * @throws TasteException 
 */
private static void BasicRecommendation() throws IOException, TasteException {
    DataModel model = new FileDataModel(
            new File("Ressources/FeatureSearch/Input/featureSearchCase2_Most_1_Least_0_Maj_0.csv"));
    UserSimilarity similarity = new PearsonCorrelationSimilarity(model);
    UserNeighborhood neighborhood = new ThresholdUserNeighborhood(0.1, similarity, model);
    UserBasedRecommender recommender = new GenericUserBasedRecommender(model, neighborhood, similarity);
    List<RecommendedItem> recommendations = recommender.recommend(2, 3);
    for (RecommendedItem recommendation : recommendations) {
        System.out.println(recommendation);
    }
}

From source file:user.based.recommendation.PearsonCorrelation.java

private void cmboboxUserItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_cmboboxUserItemStateChanged
    // TODO add your handling code here:
    try {/*from  www  .  j a  v  a2s.  c  om*/

        DataModel model = new FileDataModel(new File("userPreference.csv"));

        UserSimilarity similarity = new PearsonCorrelationSimilarity(model);
        //UserSimilarity similarity1 = new SpearmanCorrelationSimilarity(model);

        UserNeighborhood neighborhood = new ThresholdUserNeighborhood(0.1, similarity, model);
        //UserNeighborhood neighborhood1 = new ThresholdUserNeighborhood(0.1, similarity1, model);

        UserBasedRecommender recommender = new GenericBooleanPrefUserBasedRecommender(model, neighborhood,
                similarity);
        UserBasedRecommender recommender1 = new GenericUserBasedRecommender(model, neighborhood, similarity);

        List<RecommendedItem> recommendations = recommender
                .recommend(Integer.parseInt(cmboboxUser.getSelectedItem().toString()), 3);
        List<RecommendedItem> recommendations1 = recommender1
                .recommend(Integer.parseInt(cmboboxUser.getSelectedItem().toString()), 3);

        System.out.println("Recommendation length: " + recommendations.size());
        result = new ArrayList<>();
        for (RecommendedItem item : recommendations) {
            System.out.println(
                    table.get(Integer.parseInt(Long.toString(item.getItemID()))) + " : " + item.getValue());
            result.add(table.get(Integer.parseInt(Long.toString(item.getItemID()))) + " : " + item.getValue());
        }

        System.out.println("Boolean recommendation: ");
        for (RecommendedItem item : recommendations1) {
            //              System.out.println(table.get(Integer.parseInt(Long.toString(item.getItemID()))) + " : " + item.getValue());
            //               result.add(table.get(Integer.parseInt(Long.toString(item.getItemID()))) + " : " + item.getValue());
        }

        lstRecommendedItems.setListData(result.toArray());
    } catch (IOException | TasteException | NumberFormatException ex) {
        System.out.println("Here is the exception: " + ex.getMessage());
    }

}