class_docstr: Class for generating ML hyperparameter tuning problems.
  We propose different possible regressors and different dimensionalities.
  In each case, Nevergrad will optimize the parameters of a scikit learning.
  
  Parameters
  ----------
  regressor: str
      type of function we can use for doing the regression. Can be "mlp", "decision_tree", "decision_tree_depth",
      "keras_dense_nn", "any".
      "any" means that the regressor has one more parameter which is a discrete choice among sklearn possibilities.
  data_dimension: int
      dimension of the data we generate. None if not an artificial dataset.
  dataset: str
      type of dataset; can be diabetes, boston, artificial, artificialcoos, artificialsquare.
  overfitter: bool
      if we want the evaluation to be the same as during the optimization run. This means that instead
      of train/valid/error, we have train/valid/valid. This is for research purpose, when we want to check if an algorithm
      is particularly good or particularly bad because it fails to minimize the validation loss or because it overfits.
class_docstr_tok: ["Class","for","generating","ML","hyperparameter","tuning","problems",".","We","propose","different","possible","regressors","and","different","dimensionalities",".","In","each","case",",","Nevergrad","will","optimize","the","parameters","of","a","scikit","learning",".","Parameters","--","--","--","--","--","regressor",":","str","type","of","function","we","can","use","for","doing","the","regression",".","Can","be","``","mlp","''",",","``","decision_tree","''",",","``","decision_tree_depth","''",",","``","keras_dense_nn","''",",","``","any","''",".","``","any","''","means","that","the","regressor","has","one","more","parameter","which","is","a","discrete","choice","among","sklearn","possibilities",".","data_dimension",":","int","dimension","of","the","data","we","generate",".","None","if","not","an","artificial","dataset",".","dataset",":","str","type","of","dataset",";","can","be","diabetes",",","boston",",","artificial",",","artificialcoos",",","artificialsquare",".","overfitter",":","bool","if","we","want","the","evaluation","to","be","the","same","as","during","the","optimization","run",".","This","means","that","instead","of","train\/valid\/error",",","we","have","train\/valid\/valid",".","This","is","for","research","purpose",",","when","we","want","to","check","if","an","algorithm","is","particularly","good","or","particularly","bad","because","it","fails","to","minimize","the","validation","loss","or","because","it","overfits","."]
code: def evaluation_function(self, *recommendations: p.Parameter) -> float:
      assert (
          len(recommendations) == 1
      ), "Should not be a pareto set for a singleobjective function"
      assert not recommendations[0].args
      kwargs = dict(recommendations[0].kwargs)
      # override with eval parameters (with partial, the eval parameters would be overriden by kwargs)
      kwargs.update(self._evalparams)
      return self._ml_parametrization(**kwargs)
  
file_path: nevergrad/nevergrad/functions/ml/mlfunctionlib.py
imports: import typing
  from functools import partial
  import numpy
  import sklearn.datasets
  from sklearn.tree import DecisionTreeRegressor
  from sklearn.neural_network import MLPRegressor
  from sklearn.model_selection import train_test_split, KFold
  from sklearn.metrics import mean_squared_error
  import pandas
  from nevergrad.parametrization import parameter
  from ..base import ExperimentFunction
label_desc: Use image node_id 3 for calling the MLTuning obj's underlying member method code with example usage: obj.evaluation_function() and returns: self