List of usage examples for org.apache.mahout.cf.taste.impl.common RunningAverage removeDatum
void removeDatum(double datum);
From source file:net.ufida.info.mahout.common.MemoryDiffStorage.java
License:Apache License
@Override public void removeItemPref(long userID, long itemIDA, float prefValue) throws TasteException { PreferenceArray userPreferences = dataModel.getPreferencesFromUser(userID); try {// w w w .j av a2 s .c o m buildAverageDiffsLock.writeLock().lock(); FastByIDMap<RunningAverage> aMap = averageDiffs.get(itemIDA); int length = userPreferences.length(); for (int i = 0; i < length; i++) { long itemIDB = userPreferences.getItemID(i); float bValue = userPreferences.getValue(i); if (itemIDA < itemIDB) { if (aMap != null) { RunningAverage average = aMap.get(itemIDB); if (average != null) { if (average.getCount() <= 1) { aMap.remove(itemIDB); } else { average.removeDatum(bValue - prefValue); } } } } else if (itemIDA > itemIDB) { FastByIDMap<RunningAverage> bMap = averageDiffs.get(itemIDB); if (bMap != null) { RunningAverage average = bMap.get(itemIDA); if (average != null) { if (average.getCount() <= 1) { aMap.remove(itemIDA); } else { average.removeDatum(prefValue - bValue); } } } } } } finally { buildAverageDiffsLock.writeLock().unlock(); } }