10 votos

SelectKBest - Selección de características - Python - SciKit Learn

Estoy aprendiendo sobre la selección de características utilizando Python y SciKit learn. Me encontré con la clase SelectKBest, sin embargo, no está claro qué tipo de prueba se realiza.

Select features according to the k highest scores.

http://scikit-learn.org/stable/modules/generated/sklearn.feature_selection.SelectKBest.html#sklearn.feature_selection.SelectKBest

La única referencia para la puntuación k que encontré fue la siguiente página de la wikipedia.

Cohen's kappa coefficient is a statistic which measures inter-rater agreement for qualitative (categorical) items.

¿La puntuación k de la clase SelectKBest se refiere a lo anterior? Gracias.

23voto

No, SelectKBest funciona de forma diferente.

Toma como parámetro una función de puntuación, que debe ser aplicable a un par ( $X$ , $y$ ). La función de puntuación debe devolver una matriz de puntuaciones, una por cada característica $X[:, i]$ de $X$ (adicionalmente, también puede devolver los valores p, pero estos no son necesarios ni requeridos). SelectKBest entonces simplemente retiene el primer $k$ características de $X$ con las puntuaciones más altas.

Así, por ejemplo, si pasa chi2 como función de puntuación, SelectKBest calculará el estadístico chi2 entre cada característica de $X$ y $y$ (se supone que son etiquetas de clase). Un valor pequeño significará que la característica es independiente de $y$ . Un valor grande significará que la característica está relacionada de forma no aleatoria con $y$ y, por lo tanto, es probable que proporcione información importante. Sólo $k$ se mantendrán las características.

Finalmente, SelectKBest tiene implementado un comportamiento por defecto, por lo que se puede escribir select = SelectKBest() y luego llamar a select.fit_transform(X, y) (de hecho he visto a gente hacerlo). En este caso SelectKBest utiliza el f_classif función de puntuación. Esto interpreta los valores de $y$ como etiquetas de clase y calcula, para cada característica $X[:, i]$ de $X$ , un $F$ -estadística. La fórmula utilizada es exactamente la que se da aquí: Prueba F de ANOVA de una vía con $K$ el número de valores distintos de $y$ . Una puntuación grande sugiere que las medias de los $K$ los grupos no son todos iguales. Esto no es muy informativo, y sólo es cierto cuando se cumplen algunas condiciones bastante estrictas: por ejemplo, los valores $X[:, i]$ deben proceder de poblaciones con distribución normal, y la varianza poblacional del $K$ los grupos deben ser los mismos. No veo por qué esto debería sostenerse en la práctica, y sin esta suposición el $F$ -Los valores no tienen sentido. Por lo tanto, el uso de SelectKBest() descuidadamente podría desechar muchas características por razones equivocadas.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X