El ejemplo más simple utilizado para ilustrar esto, es el problema XOR (ver imagen a continuación). Imagine que se le dan datos que contienen coordenadas e coordinados y la clase binaria para predecir. Podría esperar que su algoritmo de aprendizaje automático descubra el límite de decisión correcto por sí mismo, pero si generó la característica adicional , entonces el problema se vuelve trivial ya que le da un criterio de decisión casi perfecto para la clasificación y usted usó aritmética simple !y z = x y z > 0Xyz= x yz> 0
Entonces, si bien en muchos casos puede esperar que el algoritmo encuentre la solución, alternativamente, mediante la ingeniería de características, podría simplificar el problema. Los problemas simples son más fáciles y rápidos de resolver, y necesitan algoritmos menos complicados. Los algoritmos simples a menudo son más robustos, los resultados son a menudo más interpretables, son más escalables (menos recursos computacionales, tiempo de entrenamiento, etc.) y portátiles. Puede encontrar más ejemplos y explicaciones en la maravillosa charla de Vincent D. Warmerdam, dada en la conferencia PyData en Londres .
Además, no creas todo lo que te dicen los vendedores de aprendizaje automático. En la mayoría de los casos, los algoritmos no "aprenderán solos". Por lo general, tiene un tiempo, recursos, potencia computacional limitados y los datos generalmente tienen un tamaño limitado y son ruidosos, nada de esto ayuda.
Llevando esto al extremo, podría proporcionar sus datos como fotos de notas escritas a mano del resultado del experimento y pasarlas a una red neuronal complicada. Primero aprendería a reconocer los datos en las imágenes, luego aprendería a comprenderlos y a hacer predicciones. Para hacerlo, necesitaría una computadora poderosa y mucho tiempo para entrenar y ajustar el modelo y necesitaría grandes cantidades de datos debido al uso de redes neuronales complicadas. Proporcionar los datos en formato legible por computadora (como tablas de números) simplifica enormemente el problema, ya que no necesita todo el reconocimiento de caracteres. Puede pensar en la ingeniería de características como el siguiente paso, donde transforma los datos de tal manera para crear significativoscaracterísticas, por lo que su algoritmo tiene aún menos que resolver por sí mismo. Para dar una analogía, es como si quisieras leer un libro en un idioma extranjero, por lo que primero necesitas aprender el idioma, en lugar de leerlo traducido en el idioma que entiendes.
En el ejemplo de datos del Titanic, su algoritmo necesitaría descubrir que sumar miembros de la familia tiene sentido, para obtener la función "tamaño de la familia" (sí, la estoy personalizando aquí). Esta es una característica obvia para un humano, pero no es obvio si ve los datos como solo algunas columnas de los números. Si no sabe qué columnas son significativas cuando se consideran junto con otras columnas, el algoritmo podría resolverlo probando cada combinación posible de dichas columnas. Claro, tenemos formas inteligentes de hacer esto, pero aún así, es mucho más fácil si la información se proporciona al algoritmo de inmediato.