public static final String PARAMETER_Range="Range";
public List<ParameterType> getParameterTypes() {
List<ParameterType> types = super.getParameterTypes();
types.add(new ParameterTypeInt(PARAMETER_Min, "Value of minimal rating value. Range: integer; 0-+?; default: 1", 0, Integer.MAX_VALUE, 1, false));
types.add(new ParameterTypeInt(PARAMETER_Range, "Range of possible rating values. Range: integer; 1-+?; default: 4 ; Max Rating=Min Rating+Range;", 1, Integer.MAX_VALUE, 4, false));
types.add(new ParameterTypeInt(PARAMETER_NUM_FACTORS, "Number of latent factors. Range: integer; 1-+?; default: 10", 1, Integer.MAX_VALUE, 10, true));
types.add(new ParameterTypeDouble(PARAMETER_LEARN_RATE, "Learning rate of algorithm. Range: double; 0-+?; default: 0.01", 0, Double.MAX_VALUE, 0.01, false));
types.add(new ParameterTypeInt(PARAMETER_NUM_ITER, "Number of iterations. Range: integer; 1-+?; default: 30", 1, Integer.MAX_VALUE, 30, false));
types.add(new ParameterTypeDouble(PARAMETER_REGULARIZATION, "Value of regularization parameter. Range: double; 0-+?; default: 0.015", 0, Double.MAX_VALUE, 0.015, true));
types.add(new ParameterTypeDouble(PARAMETER_INIT_MEAN, "Initial mean. Range: double; 0-+?; default: 0", 0, Double.MAX_VALUE, 0, true));
types.add(new ParameterTypeDouble(PARAMETER_INIT_STDEV, "Initial stdev. Range: double; 0-+?; default: 0.1", 0, Double.MAX_VALUE, 0.1, true));
return types;
}