public final class SpearmanCorrelationSimilarity extends Object implements UserSimilarity
Like PearsonCorrelationSimilarity
, but compares relative ranking of preference values instead of
preference values themselves. That is, each user's preferences are sorted and then assign a rank as their
preference value, with 1 being assigned to the least preferred item.
Constructor and Description |
---|
SpearmanCorrelationSimilarity(DataModel dataModel) |
Modifier and Type | Method and Description |
---|---|
void |
refresh(Collection<Refreshable> alreadyRefreshed)
Triggers "refresh" -- whatever that means -- of the implementation.
|
void |
setPreferenceInferrer(PreferenceInferrer inferrer)
Attaches a
PreferenceInferrer to the UserSimilarity implementation. |
double |
userSimilarity(long userID1,
long userID2)
Returns the degree of similarity, of two users, based on the their preferences.
|
public SpearmanCorrelationSimilarity(DataModel dataModel)
public double userSimilarity(long userID1, long userID2) throws TasteException
UserSimilarity
Returns the degree of similarity, of two users, based on the their preferences.
userSimilarity
in interface UserSimilarity
userID1
- first user IDuserID2
- second user IDDouble.NaN
similarity is unknownNoSuchUserException
- if either user is known to be non-existent in the dataTasteException
- if an error occurs while accessing the datapublic void setPreferenceInferrer(PreferenceInferrer inferrer)
UserSimilarity
Attaches a PreferenceInferrer
to the UserSimilarity
implementation.
setPreferenceInferrer
in interface UserSimilarity
inferrer
- PreferenceInferrer
public void refresh(Collection<Refreshable> alreadyRefreshed)
Refreshable
Triggers "refresh" -- whatever that means -- of the implementation. The general contract is that any
Refreshable
should always leave itself in a consistent, operational state, and that the refresh
atomically updates internal state from old to new.
refresh
in interface Refreshable
alreadyRefreshed
- Refreshable
s that are known to have already been
refreshed as a result of an initial call to a {#refresh(Collection)} method on some
object. This ensure that objects in a refresh dependency graph aren't refreshed twice
needlessly.Copyright © 2008–2017 The Apache Software Foundation. All rights reserved.