|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.mahout.cf.taste.impl.recommender.AbstractRecommender
org.apache.mahout.cf.taste.impl.recommender.slopeone.SlopeOneRecommender
public final class SlopeOneRecommender
A basic "slope one" recommender. (See an
excellent summary here for example.) This Recommender
is
especially suitable when user preferences are updating frequently as it can incorporate this information
without expensive recomputation.
This implementation can also be used as a "weighted slope one" recommender.
Constructor Summary | |
---|---|
SlopeOneRecommender(DataModel dataModel)
Creates a default (weighted) based on the given DataModel . |
|
SlopeOneRecommender(DataModel dataModel,
Weighting weighting,
Weighting stdDevWeighting,
DiffStorage diffStorage)
Creates a based on the given DataModel . |
Method Summary | |
---|---|
float |
estimatePreference(long userID,
long itemID)
|
java.util.List<RecommendedItem> |
recommend(long userID,
int howMany,
IDRescorer rescorer)
|
void |
refresh(java.util.Collection<Refreshable> alreadyRefreshed)
Triggers "refresh" -- whatever that means -- of the implementation. |
void |
removePreference(long userID,
long itemID)
Default implementation which just calls DataModel.removePreference(long, long) (Object, Object)}. |
void |
setPreference(long userID,
long itemID,
float value)
Default implementation which just calls DataModel.setPreference(long, long, float) . |
java.lang.String |
toString()
|
Methods inherited from class org.apache.mahout.cf.taste.impl.recommender.AbstractRecommender |
---|
getAllOtherItems, getDataModel, recommend |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public SlopeOneRecommender(DataModel dataModel) throws TasteException
Creates a default (weighted) based on the given DataModel
.
dataModel
- data model
TasteException
public SlopeOneRecommender(DataModel dataModel, Weighting weighting, Weighting stdDevWeighting, DiffStorage diffStorage)
Creates a based on the given DataModel
.
If weighted
is set, acts as a weighted slope one recommender. This implementation also
includes an experimental "standard deviation" weighting which weights item-item ratings diffs with lower
standard deviation more highly, on the theory that they are more reliable.
weighting
- if Weighting.WEIGHTED
, acts as a weighted slope one recommenderstdDevWeighting
- use optional standard deviation weighting of diffs
java.lang.IllegalArgumentException
- if diffStorage
is null, or stdDevWeighted is set when weighted is not setMethod Detail |
---|
public java.util.List<RecommendedItem> recommend(long userID, int howMany, IDRescorer rescorer) throws TasteException
userID
- user for which recommendations are to be computedhowMany
- desired number of recommendationsrescorer
- rescoring function to apply before final list of recommendations is determined
List
of recommended RecommendedItem
s, ordered from most strongly recommend to
least
TasteException
- if an error occurs while accessing the DataModel
public float estimatePreference(long userID, long itemID) throws TasteException
userID
- user ID whose preference is to be estimateditemID
- item ID to estimate preference for
Double.NaN
TasteException
- if an error occurs while accessing the DataModel
public void setPreference(long userID, long itemID, float value) throws TasteException
AbstractRecommender
Default implementation which just calls DataModel.setPreference(long, long, float)
.
setPreference
in interface Recommender
setPreference
in class AbstractRecommender
userID
- user to set preference foritemID
- item to set preference forvalue
- preference value
TasteException
- if an error occurs while accessing the DataModel
public void removePreference(long userID, long itemID) throws TasteException
AbstractRecommender
Default implementation which just calls DataModel.removePreference(long, long)
(Object, Object)}.
removePreference
in interface Recommender
removePreference
in class AbstractRecommender
userID
- user from which to remove preferenceitemID
- item for which to remove preference
TasteException
- if an error occurs while accessing the DataModel
public void refresh(java.util.Collection<Refreshable> alreadyRefreshed)
Refreshable
Triggers "refresh" -- whatever that means -- of the implementation. The general contract is that any should always leave itself in a consistent, operational state, and that the refresh atomically updates internal state from old to new.
alreadyRefreshed
- s that are known to have already been
refreshed as a result of an initial call to a method on some
object. This ensure that objects in a refresh dependency graph aren't refreshed twice
needlessly.public java.lang.String toString()
toString
in class java.lang.Object
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |