public List<ParameterType> getParameterTypes() {
List<ParameterType> types = super.getParameterTypes();
types.add(new ParameterTypeInt(PARAMETER_K, "The used number of nearest neighbors. Range: integer; 1-+?; default: 80", 1, Integer.MAX_VALUE, 80, false));
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));
ParameterType type = new ParameterTypeCategory(PARAMETER_CORRELATION_MODE, "Tipe of correlation used to calculate prediction.", CORRELATION_MODES, CORRELATION_MODE_COSINE);
type.setExpert(false);
types.add(type);
types.add(new ParameterTypeDouble(PARAMETER_REGU, "Regularization parameter for user biases. Range: double; 0-+?; default: 10 ;", 0, Double.MAX_VALUE, 10, true));
types.add(new ParameterTypeDouble(PARAMETER_REGI, "Regularization parameter for item biases. Range: double; 0-+?; default: 5 ;", 0, Double.MAX_VALUE, 5, true));
types.add(new ParameterTypeDouble(PARAMETER_schrink, "Schrinkage regularization parameter. Range: float; 0-+?; default: 10 ; used only in Pearson mode", 0, Float.MAX_VALUE, 10, true));
return types;