TL:DR
No habrá diferencia si F-regression
sólo calcula el estadístico F y elige las mejores características. Podría haber una diferencia en la clasificación, suponiendo que F-regression
hace lo siguiente:
- Empieza con un modelo constante, $M_0$
- Probar todos los modelos $M_1$ consistente en una sola característica y elegir la mejor según el estadístico F
- Probar todos los modelos $M_2$ compuesto por $M_1$ más otra característica y elegir el mejor ...
Ya que la correlación no será la misma en cada iteración. Pero aún se puede obtener esta clasificación simplemente calculando la correlación en cada paso, así que ¿por qué F-regression
da un paso adicional? Hace dos cosas:
- Selección de características: Si desea seleccionar la $k$ mejores características en un proceso de aprendizaje automático, en el que sólo te importa la precisión y tienes medidas para ajustar el ajuste por defecto o por exceso, puede que sólo te importe la clasificación y el cálculo adicional no sea útil.
- Prueba de significación: Si está intentando comprender el efecto de algunas variables sobre un resultado en un estudio, es posible que desee construir un modelo lineal, y sólo incluir las variables que son significativamente mejorar su modelo, con respecto a algunos $p$ -valor. Toma,
F-regression
es muy útil.
¿Qué es una prueba F?
A Prueba F (Wikipedia) es una forma de comparar la importancia de la mejora de un modelo, con respecto a la adición de nuevas variables. Se puede utilizar cuando se tiene un modelo básico $M_0$ y un modelo más complicado $M_1$ que contiene todas las variables de $M_0$ y algunos más. La prueba F te dice si $M_1$ es significativamente mejor que $M_0$ con respecto a a $p$ -valor.
Para ello, utiliza la suma residual de cuadrados como medida del error, y compara la reducción del error con el número de variables añadidas y el número de observaciones (más detalles en Wikipedia ). Se espera que la adición de variables, aunque sean completamente aleatorias, ayude siempre al modelo a conseguir un error menor al añadir otra dimensión. El objetivo es averiguar si las nuevas características son vraiment útiles o si son números aleatorios pero siguen ayudando al modelo porque añaden una dimensión.
¿Qué significa f_regression
do
Tenga en cuenta que no estoy familiarizado con la implementación de Scikit learn, pero vamos a tratar de averiguar lo que f_regression
está haciendo. En documentación establece que el procedimiento es secuencial. Si la palabra secuencial significa lo mismo que en otros paquetes estadísticos, como Selección secuencial de características en Matlab Así es como yo esperaría que procediera:
- Empieza con un modelo constante, $M_0$
- Probar todos los modelos $M_1$ consistente en una sola característica y elegir la mejor según el estadístico F
- Probar todos los modelos $M_2$ compuesto por $M_1$ más otra característica y elegir el mejor ...
Por ahora, creo que es una aproximación suficiente para responder a su pregunta; ¿hay alguna diferencia entre la clasificación de f_regression
y clasificación por correlación.
Si empezaras con un modelo constante $M_0$ y tratar de encontrar el mejor modelo con una sola característica, $M_1$ seleccionará la misma función tanto si utiliza f_regression
o su enfoque basado en la correlación, ya que ambos son una medida de dependencia lineal. Pero si pasáramos de $M_0$ a $M_1$ y luego a $M_2$ habría una diferencia en su puntuación.
Supongamos que tiene tres funciones, $x_1, x_2, x_3$ donde ambos $x_1$ y $x_2$ están muy correlacionadas con la producción $y$ pero también muy correlacionadas entre sí, mientras que $x_3$ sólo está medianamente correlacionada con $y$ . Su método de puntuación asignaría las mejores puntuaciones a $x_1$ y $x_2$ pero el método secuencial puede que no. En la primera ronda, elegiría la mejor característica, por ejemplo $x_1$ para crear $M_1$ . A continuación, evaluaría tanto $x_2$ y $x_3$ para $M_2$ . En $x_2$ está muy correlacionada con una característica ya seleccionada, la mayor parte de la información que contiene ya está incorporada al modelo, por lo que el procedimiento podría seleccionar $x_3$ . Aunque está menos correlacionado con $y$ está más correlacionado con el residuos la parte que $x_1$ no explica ya, que $x_2$ . En esto se diferencian los dos procedimientos que usted propone.
Puedes emular el mismo efecto con tu idea construyendo tu modelo secuencialmente y midiendo la diferencia de ganancia para cada característica adicional en lugar de compararlas con el modelo constante $M_0$ como estás haciendo ahora. El resultado no sería diferente del f_regression
resultados. La razón por la que existe esta función es para proporcionar esta selección secuencial de características, y además convierte el resultado en una medida F que se puede utilizar para juzgar la significación.
El objetivo de la prueba F es proporcionar el nivel de significación. Si desea asegurarse de que las características que está incluyendo son significativas con respecto a su $p$ -valor, se utiliza una prueba F. Si sólo desea incluir el $k$ mejores prestaciones, puede utilizar sólo la correlación.
Material adicional: Aquí hay un introducción a la prueba F puede resultarle útil