sklearn.model_selection.permutation_test_score

sklearn.model_selection.permutation_test_score()

Evaluar la significación de una puntuación validada de forma cruzada con permutaciones

Permute los objetivos para generar «datos aleatorios» y calcule el valor p empírico frente a la hipótesis nula de que las características y los objetivos son independientes.

El valor p representa la fracción de conjuntos de datos aleatorios en los que el estimador funcionó tan bien o mejor que en los datos originales. Un valor p pequeño sugiere que hay una dependencia real entre las características y los objetivos que ha sido utilizada por el estimador para dar buenas predicciones. Un valor p elevado puede deberse a la falta de dependencia real entre las características y los objetivos o a que el estimador no fue capaz de utilizar la dependencia para hacer buenas predicciones.

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

Parámetros
estimatorobjeto estimador implementando “fit”

El objeto a usar para ajustar los datos.

Xarray-like de forma al menos 2D

Los datos a ajustar.

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

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

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

Etiquetas para restringir la permutación dentro de los grupos, es decir, los valores de y se permutan entre las muestras con el mismo identificador de grupo. Si no se especifica, los valores de y se permutan entre todas las muestras.

Cuando se utiliza un validador cruzado agrupado, las etiquetas de grupo también se pasan al método split del validador cruzado. El validador cruzado las utiliza para agrupar las muestras mientras separa el conjunto de datos en conjunto de entrenamiento/prueba.

scoringcadena de caracteres o invocable, default=None

Una sola cadena (ver El parámetro scoring: definir las reglas de evaluación del modelo) o un callable (ver Definir tu estrategia de puntuación a partir de funciones métricas) para evaluar las predicciones en el conjunto de prueba.

Si es None se utiliza el método de puntuación del estimador.

cvint, generador de validación cruzada o un iterable, por defecto=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 en un (Stratified)KFold,

  • separador de CV,

  • Un iterable que produce (train, test) se separa 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 None cambió de 3-fold a 5-fold.

n_permutationsint, default=100

Número de veces para permutar y.

n_jobsint, default=None

Número de trabajos a ejecutar en paralelo. El entrenamiento del estimador y el cálculo de la puntuación de validación cruzada se ejecutan en paralelo sobre las permutaciones. 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.

random_stateentero, instancia de RandomState o None, default=None

Pase un int para una salida reproducible para la permutación de los valores y entre las muestras. Ver Glosario.

verboseint, default=0

El nivel de verbosidad.

fit_paramsdict, default=None

Los parámetros que hay que pasar al método de ajuste del estimador.

Nuevo en la versión 0.24.

Devuelve
scorede punto flotante (float)

La puntuación verdadera sin permutar los objetivos.

permutation_scoresarreglo de forma (n_permutations,)

Las puntuaciones obtenidas para cada permutación.

pvaluede punto flotante (float)

El valor p, que se aproxima a la probabilidad de que la puntuación se obtenga por azar. Se calcula como:

(C + 1) / (n_permutations + 1)

Donde C es el número de permutaciones cuya puntuación >= la puntuación verdadera.

El mejor valor p posible es 1/(n_permutations + 1), el peor es 1,0.

Notas

Esta función implementa la prueba 1 en:

Ojala and Garriga. Permutation Tests for Studying Classifier Performance. The Journal of Machine Learning Research (2010) vol. 11

Ejemplos usando sklearn.model_selection.permutation_test_score