SOLUTION1:
Слідом за Дудою та ін. (Шаблон CLassification), який має альтернативне рішення для @lucas, і в цьому випадку дає дуже просто обчислити рішення вручну. (Сподіваюся, що це альтернативне рішення допомагає !! :))
У двох класах LDA мета:
wTSBwwTSWw що просто означає, що збільшується між дисперсією класу та зменшується дисперсія класу.
де і , тут - матриця коваріації і - засоби класів 1 і 2 відповідно.SB=(m1−m2)(m1−m2)TSW=S1+S2S1,S2m1,m2
Рішення цього узагальненого коефіцієнта Релі - узагальнена проблема власного значення.
SBw=λSWw→SW−1SBw=λw
Вищеописаний препарат має розчин закритої форми. - матриця 1-го рангу з базою тому яку можна нормалізувати, щоб отримати відповідь.SBm1−m2w∝SW−1(m1−m2)
Я щойно підрахував і отримав [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]
Посилання: Класифікація візерунків за Дудою, Харт, Лелекою
SOLUTION2:
Альтернативно, це можна вирішити, знайшовши власний вектор до узагальненої задачі про власне значення.
SBw=λSWw
Поліном у лямбда може бути утворений і рішення цього полінома будуть власне значенням для . Тепер скажемо, що ви отримали набір власних значень як корені многочлена. Тепер замінимо і отримаємо відповідний власний вектор як рішення лінійної системи рівнянь . Роблячи це для кожного i, ви можете отримати набір векторів і це набір власних векторів як рішень.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λ , тому значення власних значень корені до многочлена .6λ2−80λ
Тож 0 і 40/3 - це два рішення. Для LDA рішенням є власний вектор, що відповідає найвищому значенню власного значення.λ=
Рішення системи рівнянь і(SB−λiSW)wi=0λi=40/3
який виявляється[16−3λ161616−2λ]wi∝[−724848−32]wi=0
Розв’язанням вищевказаної системи рівняння є що є таким же, як і попереднє рішення.[−0.5547−0.8321]∝[0.55470.8321]
Як варіант, можна сказати, що лежить у нульовому просторі .[0.55470.8321][−724848−32]
Для двох класів LDA рішенням є власний вектор з найвищим значенням власного значення. Взагалі, для LDA класу C перші рішення є власними векторами C - 1 з найвищими значеннями C - 1.
Це відео пояснює, як обчислити власні вектори для простої задачі про власне значення. ( https://www.khanacademy.org/math/linear-algebra/alternate_bases/eigen_everything/v/linear-algebra-finding-eigenvectors-and-eigenspaces-example )
Далі наводимо приклад.
http://www.sosmath.com/matrix/eigen2/eigen2.html
Багатокласний LDA:
http://en.wikipedia.org/wiki/Linear_discriminant_analysis#Multiclass_LDA
Обчислення нульового простору матриці:
https://www.khanacademy.org/math/linear-algebra/vectors_and_spaces/null_column_space/v/null-space-2-calculating-the-null-space-of-a-matrix