¿Por qué funciona la ingeniería de características?

20

Recientemente he aprendido que una de las formas de encontrar mejores soluciones para los problemas de LA es mediante la creación de funciones. Se puede hacer eso, por ejemplo, sumando dos características.

Por ejemplo, poseemos dos características: "ataque" y "defensa" de algún tipo de héroe. Luego creamos una característica adicional llamada "total" que es una suma de "ataque" y "defensa". Ahora, lo que me parece extraño es que incluso el "ataque" y la "defensa" difíciles se correlacionan casi perfectamente con el "total", aún obtenemos información útil.

¿Cuál es la matemática detrás de eso? ¿O estoy razonando mal?

Además, ¿no es un problema, para clasificadores como kNN, que "total" siempre será mayor que "ataque" o "defensa"? Por lo tanto, incluso después de la estandarización, ¿tendremos características que contengan valores de diferentes rangos?

MrKadek750
fuente
La práctica de sumar dos características ciertamente no representa "ingeniería de características" en general.
xji

Respuestas:

21

Cuestionas el título y el contenido me parece incompatible. Si está utilizando un modelo lineal, agregue una característica total además del ataque y la defensa empeorará las cosas.

Primero, respondería por qué el trabajo de ingeniería de características en general.

Una imagen vale mas que mil palabras. Esta figura puede indicarle algunas ideas sobre la ingeniería de características y por qué funciona ( fuente de la imagen ):

ingrese la descripción de la imagen aquí

  • Los datos en coordenadas cartesianas son más complicados, y es relativamente difícil escribir una regla / construir un modelo para clasificar dos tipos.

  • Los datos en coordenadas polares son mucho más fáciles: podemos escribir una regla simple en para clasificar dos tipos.r

Esto nos dice que la representación de los datos es muy importante. En cierto espacio, es mucho más fácil hacer ciertas tareas que otros espacios.

Aquí respondo la pregunta mencionada en su ejemplo (total en ataque y defensa)

De hecho, la ingeniería de características mencionada en este ejemplo de suma de ataque y defensa no funcionará bien para muchos modelos, como el modelo lineal, y causará algunos problemas. Ver Multicolinealidad . Por otro lado, dicha ingeniería de características puede funcionar en otros modelos, como árbol de decisión / bosque aleatorio. Ver la respuesta de @ Imran para más detalles.

Entonces, la respuesta es que, según el modelo que utilice, algunas funciones de ingeniería ayudarán en algunos modelos, pero no en otros.

Haitao Du
fuente
La suma no necesita ser colineal con los sumandos. Ver por ejemplo mi respuesta.
Kodiólogo
15

El tipo de modelo que estamos utilizando podría no ser muy eficiente para aprender ciertas combinaciones de características existentes.

ad0 0un+re<0 01un+re0 0

Dado que los árboles de decisión solo pueden dividirse a lo largo de ejes de características individuales, nuestro modelo terminará tratando de construir una escalera que se ajuste a una línea, que se verá más o menos así:

ingrese la descripción de la imagen aquí

Como puede ver, esto no se generalizará perfectamente a los datos nuevos. Podemos tener círculos por encima de la línea de decisión verdadera que están debajo de nuestro límite de decisión y viceversa para cruces.

Sin embargo, si agregamos a+dcomo una característica, el problema se vuelve trivial para un árbol de decisión. Puede ignorar al individuo ay las dcaracterísticas y resolver el problema con un solo a+d<0tocón de decisión.

ingrese la descripción de la imagen aquí

un+re

En resumen, ciertas características adicionales pueden ayudar dependiendo del tipo de modelo que esté utilizando, y debe tener cuidado de considerar tanto los datos como el modelo al diseñar las características.

Imran
fuente
1
Este es exactamente el punto. La elección de las características y la elección del modelo deben considerarse juntas. Es un error común intentar razonar sobre la selección de características sin considerar el tipo de modelo que se está utilizando.
Imran
1
Por ejemplo, si intentaste lo mismo con regresión lineal, entonces ay dsería suficiente, y agregar a+dcomo una característica no marcaría la diferencia.
Imran
He actualizado mi respuesta para hacer esto más explícito.
Imran
1
Además, dividir a través de la línea diagonal requiere una división. La escalera que dibujaste "agota" siete divisiones.
Acumulación
3

totaltotalattackdefenseattackdefensetotalattacktotaldefense17 7

Además, ¿no es un problema, para clasificadores como kNN, que "total" siempre será mayor que "ataque" o "defensa"? Por lo tanto, incluso después de la estandarización, ¿tendremos características que contengan valores de diferentes rangos?

Si desea estandarizar sus predictores, debe hacerlo después de que todos hayan sido construidos.

Kodiólogo
fuente
1
¿Es esto realmente cierto? Ciertamente, en un modelo lineal simple, no lo es: la matriz [attack, defense, total]es, por supuesto, el rango 2. Me imagino que en algo así como un modelo lineal penalizado podría marcar la diferencia, pero eso se basa en la intuición en lugar de trabajar por completo. ¿Puede explicar por qué si attacky defenseno están fuertemente correlacionados con total(lo que sucede cuando attacky defenseestán fuertemente correlacionados negativamente), ¿por qué totalpuede ser útil?
Cliff AB
1
@CliffAB En retrospectiva, estaba un poco simplista aquí. Tenía razón al decir que una característica construida puede ser útil cuando no está fuertemente correlacionada con otros predictores, y que totalno necesita estar fuertemente correlacionada con attacko defense, pero nunca usaría dos predictores y su suma en el mismo modelo, debido a la linealidad dependencia, con implica una fuerte correlación entre unos dos de los tres.
Kodiólogo
1

Para dar una respuesta general, la ingeniería de características en la mayoría de los casos consiste en extraer características significativas de sus datos, por lo que si proporciona más información a su modelo, obviamente debería funcionar mejor. Supongamos que sus datos consisten en direcciones de correo electrónico en forma '[email protected]ódigo país'. Si los usó tal cual en su modelo, cada persona se caracterizaría por un correo electrónico único, por lo que esto no nos dirá mucho. Solo nos diría que un correo electrónico posiblemente pertenece a otra persona y luego a otro. Con la ingeniería de características, de tales direcciones puede extraer información sobre el posible género (nombre), antecedentes familiares y étnicos (apellido), nacionalidad (dominio) y muchos más: le brinda mucha información, ¿no?

Tim
fuente
1

¿Qué estás tratando de lograr con tu total de "características" ? Si solo estás comparando héroes, el ataque y la defensa pueden ser más útiles. Si encontraras útil el tipo de construcción (cuán orientado ofensivamente versus cuán orientado defensivamente), quizás ataque / defensa sería más útil. O tal vez MyAttack : YourDefense es más útil.

Realmente depende de su objetivo y se reduce a la inyección de conocimientos adicionales en el problema para que pueda obtener mejores respuestas. Es posible que haya escuchado a la gente lanzando alrededor de log y al cuadrado y la relación y todo tipo de formas en que podría hacer que las características, pero la conclusión es que "útil" depende de la tarea en cuestión y consiste en la transformación de los datos que tiene en un dominio donde las decisiones son más simple

Wayne
fuente