Hi Steven
  I tried my User Similarity recommendation using 
GenericBooleanPrefUserBasedRecommender as you suggested but unfortunaley it is 
not resolving my issue. I can see in logs that it is processing the entire 
file(<UserId, ItemId>) but then in a few seconds the application is terminating 
without giving me any recommendations. The code i tried is

            FileDataModel dataModel = new FileDataModel(new File(recsFile));
            UserSimilarity userSimilarity = new 
TanimotoCoefficientSimilarity(dataModel);
            UserNeighborhood neighborhood =new 
NearestNUserNeighborhood(neighbourhoodSize, userSimilarity, dataModel);
            Recommender recommender =new 
GenericBooleanPrefUserBasedRecommender(dataModel, neighborhood, userSimilarity);
            List<RecommendedItem> recommendations 
=recommender.recommend(userId, noOfRecommendations);
            System.out.println(recommendations);

I tried the same code with PearsonCorrelationSimilarity as well. Still it not 
giving me any recommendations.
Is there any thing else I should change in my code to get in recommendations? 

Thanks and Regards
        Bejoy.K.S




> Date: Fri, 12 Nov 2010 10:28:16 +0000
> Subject: Re: FW: Mahout - Help needed - files with no preferences and 
> integarting mahout with Hadoop
> From: [email protected]
> To: [email protected]
> 
> Try using the generic boolean pref user based recommender instead of the
> generic user based recommender when using binary data.
> 
> http://mahout.apache.org/javadoc/core/org/apache/mahout/cf/taste/impl/recommender/GenericBooleanPrefUserBasedRecommender.html
> 
> 
> 
> On Fri, Nov 12, 2010 at 9:57 AM, bejoy ks <[email protected]> wrote:
> 
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > Hi Mahout Experts,
> >
> >
> > I'm totally new into mahout and badly indeed of some expert opinions. I
> > wanted
> > to implement a recommendation engine using mahout and hadoop, as the
> > initial
> > stage I just tried a recommender class with mahout alone which worked
> > fine . I’m
> > using eclipse for my development and to test I just ran the code from my
> > eclipse like a simple java class with the required jars already added on
> >  to project build path. The code I used for testing User Similarity
> > recommendation is as follows
> >
> >
> >
> >
> >
> > public static void main(String[] args) throws TasteException
> > {
> >
> >
> >
> >
> >
> >            String recsFile="D://mahoutFiles//SampleData.txt";
> >
> >
> >            int
> > neighbourhoodSize=7;
> >
> >
> >            long
> > ssoId=206008129;
> >
> >
> >            int
> > noOfRecommendations=5;
> >
> >
> >            try {
> >
> >
> >                  FileDataModel
> > dataModel = new FileDataModel(new File(recsFile));
> >
> >
> >                  UserSimilarity
> > userSimilarity = new PearsonCorrelationSimilarity(dataModel);
> >
> >
> >                  UserNeighborhood
> > neighborhood =new NearestNUserNeighborhood(neighbourhoodSize,
> > userSimilarity,
> > dataModel);
> >
> >
> >                  Recommender
> > recommender =new GenericUserBasedRecommender(dataModel, neighborhood,
> > userSimilarity);
> >
> >
> >                  List<RecommendedItem>
> > recommendations =recommender.recommend(ssoId, noOfRecommendations);
> >
> >
> >                  for
> > (RecommendedItem recommendedItem : recommendations) {
> >
> >
> >                        System.out.println(recommendedItem.getItemID());
> >
> >
> >                        System.out.print(" Item:
> > "+dataModel.getItemIDAsString(recommendedItem.getItemID()));
> >
> >
> >                        System.out.println(" and
> > value: "+recommendedItem.getValue());
> >
> >
> >                  }
> >
> >
> >            } catch (IOException e)
> > {
> >
> >
> >                  e.printStackTrace();
> >
> >
> >            } catch (TasteException
> > e) {
> >
> >
> >                  e.printStackTrace();
> >
> >
> >            }
> >
> >
> >
> >
> >
> >      }
> >
> >
> > The code I used for testing Item Similarity recommendation is as follows
> >
> > public static void main(String[] args) {
> >
> >        String recsFile="D://mahoutFiles//SampleData.txt";
> >
> >        long ssoId=206008129;
> >
> >        int noOfRecommendations=5;
> >
> >        String itemId="GE-CORPPROG-IMLP-PTOOLS";
> >
> >        try {
> >
> >            //item similarity recommendation based on User
> >
> >            FileDataModel dataModel = new FileDataModel(new File(recsFile));
> >
> >            ItemSimilarity itemSimilarity = new
> > LogLikelihoodSimilarity(dataModel);
> >
> >            ItemBasedRecommender recommender =new
> > GenericItemBasedRecommender(dataModel, itemSimilarity);
> >
> >            List<RecommendedItem> recommendations
> > =recommender.recommend(ssoId, noOfRecommendations);
> >
> >
> >
> >            for (RecommendedItem recommendedItem : recommendations) {
> >
> >                System.out.println(recommendedItem);
> >
> >             }
> >
> >
> >
> >
> >
> >            //item similarity recommendation based on item
> >
> >            recommender =new GenericItemBasedRecommender(dataModel,
> > itemSimilarity);
> >
> >            recommendations=
> > recommender.mostSimilarItems(dataModel.readItemIDFromString(itemId),
> > noOfRecommendations);
> >
> >            System.out.println("Item recommendations based on Item");
> >
> >            for (RecommendedItem recommendedItem : recommendations) {
> >
> >                System.out.println(recommendedItem);
> >
> >              }
> >
> >        } catch (IOException e) {
> >
> >            // TODO Auto-generated catch block
> >
> >            e.printStackTrace();
> >
> >        } catch (TasteException e) {
> >
> >            // TODO Auto-generated catch block
> >
> >            e.printStackTrace();
> >
> >        }
> >
> >
> >
> >    }
> >
> >
> > The issues or concerns I have are as follows.
> >
> >
> >
> > Problem 1:
> >
> >
> > This code produces relevant
> > recommendations when I have given my file in the format <User id>, <item
> > id>, <preference value>.
> > But in my actual sample file I have just the user id and Item id alone, no
> > preference value. On my reference since it is kind of a Boolean preference,
> > I tried
> > using PearsonCorrelationSimilarity
> > as well as TanimotoCoefficientSimilarity but it is not giving me any
> > recommendations. My actual file format that I'd want to process would be in
> > the format <user id>,
> > <item id>, . I can see it is processing all users in my file( from my
> > eclipse console logs) but no recommendations are being produced as output.
> >
> >
> >
> >
> >
> > Problem 2:
> >
> >
> >                I
> > want to use my mahout recommender in Hadoop distributed environment. I
> > don’t have
> > a clue about it. I tried web help but most blogs refer me to
> > org.apache.mahout.cf.taste.hadoop.item.RecommenderJob,
> >  the code
> > available with mahout src. Unfortunately I’m not able to get much from
> > the code
> > as it is a bit complicated for a starter like me. (I have done a couple
> > of Map reduce project on text files processing before ). Could someone
> > please help me
> > out with  very basic simple code snippets to run my User Similarity and
> > Item Similarity Recommendation code
> > on hadoop environment .
> >
> >
> >
> >
> >
> >  It would be much
> > helpful if you could share me with some informative tutorials which
> > could make my initial steps in Mahout comfortable  before i could start
> > exploring in
> > depth.
> >
> >
> >
> >
> >
> > Thank you
> >
> >
> >
> >
> > Thanks and Regards
> >        Bejoy.K.S
> >
> >
> >
                                          

Reply via email to