¿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=[−43−29] .

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 ?


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

w⊤SBww⊤SWw,

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

SB=(m1−m2)(m1−m2)⊤,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=(16−3λ161616−2λ).

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).

w1≈0.5547,w2≈0.8321,

ingrese la descripción de la imagen aquí


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=(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}i=1n

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


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.