Examples of FullRunningAverage


Examples of org.apache.mahout.cf.taste.impl.common.FullRunningAverage

      }
    }
  }
 
  private double getAveragePreference() throws TasteException {
    RunningAverage average = new FullRunningAverage();
    DataModel dataModel = getDataModel();
    LongPrimitiveIterator it = dataModel.getUserIDs();
    while (it.hasNext()) {
      for (Preference pref : dataModel.getPreferencesFromUser(it.nextLong())) {
        average.addDatum(pref.getValue());
      }
    }
    return average.getAverage();
  }
View Full Code Here

Examples of org.apache.mahout.cf.taste.impl.common.FullRunningAverage

      this.cluster = cluster;
    }

    @Override
    public double estimate(Item item) {
      RunningAverage average = new FullRunningAverage();
      for (User user : cluster) {
        Preference pref = user.getPreferenceFor(item.getID());
        if (pref != null) {
          average.addDatum(pref.getValue());
        }
      }
      return average.getAverage();
    }
View Full Code Here

Examples of org.apache.mahout.cf.taste.impl.common.FullRunningAverage

        Preference[] prefs = user.getPreferencesAsArray();
        for (Preference pref : prefs) {
          Object itemID = pref.getItem().getID();
          RunningAverage average = itemAverages.get(itemID);
          if (average == null) {
            average = new FullRunningAverage();
            itemAverages.put(itemID, average);
          }
          average.addDatum(pref.getValue());
        }
      }
View Full Code Here

Examples of org.apache.mahout.cf.taste.impl.common.FullRunningAverage

    super.setPreference(userID, itemID, value);
    try {
      buildAveragesLock.writeLock().lock();
      RunningAverage average = itemAverages.get(itemID);
      if (average == null) {
        RunningAverage newAverage = new FullRunningAverage();
        newAverage.addDatum(prefDelta);
        itemAverages.put(itemID, newAverage);
      } else {
        average.changeDatum(prefDelta);
      }
    } finally {
View Full Code Here

Examples of org.apache.mahout.cf.taste.impl.common.FullRunningAverage

  private static final class PrefRetriever implements Retriever<User, Double> {

    @Override
    public Double get(User key) {
      RunningAverage average = new FullRunningAverage();
      Preference[] prefs = key.getPreferencesAsArray();
      if (prefs.length == 0) {
        return ZERO;
      }
      for (Preference pref : prefs) {
        average.addDatum(pref.getValue());
      }
      return average.getAverage();
    }
View Full Code Here

Examples of org.apache.mahout.cf.taste.impl.common.FullRunningAverage

  public ItemUserAverageRecommender(DataModel dataModel) {
    super(dataModel);
    this.itemAverages = new FastMap<Object, RunningAverage>();
    this.userAverages = new FastMap<Object, RunningAverage>();
    this.overallAveragePrefValue = new FullRunningAverage();
    this.buildAveragesLock = new ReentrantReadWriteLock();
    this.refreshHelper = new RefreshHelper(new Callable<Object>() {
      @Override
      public Object call() throws TasteException {
        buildAverageDiffs();
View Full Code Here

Examples of org.apache.mahout.cf.taste.impl.common.FullRunningAverage

  private static void addDatumAndCrateIfNeeded(Object itemID,
                                               double value,
                                               Map<Object, RunningAverage> averages) {
    RunningAverage itemAverage = averages.get(itemID);
    if (itemAverage == null) {
      itemAverage = new FullRunningAverage();
      averages.put(itemID, itemAverage);
    }
    itemAverage.addDatum(value);
  }
View Full Code Here

Examples of org.apache.mahout.cf.taste.impl.common.FullRunningAverage

    super.setPreference(userID, itemID, value);
    try {
      buildAveragesLock.writeLock().lock();
      RunningAverage itemAverage = itemAverages.get(itemID);
      if (itemAverage == null) {
        RunningAverage newItemAverage = new FullRunningAverage();
        newItemAverage.addDatum(prefDelta);
        itemAverages.put(itemID, newItemAverage);
      } else {
        itemAverage.changeDatum(prefDelta);
      }
      RunningAverage userAverage = userAverages.get(userID);
      if (userAverage == null) {
        RunningAverage newUserAveragae = new FullRunningAverage();
        newUserAveragae.addDatum(prefDelta);
        userAverages.put(userID, newUserAveragae);
      } else {
        userAverage.changeDatum(prefDelta);
      }
      overallAveragePrefValue.changeDatum(prefDelta);
View Full Code Here

Examples of org.apache.mahout.cf.taste.impl.common.FullRunningAverage

  private RunningAverage buildRunningAverage() {
    if (stdDevWeighted) {
      return compactAverages ? new CompactRunningAverageAndStdDev() : new FullRunningAverageAndStdDev();
    } else {
      return compactAverages ? new CompactRunningAverage() : new FullRunningAverage();
    }
  }
View Full Code Here

Examples of org.apache.mahout.cf.taste.impl.common.FullRunningAverage

  @Override
  double getEvaluation(Map<User, Collection<Preference>> testUserPrefs,
                       Recommender recommender)
          throws TasteException {
    RunningAverage average = new FullRunningAverage();
    for (Map.Entry<User, Collection<Preference>> entry : testUserPrefs.entrySet()) {
      for (Preference realPref : entry.getValue()) {
        User testUser = entry.getKey();
        try {
          double estimatedPreference =
                  recommender.estimatePreference(testUser.getID(), realPref.getItem().getID());
          if (!Double.isNaN(estimatedPreference)) {
            double diff = realPref.getValue() - estimatedPreference;
            average.addDatum(diff * diff);
          }
        } catch (NoSuchUserException nsee) {
          // It's possible that an item exists in the test data but not training data in which case
          // NSEE will be thrown. Just ignore it and move on.
          log.info("Element exists in test data but not training data: {}", testUser.getID(), nsee);
        }
      }
    }
    return Math.sqrt(average.getAverage());
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.