Class RandomSearchCV
- java.lang.Object
-
- es.upm.etsisi.cf4j.util.optimization.RandomSearchCV
-
- Direct Known Subclasses:
GridSearchCV
public class RandomSearchCV 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 by splitting the train set of the dataset in validations sets using cross validation. 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 RandomSearchCV(DataModel datamodel, ParamsGrid grid, Class<? extends Recommender> recommenderClass, Class<? extends QualityMeasure> qualityMeasureClass, int cv, double coverage)
RandomSearchCV constructorRandomSearchCV(DataModel datamodel, ParamsGrid grid, Class<? extends Recommender> recommenderClass, Class<? extends QualityMeasure> qualityMeasureClass, int cv, double coverage, long seed)
RandomSearchCV constructorRandomSearchCV(DataModel datamodel, ParamsGrid grid, Class<? extends Recommender> recommenderClass, Class<? extends QualityMeasure> qualityMeasureClass, int cv, int numIters)
RandomSearchCV constructorRandomSearchCV(DataModel datamodel, ParamsGrid grid, Class<? extends Recommender> recommenderClass, Class<? extends QualityMeasure> qualityMeasureClass, int cv, int numIters, long seed)
RandomSearchCV constructorRandomSearchCV(DataModel datamodel, ParamsGrid grid, Class<? extends Recommender> recommenderClass, Class<? extends QualityMeasure> qualityMeasureClass, Map<String,Object> qualityMeasureParams, int cv, double coverage)
RandomSearchCV constructorRandomSearchCV(DataModel datamodel, ParamsGrid grid, Class<? extends Recommender> recommenderClass, Class<? extends QualityMeasure> qualityMeasureClass, Map<String,Object> qualityMeasureParams, int cv, double coverage, long seed)
RandomSearchCV constructorRandomSearchCV(DataModel datamodel, ParamsGrid grid, Class<? extends Recommender> recommenderClass, Class<? extends QualityMeasure> qualityMeasureClass, Map<String,Object> qualityMeasureParams, int cv, int numIters)
RandomSearchCV constructorRandomSearchCV(DataModel datamodel, ParamsGrid grid, Class<? extends Recommender> recommenderClass, Class<? extends QualityMeasure> qualityMeasureClass, Map<String,Object> qualityMeasureParams, int cv, int numIters, long seed)
RandomSearchCV constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
exportResults(String filename)
Exports results of RandomSerachCV in csv formatvoid
exportResults(String filename, boolean includeHeader)
Exports results of RandomSerachCV in csv formatvoid
exportResults(String filename, String separator)
Exports results of RandomSerachCV in csv formatvoid
exportResults(String filename, String separator, boolean includeHeader)
Exports results of RandomSerachCV in csv formatvoid
fit()
Performs grid searchvoid
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
-
RandomSearchCV
public RandomSearchCV(DataModel datamodel, ParamsGrid grid, Class<? extends Recommender> recommenderClass, Class<? extends QualityMeasure> qualityMeasureClass, int cv, double coverage)
RandomSearchCV 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>)cv
- Number of fold for the cross validationcoverage
- Percentage of samples of the development set to be evaluated
-
RandomSearchCV
public RandomSearchCV(DataModel datamodel, ParamsGrid grid, Class<? extends Recommender> recommenderClass, Class<? extends QualityMeasure> qualityMeasureClass, int cv, double coverage, long seed)
RandomSearchCV 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>)cv
- Number of fold for the cross validationcoverage
- Percentage of samples of the development set to be evaluatedseed
- Random seed for random numbers generation
-
RandomSearchCV
public RandomSearchCV(DataModel datamodel, ParamsGrid grid, Class<? extends Recommender> recommenderClass, Class<? extends QualityMeasure> qualityMeasureClass, Map<String,Object> qualityMeasureParams, int cv, double coverage)
RandomSearchCV 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)cv
- Number of fold for the cross validationcoverage
- Percentage of samples of the development set to be evaluated
-
RandomSearchCV
public RandomSearchCV(DataModel datamodel, ParamsGrid grid, Class<? extends Recommender> recommenderClass, Class<? extends QualityMeasure> qualityMeasureClass, Map<String,Object> qualityMeasureParams, int cv, double coverage, long seed)
RandomSearchCV 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)cv
- Number of fold for the cross validationcoverage
- Percentage of samples of the development set to be evaluatedseed
- Random seed for random numbers generation
-
RandomSearchCV
public RandomSearchCV(DataModel datamodel, ParamsGrid grid, Class<? extends Recommender> recommenderClass, Class<? extends QualityMeasure> qualityMeasureClass, int cv, int numIters)
RandomSearchCV 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>)cv
- Number of fold for the cross validationnumIters
- Number of samples of the development set to be evaluated
-
RandomSearchCV
public RandomSearchCV(DataModel datamodel, ParamsGrid grid, Class<? extends Recommender> recommenderClass, Class<? extends QualityMeasure> qualityMeasureClass, int cv, int numIters, long seed)
RandomSearchCV 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>)cv
- Number of fold for the cross validationnumIters
- Number of samples of the development set to be evaluatedseed
- Random seed for random numbers generation
-
RandomSearchCV
public RandomSearchCV(DataModel datamodel, ParamsGrid grid, Class<? extends Recommender> recommenderClass, Class<? extends QualityMeasure> qualityMeasureClass, Map<String,Object> qualityMeasureParams, int cv, int numIters)
RandomSearchCV 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)cv
- Number of fold for the cross validationnumIters
- Number of samples of the development set to be evaluated
-
RandomSearchCV
public RandomSearchCV(DataModel datamodel, ParamsGrid grid, Class<? extends Recommender> recommenderClass, Class<? extends QualityMeasure> qualityMeasureClass, Map<String,Object> qualityMeasureParams, int cv, int numIters, long seed)
RandomSearchCV 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)cv
- Number of fold for the cross validationnumIters
- 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.
-
exportResults
public void exportResults(String filename) throws IOException
Exports results of RandomSerachCV in csv format- Parameters:
filename
- File name- Throws:
IOException
- When file is not found or is locked.
-
exportResults
public void exportResults(String filename, boolean includeHeader) throws IOException
Exports results of RandomSerachCV in csv format- Parameters:
filename
- File nameincludeHeader
- Include CSV header line. By default: true- Throws:
IOException
- When file is not found or is locked.
-
exportResults
public void exportResults(String filename, String separator) throws IOException
Exports results of RandomSerachCV in csv format- Parameters:
filename
- File nameseparator
- CSV separator field. By default: colon character (,)- Throws:
IOException
- When file is not found or is locked.
-
exportResults
public void exportResults(String filename, String separator, boolean includeHeader) throws IOException
Exports results of RandomSerachCV in csv format- Parameters:
filename
- File nameseparator
- CSV separator field. By default: colon character (,)includeHeader
- Include CSV header line. By default: true- Throws:
IOException
- When file is not found or is locked.
-
-