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
,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 utilizaStratifiedKFold
. En todos los demás casos, se utilizaKFold
.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 contextojoblib.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
aFalse
- 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
entest_score
cambia a una métrica específica comotest_r2
otest_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
entrain_score
cambia a una métrica específica comotrain_r2
otrain_auc
si hay múltiples métricas de puntuación en el parámetro scoring. Esto sólo está disponible si el parámetroreturn_train_score
esTrue
.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 comoTrue
estimator
Los objetos estimator(estimador) para cada división del cv. Sólo está disponible si el parámetro
return_estimator
se establece comoTrue
.
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ámetroscoring
)>>> 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]