SOLUTION1:
Siguiendo a Duda et al. (Pattern CLassification) que tiene una solución alternativa a la de @lucas y en este caso da una solución muy fácil de calcular a mano. (¡Espero que esta solución alternativa ayude! :))
En el LDA de dos clases el objetivo es:
wTSBwwTSWw que sólo significa que aumenta la varianza entre clases y disminuye la varianza dentro de la clase.
donde SB=(m1−m2)(m1−m2)T y SW=S1+S2 Aquí S1,S2 son la matriz de covarianza y m1,m2 son las medias de las clases 1 y 2 respectivamente.
La solución de este cociente de Raleigh generalizado es un probema de valor propio generalizado.
SBw=λSWw→SW−1SBw=λw
La formulación anterior tiene una solución de forma cerrada. SB es una matriz de rango 1 con base m1−m2 así que w∝SW−1(m1−m2) que puede ser normlizd para obtener la respuesta.
Acabo de calcular el w y obtuvo [0,5547;0,8321].
SW−1(m1−m2)=(S1+S2)−1(m1−m2)=([2001]+[1001])−1([00]−[44])=([1/3001/2])([00]−[44])=[−1.3333−2.0000]∝[0.55470.8321]
Ref: Clasificación de patrones de Duda, Hart, Stork
SOLUTION2:
Alternativamente, puede resolverse encontrando el vector propio del problema de valor propio generalizado. SBw=λSWw
Un polinomio en lambda puede estar formado por determinant(SB−λSW) y las soluciones de ese polinomio serán el valor propio de SBw=λSWw . Ahora digamos que tienes un conjunto de valores propios λ1,λ2,...,λn, como raíces del polinomio. Ahora sustituye λ=λi,i∈{1,2,..,n} y obtener el vector propio correspondiente como solución del sistema lineal de ecuaciones SBwi=λiSWwi . Haciendo esto para cada i se puede obtener un conjunto de vectores {wi}ni=1 y es un conjunto de vectores propios como soluciones.
determinant(SB−λSW)=[16−3λ161616−2λ]=6λ2−80λ Así que los valores propios son raíces del polinomio 6λ2−80λ .
Así que λ= 0 y 40/3 son las dos soluciones. Para el LDA, el vector propio correspondiente al valor propio más alto es la solución.
Solución al sistema de ecuaciones (SB−λiSW)wi=0 y λi=40/3
que resulta ser [16−3λ161616−2λ]wi∝[−724848−32]wi=0
La solución del sistema de ecuaciones anterior es [−0.5547−0.8321]∝[0.55470.8321] que es la misma que la solución anterior.
Alternativamente, podemos decir que [0.55470.8321] se encuentra en el espacio nulo de [−724848−32] .
Para el LDA de dos clases, el vector propio con mayor valor propio es la solución. En general, para el LDA de clase C, los primeros vectores propios C - 1 hasta los valores propios C - 1 más altos constituyen la solución.
Este vídeo explica cómo calcular los vectores propios para un problema simple de valores propios. ( https://www.khanacademy.org/math/linear-algebra/alternate_bases/eigen_everything/v/linear-algebra-finding-eigenvectors-and-eigenspaces-example )
A continuación, un ejemplo. http://www.sosmath.com/matrix/eigen2/eigen2.html
LDA multiclase: http://en.wikipedia.org/wiki/Linear_discriminant_analysis#Multiclass_LDA
Cálculo del espacio nulo de una matriz: https://www.khanacademy.org/math/linear-algebra/vectors_and_spaces/null_column_space/v/null-space-2-calculating-the-null-space-of-a-matrix