SOLUTION1:
Siguiendo a Duda et al. (Pattern CLassification) que tiene una solución alternativa a @lucas y en este caso proporciona una solución muy fácil de calcular a mano. (¡Espero que esta solución alternativa ayude! :))
En dos clases LDA el objetivo es:
wTSBwwTSWw que solo significa que aumenta la varianza entre clases y disminuye la varianza dentro de clases.
donde y , aquí son matrices de covarianza y son medias de clase 1 y 2 respectivamente.S W = S 1 + S 2 S 1 , S 2 m 1 , m 2SB=(m1−m2)(m1−m2)TSW=S1+S2S1,S2m1,m2
La solución de este cociente de Raleigh generalizado es un probem de valor propio generalizado.
SBw=λSWw→SW−1SBw=λw
La formulación anterior tiene una solución de forma cerrada. es una matriz de rango 1 con base por lo que que puede ser normalizada para obtener la respuesta.m 1 - m 2SBm1−m2w∝SW−1(m1−m2)
Acabo de calcular la y obtuve [0.5547; 0.8321].w
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 por Duda, Hart, Stork
SOLUTION2:
Alternativamente, se puede resolver encontrando el vector propio al problema del valor propio generalizado.
SBw=λSWw
Un polinomio en lambda puede formarse por y las soluciones a ese polinomio serán el valor propio para . Ahora supongamos que tiene un conjunto de valores propios como raíces del polinomio. Ahora sustituya y obtenga el vector propio correspondiente como solución al sistema lineal de ecuaciones . Al hacer esto para cada i, puede obtener un conjunto de vectores y es un conjunto de vectores propios como soluciones.determinant(SB−λSW)SBw=λSWwλ1,λ2,...,λn,λ=λi,i∈{1,2,..,n}SBwi=λiSWwi{wi}ni=1
determinant(SB−λSW)=[16−3λ161616−2λ]=6λ2−80λ , entonces los valores propios son raíces al polinomio .6λ2−80λ
Entonces 0 y 40/3 son las dos soluciones. Para LDA, el vector propio correspondiente al valor más alto es la solución.λ=
Solución al sistema de ecuaciones y(SB−λiSW)wi=0λi=40/3
que resulta ser[16−3λ161616−2λ]wi∝[−724848−32]wi=0
La solución al sistema de ecuaciones anterior es que es igual que la solución anterior.[−0.5547−0.8321]∝[0.55470.8321]
Alternativamente, podemos decir que encuentra en el espacio nulo de .[ - 72 48 48 - 32 ][0.55470.8321][−724848−32]
Para dos clases de LDA, el vector propio con el valor propio más alto es la solución. En general, para la clase C LDA, los primeros vectores eigen C - 1 a los valores eigen C - 1 más altos constituyen la solución.
Este video explica cómo calcular los vectores propios para un problema simple de valor propio. ( https://www.khanacademy.org/math/linear-algebra/alternate_bases/eigen_everything/v/linear-algebra-finding-eigenvectors-and-eigenspaces-example )
El siguiente es 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