sklearn.model_selection.cross_validate

sklearn.model_selection.cross_validate()

Evalúa la(s) métrica(s) mediante validación cruzada y registra también los tiempos de ajuste/puntuación.

Más información en el Manual de usuario.

Parámetros
estimatorobjeto estimador implementando “fit”

El objeto a utilizar para ajustar los datos.

Xarray-like de forma (n_samples, n_features)

Los datos a ajustar. Puede ser, por ejemplo, una lista(list) o un arreglo(array).

yarray-like de forma (n_samples,) o (n_samples, n_outputs), default=None

La variable objetivo que se intenta predecir en el caso del aprendizaje supervisado.

groupsarray-like de forma (n_samples,), default=None

Etiquetas de grupo para las muestras utilizadas al dividir el conjunto de datos en conjunto de entrenamiento/prueba. Sólo se utiliza junto con una instancia de cv «Group» (por ejemplo, GroupKFold).

scoringstr, callable, list/tuple, or dict, default=None

A single str (see El parámetro scoring: definir las reglas de evaluación del modelo) or a callable (see Definir tu estrategia de puntuación a partir de funciones métricas) to evaluate the predictions on the test set.

For evaluating multiple metrics, either give a list of (unique) strings or a dict with names as keys and callables as values.

NOTE that when using custom scorers, each scorer should return a single value. Metric functions returning a list/array of values can be wrapped into multiple scorers that return one value each.

Ver Especificar múltiples métricas para la evaluación para un ejemplo.

If None, the estimator’s score method is used.

cventero, generador de validación cruzada o un iterable, default=None

Determina la estrategia de separación de la validación cruzada. Las entradas posibles para cv son:

  • None, para utilizar la validación cruzada de 5-pliegues por defecto,

  • int, para especificar el número de pliegues(folds) en un (Stratified)KFold,

  • separador de CV,

  • Un iterable que produce separaciones (train, test) como arreglos de índices.

Para entradas int/None, si el estimador es un clasificador y y es binario o multiclase, se utiliza StratifiedKFold. En todos los demás casos, se utiliza KFold.

Consulta Manual de usuario para las diversas estrategias de validación cruzada que pueden ser utilizadas aquí.

Distinto en la versión 0.22: El valor predeterminado de cv si es None cambió de 3 a 5 pliegues.

n_jobsentero, default=None

Número de trabajos a ejecutar en paralelo. El entrenamiento del estimador y el cálculo de la puntuación se paralelizan sobre las separaciones de validación cruzada. None significa 1 a menos que esté en un contexto joblib.parallel_backend. -1 significa que se utilizan todos los procesadores. Ver Glosario para más detalles.

verboseentero, default=0

El nivel de verbosidad.

fit_paramsdict, default=None

Los parámetros a pasar al método fit del estimador.

pre_dispatchentero o cadena, default=”2*n_jobs”

Controla el número de trabajos que se envían durante la ejecución en paralelo. Reducir este número puede ser útil para evitar una explosión de consumo de memoria cuando se envían más trabajos de los que las CPUs pueden procesar. Este parámetro puede ser:

  • None, en cuyo caso todos los trabajos se crean y generan inmediatamente. Utilícelo para trabajos ligeros y de ejecución rápida, para evitar retrasos debidos a la generación de trabajos bajo demanda

  • Un int, que da el número exacto de trabajos totales que se generan

  • Una str, que da una expresión como función de n_jobs, como en “2*n_jobs”

return_train_scorebooleano, default=False

Si incluir o no las puntuaciones de entrenamiento. El cálculo de las puntuaciones de entrenamiento se utiliza para obtener información sobre el impacto de las diferentes configuraciones de los parámetros en el equilibrio entre sobreajuste/subajuste. Sin embargo, calcular las puntuaciones en el conjunto de entrenamiento puede ser costoso desde el punto de vista informático y no es estrictamente necesario para seleccionar los parámetros que producen el mejor rendimiento de generalización.

Nuevo en la versión 0.19.

Distinto en la versión 0.21: El valor predeterminado se ha cambiado de True a False

return_estimatorbooleano, default=False

Si se devuelven los estimadores ajustados en cada división.

Nuevo en la versión 0.20.

error_score“raise” o numérico, default=np.nan

Valor a asignar a la puntuación si se produce un error en el ajuste del estimador. Si se establece como “raise”, el error se lanza. Si se da un valor numérico, se plantea FitFailedWarning.

Nuevo en la versión 0.20.

Devuelve
scoresdict de float, arrays de forma (n_splits,)

Arreglo de puntuaciones del estimador para cada ejecución de la validación cruzada.

Se devuelve un diccionario (dict) de arreglos que contiene los arreglos de puntuación/tiempo de cada puntuador. Las posibles claves de este dict son:

test_score

El arreglo de puntuación para las puntuaciones de las pruebas en cada división del cv. El sufijo _score en test_score cambia a una métrica específica como test_r2 o test_auc si hay múltiples métricas de puntuación en el parámetro scoring.

train_score

El arreglo de puntuación para las puntuaciones de entrenamiento en cada división del cv. El sufijo _score en train_score cambia a una métrica específica como train_r2 o train_auc si hay múltiples métricas de puntuación en el parámetro scoring. Esto sólo está disponible si el parámetro return_train_score es True.

fit_time

El tiempo de ajuste del estimador en el conjunto de entrenamiento para cada división del cv.

score_time

El tiempo de puntuación del estimador en el conjunto de prueba para cada división del cv. (Nota que el tiempo de puntuación en el conjunto de entrenamiento no se incluye incluso si return_train_score se establece como True

estimator

Los objetos estimator(estimador) para cada división del cv. Sólo está disponible si el parámetro return_estimator se establece como True.

Ver también

cross_val_score

Ejecuta la validación cruzada para la evaluación de una sola métrica.

cross_val_predict

Obtiene las predicciones de cada división de la validación cruzada con fines de diagnóstico.

sklearn.metrics.make_scorer

Hace un puntuador a partir de una métrica de rendimiento o una función de pérdida.

Ejemplos

>>> from sklearn import datasets, linear_model
>>> from sklearn.model_selection import cross_validate
>>> from sklearn.metrics import make_scorer
>>> from sklearn.metrics import confusion_matrix
>>> from sklearn.svm import LinearSVC
>>> diabetes = datasets.load_diabetes()
>>> X = diabetes.data[:150]
>>> y = diabetes.target[:150]
>>> lasso = linear_model.Lasso()

Evaluación de una métrica mediante cross_validate

>>> cv_results = cross_validate(lasso, X, y, cv=3)
>>> sorted(cv_results.keys())
['fit_time', 'score_time', 'test_score']
>>> cv_results['test_score']
array([0.33150734, 0.08022311, 0.03531764])

Evaluación de múltiples métricas mediante cross_validate (para más información, consulta la documentación del parámetro scoring)

>>> scores = cross_validate(lasso, X, y, cv=3,
...                         scoring=('r2', 'neg_mean_squared_error'),
...                         return_train_score=True)
>>> print(scores['test_neg_mean_squared_error'])
[-3635.5... -3573.3... -6114.7...]
>>> print(scores['train_r2'])
[0.28010158 0.39088426 0.22784852]

Ejemplos utilizando sklearn.model_selection.cross_validate