Class RandomSearch
- java.lang.Object
-
- es.upm.etsisi.cf4j.util.optimization.RandomSearch
-
- Direct Known Subclasses:
GridSearch
public class RandomSearch extends Object
Utility class to performs a random search over a Recommender instance. The Recommender class used during the random search must contains a constructor with the signature Recommender::<init>(DataModel, Map<String, Object>) that initializes the Recommender using the attributes defined in the Map object. The parameters used in the search process, i.e. the development set, must be defined in a ParamsGrid instance. The random search is executed in such a way that it minimizes (by default) or maximizes a QualityMeasure instance over the test set of the DataModel instance. If the QualityMeasure requires parameters to work, it must contains a constructor with the signature QualityMeasure::<init>(Recommender, Map<String, Object>) that initializes the QualityMeasure using the attributes defined in the Map object. The search is performed by selecting numIters parameters of the development set.
-
-
Constructor Summary
Constructors Constructor Description RandomSearch(DataModel datamodel, ParamsGrid grid, Class<? extends Recommender> recommenderClass, Class<? extends QualityMeasure> qualityMeasureClass, double coverage)
RandomSearch constructorRandomSearch(DataModel datamodel, ParamsGrid grid, Class<? extends Recommender> recommenderClass, Class<? extends QualityMeasure> qualityMeasureClass, double coverage, long seed)
RandomSearch constructorRandomSearch(DataModel datamodel, ParamsGrid grid, Class<? extends Recommender> recommenderClass, Class<? extends QualityMeasure> qualityMeasureClass, int numIters)
RandomSearch constructorRandomSearch(DataModel datamodel, ParamsGrid grid, Class<? extends Recommender> recommenderClass, Class<? extends QualityMeasure> qualityMeasureClass, int numIters, long seed)
RandomSearch constructorRandomSearch(DataModel datamodel, ParamsGrid grid, Class<? extends Recommender> recommenderClass, Class<? extends QualityMeasure> qualityMeasureClass, Map<String,Object> qualityMeasureParams, double coverage)
RandomSearch constructorRandomSearch(DataModel datamodel, ParamsGrid grid, Class<? extends Recommender> recommenderClass, Class<? extends QualityMeasure> qualityMeasureClass, Map<String,Object> qualityMeasureParams, double coverage, long seed)
RandomSearch constructorRandomSearch(DataModel datamodel, ParamsGrid grid, Class<? extends Recommender> recommenderClass, Class<? extends QualityMeasure> qualityMeasureClass, Map<String,Object> qualityMeasureParams, int numIters)
RandomSearch constructorRandomSearch(DataModel datamodel, ParamsGrid grid, Class<? extends Recommender> recommenderClass, Class<? extends QualityMeasure> qualityMeasureClass, Map<String,Object> qualityMeasureParams, int numIters, long seed)
RandomSearch constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
fit()
Performs grid searchList<org.apache.commons.math3.util.Pair<String,Double>>
getResults()
void
printResults()
Prints the results of the random search.void
printResults(boolean lowerIsBetter)
Prints the results of the random searchvoid
printResults(int topN)
Prints the results of the random searchvoid
printResults(int topN, boolean lowerIsBetter)
Prints the results of the random searchvoid
printResults(String numberFormat)
Prints the results of the random search.void
printResults(String numberFormat, boolean lowerIsBetter)
Prints the results of the random searchvoid
printResults(String numberFormat, int topN)
Prints the results of the random searchvoid
printResults(String numberFormat, int topN, boolean lowerIsBetter)
Prints the results of the random search
-
-
-
Constructor Detail
-
RandomSearch
public RandomSearch(DataModel datamodel, ParamsGrid grid, Class<? extends Recommender> recommenderClass, Class<? extends QualityMeasure> qualityMeasureClass, int numIters)
RandomSearch constructor- Parameters:
datamodel
- DataModel instancegrid
- ParamsGrid instance containing the development setrecommenderClass
- Recommender class to be evaluated. This class must contains a constructor with the signature Recommender.<init>(DataModel, Map<String, Object>)qualityMeasureClass
- QualityMeasure class used to evaluate the Recommender. This class must contains a constricutor with the signautre QualityMeasure.<init>(Recommender, Map<String, Object>)numIters
- Number of samples of the development set to be evaluated
-
RandomSearch
public RandomSearch(DataModel datamodel, ParamsGrid grid, Class<? extends Recommender> recommenderClass, Class<? extends QualityMeasure> qualityMeasureClass, int numIters, long seed)
RandomSearch constructor- Parameters:
datamodel
- DataModel instancegrid
- ParamsGrid instance containing the development setrecommenderClass
- Recommender class to be evaluated. This class must contains a constructor with the signature Recommender.<init>(DataModel, Map<String, Object>)qualityMeasureClass
- QualityMeasure class used to evaluate the Recommender. This class must contains a constricutor with the signautre QualityMeasure.<init>(Recommender, Map<String, Object>)numIters
- Number of samples of the development set to be evaluatedseed
- Random seed for random numbers generation
-
RandomSearch
public RandomSearch(DataModel datamodel, ParamsGrid grid, Class<? extends Recommender> recommenderClass, Class<? extends QualityMeasure> qualityMeasureClass, Map<String,Object> qualityMeasureParams, int numIters)
RandomSearch constructor- Parameters:
datamodel
- DataModel instancegrid
- ParamsGrid instance containing the development setrecommenderClass
- Recommender class to be evaluated. This class must contains a constructor with the signature Recommender.<init>(DataModel, Map<String, Object>)qualityMeasureClass
- QualityMeasure class used to evaluate the Recommender. This class must contains a constricutor with the signautre QualityMeasure.<init>(Recommender, Map<String, Object>)qualityMeasureParams
- Map object containing the quality measure parameters names (keys) and values (value)numIters
- Number of samples of the development set to be evaluated
-
RandomSearch
public RandomSearch(DataModel datamodel, ParamsGrid grid, Class<? extends Recommender> recommenderClass, Class<? extends QualityMeasure> qualityMeasureClass, double coverage)
RandomSearch constructor- Parameters:
datamodel
- DataModel instancegrid
- ParamsGrid instance containing the development setrecommenderClass
- Recommender class to be evaluated. This class must contains a constructor with the signature Recommender.<init>(DataModel, Map<String, Object>)qualityMeasureClass
- QualityMeasure class used to evaluate the Recommender. This class must contains a constricutor with the signautre QualityMeasure.<init>(Recommender, Map<String, Object>)coverage
- Percentage of samples of the development set to be evaluated
-
RandomSearch
public RandomSearch(DataModel datamodel, ParamsGrid grid, Class<? extends Recommender> recommenderClass, Class<? extends QualityMeasure> qualityMeasureClass, Map<String,Object> qualityMeasureParams, double coverage)
RandomSearch constructor- Parameters:
datamodel
- DataModel instancegrid
- ParamsGrid instance containing the development setrecommenderClass
- Recommender class to be evaluated. This class must contains a constructor with the signature Recommender.<init>(DataModel, Map<String, Object>)qualityMeasureClass
- QualityMeasure class used to evaluate the Recommender. This class must contains a constricutor with the signautre QualityMeasure.<init>(Recommender, Map<String, Object>)qualityMeasureParams
- Map object containing the quality measure parameters names (keys) and values (value)coverage
- Percentage of samples of the development set to be evaluated
-
RandomSearch
public RandomSearch(DataModel datamodel, ParamsGrid grid, Class<? extends Recommender> recommenderClass, Class<? extends QualityMeasure> qualityMeasureClass, double coverage, long seed)
RandomSearch constructor- Parameters:
datamodel
- DataModel instancegrid
- ParamsGrid instance containing the development setrecommenderClass
- Recommender class to be evaluated. This class must contains a constructor with the signature Recommender.<init>(DataModel, Map<String, Object>)qualityMeasureClass
- QualityMeasure class used to evaluate the Recommender. This class must contains a constricutor with the signautre QualityMeasure.<init>(Recommender, Map<String, Object>)coverage
- Percentage of samples of the development set to be evaluatedseed
- Random seed for random numbers generation
-
RandomSearch
public RandomSearch(DataModel datamodel, ParamsGrid grid, Class<? extends Recommender> recommenderClass, Class<? extends QualityMeasure> qualityMeasureClass, Map<String,Object> qualityMeasureParams, double coverage, long seed)
RandomSearch constructor- Parameters:
datamodel
- DataModel instancegrid
- ParamsGrid instance containing the development setrecommenderClass
- Recommender class to be evaluated. This class must contains a constructor with the signature Recommender.<init>(DataModel, Map<String, Object>)qualityMeasureClass
- QualityMeasure class used to evaluate the Recommender. This class must contains a constricutor with the signautre QualityMeasure.<init>(Recommender, Map<String, Object>)qualityMeasureParams
- Map object containing the quality measure parameters names (keys) and values (value)coverage
- Percentage of samples of the development set to be evaluatedseed
- Random seed for random numbers generation
-
RandomSearch
public RandomSearch(DataModel datamodel, ParamsGrid grid, Class<? extends Recommender> recommenderClass, Class<? extends QualityMeasure> qualityMeasureClass, Map<String,Object> qualityMeasureParams, int numIters, long seed)
RandomSearch constructor- Parameters:
datamodel
- DataModel instancegrid
- ParamsGrid instance containing the development setrecommenderClass
- Recommender class to be evaluated. This class must contains a constructor with the signature Recommender.<init>(DataModel, Map<String, Object>)qualityMeasureClass
- QualityMeasure class used to evaluate the Recommender. This class must contains a constricutor with the signautre QualityMeasure.<init>(Recommender, Map<String, Object>)qualityMeasureParams
- Map object containing the quality measure parameters names (keys) and values (value)numIters
- Number of samples of the development set to be evaluatedseed
- Random seed for random numbers generation
-
-
Method Detail
-
fit
public void fit()
Performs grid search
-
printResults
public void printResults()
Prints the results of the random search. By default, the quality measure is better the lower its value.
-
printResults
public void printResults(int topN)
Prints the results of the random search- Parameters:
topN
- Number of entries of the development set to be shown as the top ones
-
printResults
public void printResults(String numberFormat)
Prints the results of the random search. By default, the quality measure is better the lower its value.- Parameters:
numberFormat
- Number format for the quality measure values
-
printResults
public void printResults(boolean lowerIsBetter)
Prints the results of the random search- Parameters:
lowerIsBetter
- True if the quality measure is better the lower its value. False otherwise.
-
printResults
public void printResults(String numberFormat, int topN)
Prints the results of the random search- Parameters:
numberFormat
- Number format for the quality measure valuestopN
- Number of entries of the development set to be shown as the top ones
-
printResults
public void printResults(int topN, boolean lowerIsBetter)
Prints the results of the random search- Parameters:
topN
- Number of entries of the development set to be shown as the top oneslowerIsBetter
- True if the quality measure is better the lower its value. False otherwise.
-
printResults
public void printResults(String numberFormat, boolean lowerIsBetter)
Prints the results of the random search- Parameters:
numberFormat
- Number format for the quality measure valueslowerIsBetter
- True if the quality measure is better the lower its value. False otherwise.
-
printResults
public void printResults(String numberFormat, int topN, boolean lowerIsBetter)
Prints the results of the random search- Parameters:
numberFormat
- Number format for the quality measure valuestopN
- Number of entries of the development set to be shown as the top oneslowerIsBetter
- True if the quality measure is better the lower its value. False otherwise.
-
-