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?
fuente
Respuestas:
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 ):
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.
fuente
El tipo de modelo que estamos utilizando podría no ser muy eficiente para aprender ciertas combinaciones de características existentes.
a
d
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í:
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+d
como una característica, el problema se vuelve trivial para un árbol de decisión. Puede ignorar al individuoa
y lasd
características y resolver el problema con un soloa+d<0
tocón de decisión.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.
fuente
a
yd
sería suficiente, y agregara+d
como una característica no marcaría la diferencia.total
total
attack
defense
attack
defense
total
attack
total
defense
Si desea estandarizar sus predictores, debe hacerlo después de que todos hayan sido construidos.
fuente
[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é siattack
ydefense
no están fuertemente correlacionados contotal
(lo que sucede cuandoattack
ydefense
están fuertemente correlacionados negativamente), ¿por quétotal
puede ser útil?total
no necesita estar fuertemente correlacionada conattack
odefense
, 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.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?
fuente
¿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
fuente