SOLUTION1:
После Дуда и соавт. (Pattern CLassification), который имеет альтернативное решение @lucas и в этом случае дает очень простое решение вручную. (Надеюсь, это альтернативное решение поможет! :))
В двух классах LDA целью является:
wTSBwwTSWw что просто означает, что увеличить дисперсию между классами и уменьшить дисперсию внутри класса.
где и , здесь - ковариационная матрица, а - средства класса 1 и 2 соответственно.SB=(m1−m2)(m1−m2)TSW=S1+S2S1,S2m1,m2
Решение этого обобщенного фактора Рэлея является обобщенной пробой собственного значения.
SBw=λSWw→SW−1SBw=λw
Вышеуказанная композиция имеет раствор в закрытой форме. - матрица ранга 1 с базисом поэтому который может быть normlizd, чтобы получить ответ.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]
В качестве альтернативы мы можем сказать, что лежит в нулевом пространстве .[ - 72 48 48 - 32 ][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