public interface RecommenderEvaluator
Implementations of this interface evaluate the quality of a
Recommender
's recommendations.
Modifier and Type | Method and Description |
---|---|
double |
evaluate(RecommenderBuilder recommenderBuilder,
DataModelBuilder dataModelBuilder,
DataModel dataModel,
double trainingPercentage,
double evaluationPercentage)
Evaluates the quality of a
Recommender 's recommendations. |
float |
getMaxPreference()
Deprecated.
|
float |
getMinPreference()
Deprecated.
|
void |
setMaxPreference(float maxPreference)
Deprecated.
|
void |
setMinPreference(float minPreference)
Deprecated.
|
double evaluate(RecommenderBuilder recommenderBuilder, DataModelBuilder dataModelBuilder, DataModel dataModel, double trainingPercentage, double evaluationPercentage) throws TasteException
Evaluates the quality of a Recommender
's recommendations.
The range of values that may be returned depends on the implementation, but lower values must
mean better recommendations, with 0 being the lowest / best possible evaluation, meaning a perfect match.
This method does not accept a Recommender
directly, but
rather a RecommenderBuilder
which can build the
Recommender
to test on top of a given DataModel
.
Implementations will take a certain percentage of the preferences supplied by the given DataModel
as "training data". This is typically most of the data, like 90%. This data is used to produce
recommendations, and the rest of the data is compared against estimated preference values to see how much
the Recommender
's predicted preferences match the user's
real preferences. Specifically, for each user, this percentage of the user's ratings are used to produce
recommendations, and for each user, the remaining preferences are compared against the user's real
preferences.
For large datasets, it may be desirable to only evaluate based on a small percentage of the data.
evaluationPercentage
controls how many of the DataModel
's users are used in
evaluation.
To be clear, trainingPercentage
and evaluationPercentage
are not related. They
do not need to add up to 1.0, for example.
recommenderBuilder
- object that can build a Recommender
to testdataModelBuilder
- DataModelBuilder
to use, or if null, a default DataModel
implementation will be useddataModel
- dataset to test ontrainingPercentage
- percentage of each user's preferences to use to produce recommendations; the rest are compared
to estimated preference values to evaluate
Recommender
performanceevaluationPercentage
- percentage of users to use in evaluationRecommender
's
estimated preferences match real values; lower scores mean a better match and 0 is a
perfect matchTasteException
- if an error occurs while accessing the DataModel
@Deprecated float getMaxPreference()
DataModel.getMaxPreference()
@Deprecated void setMaxPreference(float maxPreference)
@Deprecated float getMinPreference()
DataModel.getMinPreference()
@Deprecated void setMinPreference(float minPreference)
Copyright © 2008–2017 The Apache Software Foundation. All rights reserved.