Combinaciones de atributos: Codificación de no linealidad

En las Figuras 1 y 2, imagina lo siguiente:

  • Los puntos azules representan árboles enfermos.
  • Los puntos anaranjados representan árboles sanos.

Los puntos azules ocupan el cuadrante noreste; los puntos anaranjados ocupan el cuadrante suroeste.

Figura 1. ¿Este es un problema lineal?

¿Puedes trazar una línea que separe eficientemente los árboles enfermos de los sanos? Por supuesto. Este es un problema lineal. La línea no será perfecta. Es posible que uno o dos árboles enfermos se encuentren del lado "sano", pero la línea será un buen predictor.

Ahora observa la siguiente figura:

Los puntos azules ocupan los cuadrantes noreste y suroeste; los puntos anaranjados ocupan los cuadrantes noroeste y sureste.

Figura 2. ¿Este es un problema lineal?

¿Puedes trazar una sola línea recta que separe los árboles enfermos de los árboles sanos? No, no puedes. Este es un problema no lineal. Cualquier línea que dibujes será un predictor deficiente del estado de los árboles.

El mismo dibujo que la Figura 2, excepto que una línea horizontal divide el plano.Los puntos azules y anaranjados están por encima de la línea; los puntos azules y anaranjados están por debajo de la línea.

Figura 3. Una sola línea no puede separar las dos clases.

 

Para resolver el problema no lineal que se muestra en la Figura 2, crea una combinación de atributos. Una combinación de atributos es un atributo sintético que codifica la no linealidad en el espacio de los atributos al multiplicar dos o más atributos de entrada en conjunto. (El término combinación proviene de combinación lineal). Creemos una combinación de atributos denominada \(x_3\) al combinar \(x_1\) y \(x_2\):

$$x_3 = x_1x_2$$

Esta combinación de atributos \(x_3\) generada recientemente se tratará como cualquier otro atributo. La fórmula lineal pasa a ser la siguiente:

$$y = b + w_1x_1 + w_2x_2 + w_3x_3$$

Un algoritmo lineal puede aprender una ponderación para \(w_3\) como lo haría para \(w_1\) y \(w_2\). En otras palabras, aunque \(w_3\) codifique información no lineal, no necesitas cambiar la manera en la que el modelo lineal se entrena para determinar el valor de \(w_3\).

Tipos de combinaciones de atributos

Es posible crear muchos tipos de combinaciones de atributos diferentes. Por ejemplo:

  • [A X B]: Una combinación de atributos formada al multiplicar los valores de dos atributos.
  • [A x B x C x D x E]: Una combinación de atributos formada al multiplicar los valores de cinco atributos.
  • [A x A]: Una combinación de atributos formada al elevar al cuadrado un solo atributo.

Gracias al descenso de gradiente estocástico, los modelos lineales se pueden entrenar de manera eficaz. En consecuencia, la complementación de los modelos lineales ajustados con combinaciones de atributos tradicionalmente ha sido una forma eficaz de entrenar conjuntos de datos de escala masiva.