En la clasificación / reconocimiento de patrones estamos tratando de encontrar f - el límite de decisión entre el tipo de patrón 1 y el tipo de patrón 2 (en el caso binomial).
Vayamos a la primera pregunta: * ¿qué hace que los clasificadores lineales sean ventajosos en comparación con los enfoques estadísticos univariados "clásicos"? * Supongo que por univariado, quieres decir que tienes una variable de resultado.
Los clasificadores lineales son siempre útiles ya que son relativamente rápidos debido a su simplicidad. Toma por ejemplo Perceptrones / Regresión Logística.
Para la regresión logística hay una solución en forma cerrada usando la pseudo inversa / ecuación normal. Ver aquí (betas son los w's que usé aquí): https://en.wikipedia.org/wiki/Linear_least_squares_(mathematics)#The_general_problem Los Perceptrones se suelen usar cuando el aprendizaje se realiza en línea mediante el descenso de gradiente estocástico, que no es una solución en forma cerrada. Dependiendo de tu tarea, uno u otro podría ser más útil.
De cualquier manera, digamos que tienes algunas características. Puedes combinar estas características en un lineal y = f1(x1 * w1 + x2 * w2 ... ) o cualquier combinación no lineal de características que desees y = f2(x1 * x2 * w1 + x1^2 * w2 ... ) etc.
Ahora, lineal significa que tu límite de decisión es una línea. Es bastante improbable que en problemas del mundo real las clases sean separables con una línea recta. Sin embargo, si puedes encontrar una representación correcta (vamos a suponer que f2 arriba es), entonces podrás ajustar una línea recta entre las clases, aunque el espacio de características en el que lo haces es diferente del espacio original. De hecho, en el ejemplo anterior definí manualmente un espacio de características diferente. El modelo sigue siendo lineal ya que sigo ajustando una línea.
Aquí hay una forma visual de explicarlo al encontrar las funciones Y y O exclusivas (AND y XOR).
Este es un perceptrón que puede implementar la función Y (AND).
El modelo general es y1 = X0 * b + X1 * w11 + X2 * w12 donde X0 = 1. (agregas un grado de libertad adicional que siempre es uno, para que tu límite de decisión no esté restringido a moverse solo a través del origen). Luego encuentras b, w11 y w12 y puedes aprender la función Y, que es claramente linealmente separable.
Ahora, digamos que queremos encontrar la función O (XOR). Así es como se ve:
Bueno, en la imagen de arriba no puedes dividir las dos clases con solo una línea. Puedes hacerlo con una elipse o con más de una línea.
Entonces, necesitas encontrar un espacio de características donde este límite de decisión pueda ubicarse. Afortunadamente, los perceptrones de múltiples capas pueden hacer eso. De hecho, esto encuentra el espacio de características donde puedes colocar múltiples límites lineales de esa manera.
Y creo que esto también responde a tu segunda pregunta.
De hecho, las imágenes de la columna derecha (versión 2) son la negación de tus primeras imágenes. Eso es invariable independientemente de la clase. Entonces, eso es una característica, puedes pensarlo como un perceptrón / unidad en la capa oculta. Normalmente no querrías buscar manualmente ejemplos como este en el mundo real y encontrar estas invariantes / reglas, así que usas perceptrones de múltiples capas que hacen esto por ti automáticamente.
EDICIÓN:
Bien, vamos a hacer esto manualmente con tu ejemplo. Necesitas al menos dos bits para poder diferenciar entre los dos patrones. Tomaré la primera fila y la primera característica de la segunda fila. Entonces puedes ver que solo necesitas la última característica de la primera fila y la primera característica de la segunda fila.
P1 - V1: (0101)0 1 | V2 (1010)1 0
P2 - V1: (0101)0 0 | V2 (1010)1 1
Entonces, 01 o 10 codifica el patrón 1 mientras que 00 o 11 codifica el patrón 2. Ahora, estas son características originales de tus datos.
Ahora, veamos la función XOR:
f1 f2 tipo (clase)
0 1 1
1 0 1
0 0 0
1 1 0
Un clasificador lineal no puede aprender la función XOR necesaria para clasificar estos patrones.
Para tu ejemplo, es imposible clasificar los patrones utilizando solo una característica / predictor, ya sea que estés utilizando clasificadores no lineales o lineales.
¿Eso responde tu pregunta?
0 votos
Estrechamente relacionado: stats.stackexchange.com/questions/164048/…
1 votos
Depende de lo que se entienda por "no lineal". Para empezar, podrías introducir características $x_ix_j$ que sean iguales a 1 si, por ejemplo, los voxels $i,j$ están encendidos. Esto ayudaría a distinguir los dos patrones. El modelo sigue siendo lineal si simplemente llamamos a esta nueva característica $y_i:=x_ix_j$ y le asignamos un peso separado. Sin embargo, es no lineal en la forma en que define las características.
0 votos
@AlexR.: Mira mi comentario a continuación: Estoy hablando de lineal en el sentido de lineal en el espacio de características original, y con univariado me refería al uso de solo una característica (/predictor). Entonces, según entiendo, los clasificadores lineales se pueden reducir a clasificaciones usando solo características individuales... eso es lo que me desconcierta