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 dey
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
,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 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 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 contextojoblib.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