@Override public double getUserBias(long user) { Long2DoubleMap vec = dao.userRatingVector(user); if (vec.isEmpty()) { return 0; } else { double sum = 0; double mean = getIntercept(); for (Long2DoubleMap.Entry e: vec.long2DoubleEntrySet()) { sum += e.getDoubleValue() - mean - getItemBias(e.getLongKey()); } return sum / vec.size(); } }
@Override public Long2DoubleMap getUserBiases(LongSet users) { SortedKeyIndex index = SortedKeyIndex.fromCollection(users); final int n = index.size(); double[] values = new double[n]; for (int i = 0; i < n; i++) { values[i] = getUserBias(index.getKey(i)); } return Long2DoubleSortedArrayMap.wrap(index, values); }
@Override public double getUserBias(long user) { Long2DoubleMap vec = dao.userRatingVector(user); if (vec.isEmpty()) { return 0; } else { double sum = 0; double mean = getIntercept(); for (Long2DoubleMap.Entry e: vec.long2DoubleEntrySet()) { sum += e.getDoubleValue() - mean - getItemBias(e.getLongKey()); } return sum / vec.size(); } }
@Override public Long2DoubleMap getUserBiases(LongSet users) { SortedKeyIndex index = SortedKeyIndex.fromCollection(users); final int n = index.size(); double[] values = new double[n]; for (int i = 0; i < n; i++) { values[i] = getUserBias(index.getKey(i)); } return Long2DoubleSortedArrayMap.wrap(index, values); }