¿Cómo calcular los pesos del criterio de Fisher?

12

Estoy estudiando reconocimiento de patrones y aprendizaje automático, y me encontré con la siguiente pregunta.

Considere un problema de clasificación de dos clases con igual probabilidad de clase previa

P(D1)=P(D2)=12

y la distribución de instancias en cada clase dada por

p(x|D1)=N([00],[2001]),

p(x|D2)=N([44],[1001]).

¿Cómo calcular los pesos del criterio de Fisher?

Actualización 2: El peso calculado proporcionado por mi libro es: W=[4329] .

Actualización 3: Según lo insinuado por @xeon, entiendo que debo determinar la línea de proyección para el discriminante de Fisher.

Actualización 4: Sea W la dirección de la línea de proyección, entonces el método discriminante lineal de Fisher determina que la mejor W es aquella para la cual se maximiza la función de criterio. El desafío restante es ¿cómo podemos obtener numéricamente el vector W ?

Dr. Hoshang
fuente
Su primera distribución no está definida. En particular, la segunda variante del par tiene una distribución degenerada con 0 varianza, pero tiene una covarianza positiva con la primera variante, lo cual es imposible.
owensmartin 01 de
@owensmartin ¿Tienes alguna idea de cómo se calculan estos valores?
Dr. Hoshang
¿Cuál es la definición del peso del criterio de Fisher?
Vladislavs Dovgalecs
Quiero decir que el discriminante lineal de Fisher viene dado por el vector w que maximiza ... se observa en todos los materiales, como luthuli.cs.uiuc.edu/~daf/courses/Learning/Kernelpapers/… en la p. 2. ¿Es okey @xeon?
Dr. Hoshang
Sugerencia: ¿Cuál será el límite entre las dos clases? Lineal, polinomial, ¿algo más?
Vladislavs Dovgalecs

Respuestas:

11

Siguiendo el documento al que se vinculó (Mika et al., 1999) , tenemos que encontrar el que maximiza el llamado cociente de Rayleigh generalizado ,w

wSBwwSWw,

donde para significa y covarianzas ,C 1 , C 2m1,m2C1,C2

SB=(m1m2)(m1m2),SW=C1+C2.

La solución se puede encontrar resolviendo el problema de valor propio generalizado calculando primero los valores propios resolviendo y luego resolviendo para el vector propio . En su caso, El determinante de esta matriz de 2x2 se puede calcular a mano.λdet( S B -λ S W )=0

SBw=λSWw,
λ
det(SBλSW)=0
S B - λ S W = ( 16 - 3 λ 16 16 16 - 2 λ ) .w
SBλSW=(163λ1616162λ).

El vector propio con el valor propio más grande maximiza el cociente de Rayleigh. En lugar de hacer los cálculos a mano, resolví el problema del valor propio generalizado en Python usando scipy.linalg.eigy obtuve que es diferente de la solución que encontró en su libro. A continuación, tracé el hiperplano óptimo del vector de peso que encontré (negro) y el plano inferior del vector de peso que se encuentra en su libro (rojo).

w10.5547,w20.8321,

ingrese la descripción de la imagen aquí

Lucas
fuente
1
Este ejemplo es muy interesante. Las dos líneas separan las dos clases, pero una de ellas es "mejor" desde el punto de vista de la teoría del aprendizaje.
Vladislavs Dovgalecs
2
Fisher Criterion se detalla en la sección 5-2-3 en books.google.com/…
nini
1
@Lucas tal vez el resultado en cuestión esté cerca de los comentarios de xeon, "Quizás deberíamos informar el vector unitario w ya que el hiperplano se define por dirección, no por magnitud", ¿no?
nini
1
Oh !!! pregunta desafiante, recomiendo que todos vean la página 2 en dml.ir/wp-content/uploads/2012/04/SPR-S12-M-Sol.pdf
user153695
1
@Lucas Gracias. ¿podría agregar otra imagen para W = [- 2/3 -2/3] y W = [- 4/3 -2/3] y W = [- 2 -3] con tres colores diferentes para ver el límite? Gracias. Te recompensé por una buena respuesta.
nini
7

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=(m1m2)(m1m2)TSW=S1+S2S1,S2m1,m2

La solución de este cociente de Raleigh generalizado es un probem de valor propio generalizado.

SBw=λSWwSW1SBw=λ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 2SBm1m2wSW1(m1m2)

Acabo de calcular la y obtuve [0.5547; 0.8321].w

SW1(m1m2)=(S1+S2)1(m1m2)=([2001]+[1001])1([00][44])=([1/3001/2])([00][44])=[1.33332.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}i=1n

determinant(SBλSW)=[163λ1616162λ]=6λ280λ , entonces los valores propios son raíces al polinomio .6λ280λ

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[163λ1616162λ]wi[72484832]wi=0

La solución al sistema de ecuaciones anterior es que es igual que la solución anterior.[0.55470.8321][0.55470.8321]

Alternativamente, podemos decir que encuentra en el espacio nulo de .[ - 72 48 48 - 32 ][0.55470.8321][72484832]

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

dksahuji
fuente
1
Buena respuesta, ¡significa que la respuesta del libro es incorrecta! ¿Bueno?
Dr. Hoshang
Creo que esta respuesta es correcta y si su libro define y diferente, vea lo que obtiene con esas definiciones. S BSWSB
dksahuji
2
-1.33 es igual a -4/3 pero el segundo elemento es diferente. Tal vez el libro informe unidad vector w? No esta bien? Muchas gracias
Dr. Hoshang
2
complete la solución 2 para alcanzar el valor de W para recompensarlo
nini
1
@ Dr.Hoshang: La solución en su libro es incorrecta. No tengo ni idea de porqué.
ameba dice Reinstate Monica