Merencanakan diskriminan sebagai garis di sebar

8

Diberi sebaran data scatterplot, saya dapat memplot komponen utama data di atasnya, seperti sumbu yang diberi titik yang merupakan skor komponen utama. Anda dapat melihat contoh plot dengan cloud (terdiri dari 2 kluster) dan komponen prinsip pertamanya. Ini ditarik dengan mudah: skor komponen mentah dihitung sebagai data-matriks x vektor eigen ; koordinat setiap titik skor pada sumbu asli (V1 atau V2) adalah skor x cos-antara-sumbu-dan-komponen (yang merupakan elemen vektor eigen) .

Komponen utama 1 sesuai dengan nilainya

Pertanyaan saya: Apakah mungkin untuk menarik orang yang diskriminatif dengan cara yang sama? Tolong lihat foto saya. Saya ingin memplot sekarang diskriminan antara dua cluster, sebagai garis ubin dengan skor diskriminan (setelah analisis diskriminan) sebagai poin. Jika ya, apa yang bisa menjadi algo?

ttnphns
sumber

Jawaban:

8

Oke, karena tidak ada yang menjawab saya pikir, setelah beberapa percobaan, saya bisa melakukannya sendiri. Mengikuti pedoman analisis diskriminan, misalkan T menjadi seluruh matriks (data X , dari 2 variabel) sscp cloud (dari penyimpangan dari pusat cloud), dan biarkan W menjadi matriks sscp yang dikumpulkan dalam-kluster (penyimpangan dari pusat cluster). B = TW adalah matriks antara-cluster sscp. Dekomposisi nilai singular dari inv (W) B menghasilkan kami U (kiri vektor eigen), S (matriks diagonal dari eigenvalues), V(vektor eigen kanan). Dalam contoh saya dari 2 cluster hanya nilai eigen pertama adalah nol (yang berarti bahwa hanya ada satu diskriminan), dan jadi kami hanya menggunakan vektor eigen pertama (kolom) dari U : U (1) . Sekarang, XU (1) adalah nilai diskriminan mentah yang dicari . Untuk menunjukkan diskriminan sebagai garis ubin dengan itu, kalikan skor dengan cos-antara-sumbu-dan-diskriminan (yang merupakan elemen vektor eigen U (1) ) - seperti halnya dengan komponen utama di atas . Plot yang dihasilkan di bawah.

masukkan deskripsi gambar di sini

ttnphns
sumber
1
Mungkin lebih mudah untuk menganggap ini sebagai proyeksi :U(1)dalam kedua kasus (PCA atau LDA) adalah vektor satuan ke arah yang Anda inginkan untuk memproyeksikan data Anda (sumbu prinsip pertama, atau "sumbu diskriminan" pertama). Proyektor ortogonal diberikan olehPU=UU. Jadi jawabannya adalahXUU(yang tentu saja persis seperti yang Anda temukan sendiri). Formula yang sama juga berfungsi untuk dimensi yang lebih tinggi.
amoeba
@amoeba, terima kasih atas komentarnya. Rumus umum (untuk setiap dimensi) adalah XV di mana V adalah matriks kolom-dinormalisasi (untuk SS = 1) vektor eigen dari ekstraksi LDA. Ini vektor eigen yang dinormalisasi dari data iris yang saya tampilkan di sini: stats.stackexchange.com/a/83114/3277 ; aljabar LDA ada di sini: stats.stackexchange.com/a/48859/3277 . Sebuah plot di mana saya menggunakan vektor eigen yang dinormalisasi LDA ada di sini: stats.stackexchange.com/a/22889/3277 .
ttnphns
Ya tentu XV adalah koordinat titik data dalam ruang target dengan dimensi lebih rendah, tetapi jika Anda ingin mendapatkan gambar proyeksi di ruang dimensi tinggi asli (yaitu titik hijau pada plot pencar Anda di utas ini), Anda memproyeksikan titik ini kembali dengan V+, jadi pada akhirnya Anda dapatkan XVV+. Saya membuat kesalahan dalam komentar saya sebelumnya: itu berkurang menjadiXVV hanya bila Vmemiliki kolom ortonormal, seperti dalam kasus PCA (tetapi tidak LDA). Tentu saja jika Anda hanya mempertimbangkan 1 sumbu (dan seterusnyaVhanya memiliki 1 kolom), maka itu tidak masalah.
amoeba