Uploaded image for project: 'Mahout'
  1. Mahout
  2. MAHOUT-906

Allow collaborative filtering evaluators to use custom logic in splitting data set

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 0.5
    • 0.6
    • None

    Description

      I want to start a discussion about factoring out the logic used in splitting the data set into training and testing. Here is how things stand: There are two independent evaluator based classes: AbstractDifferenceRecommenderEvaluator, splits all the preferences randomly into a training and testing set. GenericRecommenderIRStatsEvaluator takes one user at a time, removes their top AT preferences, and counts how many of them the system recommends back.

      I have two use cases that both deal with temporal dynamics. In one case, there may be expired items that can be used for building a training model, but not a test model. In the other, I may want to simulate the behavior of a real system by building a preference matrix on days 1-k, and testing on the ratings the user generated on the day k+1. In this case, it's not items, but preferences(user, item, rating triplets) which may belong only to the training set. Before we discuss appropriate design, are there any other use cases we need to keep in mind?

      Attachments

        1. MAHOUT-906.patch
          8 kB
          Anatoliy Kats
        2. MAHOUT-906.patch
          14 kB
          Sean R. Owen
        3. MAHOUT-906.patch
          8 kB
          Anatoliy Kats
        4. MAHOUT-906.patch
          8 kB
          Anatoliy Kats
        5. MAHOUT-906.patch
          14 kB
          Anatoliy Kats

        Activity

          People

            srowen Sean R. Owen
            akats Anatoliy Kats
            Votes:
            1 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - 48h
                48h
                Remaining:
                Remaining Estimate - 48h
                48h
                Logged:
                Time Spent - Not Specified
                Not Specified