Bagaimana cara menghitung bobot kriteria Fisher?

12

Saya mempelajari pengenalan pola dan pembelajaran mesin, dan saya mengalami pertanyaan berikut.

Pertimbangkan masalah klasifikasi dua kelas dengan probabilitas kelas sebelumnya yang sama

P(D1)=P(D2)=12

dan distribusi instance di setiap kelas yang diberikan oleh

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

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

Bagaimana cara menghitung bobot kriteria Fisher?

Pembaruan 2: Berat terhitung yang disediakan oleh buku saya adalah: .W=[4329]

Pembaruan 3: Seperti yang ditunjukkan oleh @xeon, saya mengerti bahwa saya harus menentukan garis proyeksi untuk diskriminan Fisher.

Pembaruan 4: Misalkan menjadi arah garis proyeksi, maka metode diskriminan linier Fisher menemukan bahwa terbaik adalah yang di mana fungsi kriteria dimaksimalkan. Tantangan yang tersisa adalah bagaimana kita bisa mendapatkan vektor numerik ?W WWWW

Hoshang
sumber
Distribusi pertama Anda tidak ditentukan. Secara khusus varian kedua dari pasangan memiliki distribusi yang merosot dengan 0 varian, tetapi memang memiliki kovarians positif dengan varian pertama, yang tidak mungkin.
owensmartin
@owensmartin apakah Anda tahu, bagaimana nilai ini dihitung?
Dr. Hoshang
Apa definisi dari bobot kriteria Fisher?
Vladislavs Dovgalecs
Maksud saya pembeda linear Fisher diberikan oleh vektor w yang memaksimalkan ... itu dicatat pada setiap materi seperti sebagai luthuli.cs.uiuc.edu/~daf/courses/Learning/Kernelpapers/… di hlm. 2. apakah itu oke?
Dr. Hoshang
Petunjuk: Apa yang akan menjadi batas antara dua kelas? Linear, polinomial, sesuatu yang lain?
Vladislavs Dovgalecs

Jawaban:

11

Mengikuti makalah yang Anda tautkan (Mika et al., 1999) , kita harus menemukan yang memaksimalkan apa yang disebut generient Rayleigh quotient ,w

wSBwwSWw,

di mana untuk berarti dan covariances ,C 1 , C 2m1,m2C1,C2

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

Solusinya dapat ditemukan dengan memecahkan masalah nilai eigen umum dengan komputasi pertama nilai eigen dengan menyelesaikan dan kemudian menyelesaikan untuk vektor eigen . Dalam kasus Anda, The penentu matriks 2x2 ini dapat dihitung dengan tangan.λdet( S B -λ S W )=0wSB-λSW=(

SBw=λSWw,
λ
det(SBλSW)=0
w
SBλSW=(163λ1616162λ).

Vektor eigen dengan nilai eigen terbesar memaksimalkan hasil Rayleigh. Alih-alih melakukan perhitungan dengan tangan, saya memecahkan masalah nilai eigen umum dengan menggunakan Python scipy.linalg.eigdan mendapatkan yang berbeda dari solusi yang Anda temukan di buku Anda. Di bawah ini saya merencanakan hyperplane optimal dari vektor bobot yang saya temukan (hitam) dan pesawat terbang vektor bobot yang ditemukan di buku Anda (merah).

w10.5547,w20.8321,

masukkan deskripsi gambar di sini

Lucas
sumber
1
Contoh ini sangat menarik. Kedua garis memisahkan dua kelas tetapi salah satunya adalah "lebih baik" dari sudut pandang teori belajar.
Vladislavs Dovgalecs
2
Kriteria Fisher dirinci pada bagian 5-2-3 di books.google.com/...
nini
1
@Lucas mungkin hasil yang dimaksud dekat dengan komentar xeon, "Mungkin kita harus melaporkan satuan vektor karena hyperplane ditentukan oleh arah, bukan besarnya."
nini
1
Oh !!! pertanyaan yang menantang, saya sarankan semua untuk melihat halaman 2 di dml.ir/wp-content/uploads/2012/04/SPR-S12-M-Sol.pdf
user153695
1
@Lucas Terima kasih. tolong tambahkan gambar lain untuk W = [- 2/3 -2/3] dan W = [- 4/3 -2/3] dan W = [- 2 -3] dengan tiga warna berbeda untuk melihat batasnya? Terima kasih. Saya menetapkan karunia untuk Anda untuk jawaban yang bagus.
nini
7

SOLUTION1:

Mengikuti Duda et al. (Pattern CLassification) yang memiliki solusi alternatif untuk @lucas dan dalam hal ini memberikan solusi komputasi yang sangat mudah dengan tangan. (Semoga solusi alternatif ini membantu !! :))

Dalam dua kelas LDA tujuannya adalah:

wTSBwwTSWw yang hanya berarti bahwa meningkatkan varians antara kelas dan mengurangi varians dalam kelas.

di mana dan , di sini adalah matriks kovarians dan masing-masing adalah sarana kelas 1 dan 2.SB=(m1m2)(m1m2)TSW=S1+S2S1,S2m1,m2

Solusi rient quotient umum ini adalah masalah nilai eigen umum.

SBw=λSWwSW1SBw=λw

Formulasi di atas memiliki solusi bentuk tertutup. adalah matriks peringkat 1 dengan basis jadi yang dapat normlizd untuk mendapatkan jawabannya.SBm1m2wSW1(m1m2)

Saya baru saja menghitung dan mendapat [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: Klasifikasi Pola oleh Duda, Hart, Stork

SOLUTION2:

Atau, itu bisa diselesaikan dengan menemukan vektor eigen untuk masalah nilai eigen umum. SBw=λSWw

Polinomial dalam lambda dapat dibentuk oleh dan solusi untuk polinomial tersebut akan menjadi nilai eigen untuk . Sekarang katakanlah Anda mendapat satu set nilai eigen sebagai akar dari polinomial. Sekarang gantikan dan dapatkan vektor eigen terkait sebagai solusi untuk sistem persamaan linear . Dengan melakukan ini untuk setiap i Anda dapat memperoleh satu set vektor dan itu adalah satu set vektor eigen sebagai solusi.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λ , Jadi nilai eigen adalah akar ke polinomial .6λ280λ

Jadi 0 dan 40/3 adalah dua solusi. Untuk LDA, vektor eigen yang sesuai dengan nilai eigen tertinggi adalah solusinya.λ=

Solusi untuk sistem persamaan dan(SBλiSW)wi=0λi=40/3

yang ternyata[163λ1616162λ]wi[72484832]wi=0

Solusi untuk sistem persamaan di atas adalah yang sama dengan solusi sebelumnya.[0.55470.8321][0.55470.8321]

Atau, kita dapat mengatakan bahwa terletak pada ruang nol dari .[ - 72 48 48 - 32 ][0.55470.8321][72484832]

Untuk LDA dua kelas, vektor eigen dengan nilai eigen tertinggi adalah solusinya. Secara umum, untuk LDA kelas C, vektor eigen C - 1 pertama hingga nilai eigen C - 1 tertinggi merupakan solusi.

Video ini menjelaskan cara menghitung vektor eigen untuk masalah nilai eigen sederhana. ( https://www.khanacademy.org/math/linear-algebra/alternate_bases/eigen_everything/v/linear-algebra-finding-eigenvectors-and-eigenspaces-example )

Berikut ini adalah contohnya. http://www.sosmath.com/matrix/eigen2/eigen2.html

LDA multi-kelas: http://en.wikipedia.org/wiki/Linear_discriminant_analysis#Multiclass_LDA

Menghitung Null Space dari sebuah matriks: 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
sumber
1
Jawaban yang bagus, Anda berarti jawaban buku salah !! Oke?
Dr. Hoshang
Saya percaya bahwa jawaban ini benar dan jika buku Anda mendefinisikan dan berbeda maka lihat apa yang Anda dapatkan dengan definisi tersebut. S BSWSB
dksahuji
2
-1.33 sama dengan -4/3 tetapi elemen kedua berbeda. Mungkin buku unit laporan vektor w? Tidak benar Terima kasih banyak
Dr. Hoshang
2
tolong lengkapi solusi 2 untuk mencapai nilai W untuk menghadiahkannya
nini
1
@ Dr.Hoshang: Solusi dalam buku Anda salah. Saya tidak tahu kenapa.
Amuba mengatakan Reinstate Monica