@Override
  public List<ParameterType> getParameterTypes() {
    List<ParameterType> types = super.getParameterTypes();
    types.add(
        new ParameterTypeBoolean(
            PARAMETER_USE_WEIGHTS,
            "Indicates if the weight attribute should be used.",
            false,
            false));
    types.add(
        new ParameterTypeInt(
            PARAMETER_K,
            "The number of clusters which should be detected.",
            2,
            Integer.MAX_VALUE,
            2,
            false));
    types.add(
        new ParameterTypeInt(
            PARAMETER_MAX_OPTIMIZATION_STEPS,
            "The maximal number of iterations performed for one run of k-Means.",
            1,
            Integer.MAX_VALUE,
            100,
            false));

    types.addAll(RandomGenerator.getRandomGeneratorParameters(this));

    types.addAll(Kernel.getParameters(this));
    return types;
  }
 @Override
 public List<ParameterType> getParameterTypes() {
   List<ParameterType> types = super.getParameterTypes();
   types.addAll(Kernel.getParameters(this));
   return types;
 }