1. 程式人生 > >Fisher線性判別分析

Fisher線性判別分析

本文參考《模式識別》 張學工
以二分類介紹
fisher線性判別:把所有樣本都投影到一個方向,然後在這個一維空間中確定一個分類閾值,而fisher要找的就是這個投影方向。
衡量投影方向的標準:選擇投影方向,使投影后兩類相鄰儘可能遠,同時每一類內部的樣本又儘可能近。
演算法推導
訓練樣本為{x1,x2,...,xN}每一個樣本是一個d維向量,即xiRd,其中第一類的樣本樣本為{x11,x12,...,x1N1},第二類樣本為{x21,x22,...,x2N2}。我們要尋找一個投影方向ω使投影后的樣本為

yi=ωTxi
在原來的樣本空間中,類別均值為mi=1Nixjx(i)xj式中i = 1,2表示兩個類別,x(i)表示第i類的集合。定義各類內離散度矩陣為
S
i
=xjx(i)(ximi)(xjmi)T

總的類內離散度矩陣為Sw=S1+S2,類間複雜度矩陣定義為:
Sb=(m1m2)(m1m2)T
投影以後的一維空間裡,兩類的均值中將xiyi替換,得到
mi=wTmi
而類內複雜度此時是一個值
S2i=yiy(i)(yimi)2
類內總複雜度為Sw=S1+S2,而類間複雜度就變成了兩類均值差的平方Sb=(m1m2)2
為了讓類內儘可能聚集,而類間儘可能離散,將這一目標表述為如下Fisher準則函式
maxJF(w)=SbSw
其中Sb=(m1m2)2=(wTm