¿Es esta una buena práctica de ingeniería de características?

10

Tengo una pregunta práctica sobre la ingeniería de características ... digamos que quiero predecir los precios de la vivienda mediante el uso de regresión logística y utilicé un montón de características, incluido el código postal. Luego, al verificar la importancia de la función, me doy cuenta de que zip es una función bastante buena, así que decidí agregar algunas funciones más basadas en zip: por ejemplo, voy a la oficina del censo y obtengo el ingreso promedio, la población, el número de escuelas y el número de hospitales de cada zip. Con estas cuatro nuevas características, encuentro que el rendimiento del modelo es mejor ahora. Así que agrego aún más funciones relacionadas con zip ... Y este ciclo sigue y sigue. Eventualmente, el modelo estará dominado por estas características relacionadas con zip, ¿verdad?

Mis preguntas:

  1. ¿Tiene sentido hacer esto en primer lugar?
  2. En caso afirmativo, ¿cómo sé cuándo es un buen momento para detener este ciclo?
  3. ¿Si no, porque no?
usuario3768495
fuente

Respuestas:

6

Si puede seguir agregando nuevos datos (basados ​​en un concepto principal como área, es decir, el código postal) y el rendimiento de su modelo mejora, entonces, por supuesto, está permitido ... suponiendo que solo le importe el resultado final.

Hay métricas que tratarán de guiarlo con esto, como el Criterio de información de Akaike (AIC) o el Criterio de información bayesiano (BIC) comparable . Básicamente, ayudan a elegir un modelo en función de su rendimiento, siendo castigado por todos los parámetros adicionales que se introducen y que deben estimarse. El AIC se ve así:

UNyoC=2k-2En(L^)

kL^k

Estos criterios pueden ayudarlo a decir cuándo detenerse, ya que puede probar modelos con más y más parámetros y simplemente tomar el modelo que tenga el mejor valor de AIC o BIC.

Si todavía tiene otras características en el modelo, que no están relacionadas con el ZIP, podrían verse abrumadas, eso depende del modelo que utilice. Sin embargo, también pueden explicar cosas sobre el conjunto de datos que simplemente no pueden incluirse en la información ZIP, como el área de piso de una casa (suponiendo que esto sea relativamente independiente del código postal).

En este caso, puede compararlos con algo como Análisis de componentes principales, donde una colección de características explica una dimensión de la varianza en el conjunto de datos, mientras que otras características explican otra dimensión. Entonces, no importa cuántas características relacionadas con ZIP tenga, nunca puede explicar la importancia del área de piso.

n1k31t4
fuente
7

1) Sí, tiene sentido. Intentar crear funciones manualmente ayudará a los alumnos (es decir, los modelos) a obtener más información de los datos sin procesar porque los datos sin procesar no siempre están en una forma que sea apta para el aprendizaje, pero siempre se pueden construir características a partir de ellos. La función que está agregando se basa en una función. Esto es comun. Sin embargo, su alumno, la regresión logística, es sensible a la multicolinealidad. Debe tener cuidado con qué función y cuántas funciones agregar. De lo contrario, su modelo puede sobreajustar.

2) Dado que está utilizando una regresión logística, siempre puede usar AIC o realizar una prueba de significación estadística, como la prueba de chi-cuadrado (prueba de la bondad del ajuste) antes de agregar una nueva estructura, para decidir si la distribución de la respuesta realmente es diferente con y sin esta estructura. Esto es particularmente útil cuando sus datos son escasos. Otra forma es agregar un término de penalización a su modelo. Por ejemplo, regresión logística de lazo.

3) Seguir agregando nuevas características no siempre es una buena idea. Tenga cuidado con la maldición de la alta dimensionalidad. Al agregar una nueva función, en realidad está agregando una nueva dimensión a sus datos. Ingenuamente, uno podría pensar que reunir más funciones nunca está de más, ya que en el peor de los casos no proporcionan información nueva sobre la clase. Pero, de hecho, sus beneficios pueden ser superados por la maldición de la dimensionalidad. Espero que sean útiles las cosas útiles que debe saber sobre la sesión de aprendizaje automático6.

Fansly
fuente
¿@ User3768495 está evaluando el rendimiento del modelo fuera de muestra utilizando, por ejemplo, validación cruzada? Si es así, la multicolinealidad no debería ser un problema y no debería preocuparse por el sobreajuste, ya que obtendrá una indicación de sobreajuste a través de la disminución del rendimiento de validación.
rinspy
@rinspy overfitting tiene muchas caras. La participación de un conjunto de validación puede ayudar a evitar el sobreajuste, pero no puede resolver el problema. Por ejemplo, la distribución inconsistente entre los datos de entrenamiento (que se divide en conjunto de entrenamiento y conjunto de validación) y la población real. Incluso el modelo funciona bien en los datos de entrenamiento, puede que no se generalice a la situación del mundo real. La referencia de mi respuesta también habló sobre el sobreajuste.
Fansly
Es cierto, pero evitar la multicolinealidad no ayudará con el 'sobreajuste' que surge de los cambios covariables. Solo digo que la multicolinealidad probablemente no sea un problema si está interesado en construir un modelo predictivo (y no descriptivo).
rinspy
Mi concepto sobre el sobreajuste se trata de cuando un modelo no se generaliza a un nuevo conjunto de datos, no dentro de los datos de entrenamiento. Por favor vea esto
Fansly
4

Por lo general, cuanto más ricas sean las características, mejor.

Sin embargo, una cosa a tener en cuenta es que las regresiones, en general, no funcionan bien con datos altamente correlacionados (multicolinealidad). Cuando expande sus funciones de esta manera, es algo que puede tener en cuenta.

Hay mucha información sobre este mismo tema (y posibles formas de mitigar), solo la regresión de Google y la multicolinealidad.

En breve,

  1. Si. Definitivamente.
  2. @ n1k31t4 tiene algunas buenas sugerencias. Siéntase libre de generar qué características cree que mejorarán su modelo, luego puede usar técnicas como PCA y otras técnicas de selección de características para limitarse a lo que es importante.
  3. La otra cosa a considerar es cuán práctico es en cuanto a esfuerzo versus resultado.
El letrista
fuente
0

Las características son la información de su modelo. Cuanta más información, mejor podrá realizar y predecir. Cuanto menor sea, más difícil de predecir los valores. Entonces, la respuesta más breve es sí. Siempre vale la pena tener tantas características como sea posible. Sin embargo, siempre hay un límite para esto, ya que una sobrecarga de información también puede quemar su procesador, así que tenga cuidado con la cantidad de características que se están diseñando. Además, las características innecesarias solo se suman al agotamiento, por lo que siempre es una buena práctica limpiar ciertas características. Toda la fase de preprocesamiento de datos se trata de eso.

La primera respuesta tiene algunos buenos detalles al respecto. En lo que respecta a detener un ciclo, hay varias medidas y factores que debe tener en cuenta para verificar dónde su modelo ha dejado de funcionar mejor y esas son medidas como el RMSE. Un ejemplo simple será usar la xgboostregresión en sus datos y especificar el número de ciclos. Ejecute el modelo y obtendrá el RMSE para cada ciclo. Disminuirá a un límite después del cual podrá deducir que el modelo se ha estancado después de un cierto ciclo. Así es como funciona el ajuste y la optimización del modelo.

Shiv_90
fuente