Apa itu "koefisien diskriminan linier" dalam LDA?

16

Dalam R, saya menggunakan ldafungsi dari perpustakaan MASSuntuk melakukan klasifikasi. Seperti yang saya mengerti LDA, input x akan diberi label y , yang memaksimalkan p(y|x) , kan?

Tapi ketika saya cocok dengan model, di mana

x=(Lag1,Lag2)
y=Direction,
saya tidak begitu mengerti output dari lda,

Edit: untuk mereproduksi output di bawah ini, jalankan pertama:

library(MASS)
library(ISLR)

train = subset(Smarket, Year < 2005)

lda.fit = lda(Direction ~ Lag1 + Lag2, data = train)
> lda.fit
Call:
lda(Direction ~ Lag1 + Lag2, data = train)

Prior probabilities of groups:
    Down       Up 
0.491984 0.508016 

Group means:
            Lag1        Lag2
Down  0.04279022  0.03389409
Up   -0.03954635 -0.03132544

Coefficients of linear discriminants:
            LD1
Lag1 -0.6420190
Lag2 -0.5135293

Saya mengerti semua info di output di atas tetapi satu hal, apa LD1 ? Saya mencari web untuk itu, apakah itu skor diskriminan linier ? Apa itu dan mengapa saya membutuhkannya?

MEMPERBARUI

Saya membaca beberapa posting (seperti ini dan ini ) dan juga mencari DA di web, dan sekarang inilah yang saya pikirkan tentang DA atau LDA.

  1. Ini dapat digunakan untuk melakukan klasifikasi, dan ketika ini tujuannya, saya dapat menggunakan pendekatan Bayes, yaitu, menghitung p(y|x) posterior ( y | x ) untuk setiap kelas yi , dan kemudian mengklasifikasikan x ke kelas dengan yang tertinggi belakang. Dengan pendekatan ini, saya tidak perlu menemukan diskriminasi sama sekali, kan?

  2. Seperti yang saya baca di posting, DA atau setidaknya LDA terutama ditujukan untuk pengurangan dimensionalitas , untuk kelas K dan ruang prediktor D dim, saya dapat memproyeksikan D -dim x ke dalam ruang fitur baru (K1) -dim z , itu adalah,

    x=(x1,...,xD)z=(z1,...,zK1)zi=wiTx
    ,zdapat dilihat sebagai vektor fitur yang ditransformasi darixasli, dan setiapwiadalah vektor di manax diproyeksikan .

Apakah saya benar tentang pernyataan di atas? Jika ya, saya punya pertanyaan berikut:

  1. Apa itu diskriminan ? Apakah setiap entri zi dalam vektor z adalah diskriminan? Atau wi ?

  2. Bagaimana cara klasifikasi menggunakan diskriminan?

alpukat
sumber
1
LDA memiliki 2 tahap berbeda: ekstraksi dan klasifikasi. Pada ekstraksi, variabel laten yang disebut diskriminan terbentuk, sebagai kombinasi linear dari variabel input. Koefisien dalam kombinasi linear disebut koefisien diskriminan; ini adalah apa yang Anda tanyakan. Pada tahap ke-2, titik data ditugaskan ke kelas oleh orang-orang diskriminan, bukan oleh variabel asli. Untuk membaca lebih lanjut, cari discriminant analysisdi situs ini.
ttnphns
2
Skor diskriminan linier adalah nilai titik data oleh seorang diskriminan, jadi jangan bingung dengan koefisien diskriminan, yang seperti koefisien penyesalan. Lihat jawaban terperinci saya di sini .
ttnphns
@ttnphns, terima kasih dan saya akan membaca lebih lanjut tentang DA. BTW, saya pikir itu untuk mengklasifikasikan inputX, Saya hanya perlu menghitung posterior hal(y|x)untuk semua kelas dan kemudian pilih kelas dengan posterior tertinggi, bukan? Dan saya tidak mengerti mengapa saya perluL.D1dalam perhitungan posterior.
alpukat
Anda dapat dan dapat melakukan klasifikasi aturan Bayes berdasarkan pada variabel asli. Tapi ini bukan analisis diskriminan. Bagian penting dari LDA adalah pengurangan dimensionalitas, yang memungkinkan Anda untuk mengganti pengklasifikasi variabel asli dengan sejumlah kecil pengklasifikasi turunan, diskriminan. Silakan baca tulisan di sini, terutama tulisan saya, mereka menguraikan ide dan matematika LDA secara keseluruhan.
ttnphns
@ttnphns, saya membaca posting yang Anda tautkan di komentar di atas, ;-)
alpukat

Jawaban:

5

Jika Anda mengalikan setiap nilai LDA1(diskriminan linier pertama) dengan elemen yang sesuai dari variabel prediktor dan menjumlahkannya (-0.6420190×Lag1+-0,5135293×Lag2) Anda mendapatkan skor untuk setiap responden. Skor ini di sepanjang sebelumnya digunakan untuk menghitung probabilitas posterior keanggotaan kelas (ada sejumlah formula yang berbeda untuk ini). Klasifikasi dibuat berdasarkan probabilitas posterior, dengan pengamatan diprediksi berada di kelas yang memiliki probabilitas tertinggi.

Bagan di bawah ini menggambarkan hubungan antara skor, probabilitas posterior, dan klasifikasi, untuk set data yang digunakan dalam pertanyaan. Pola dasar selalu berlaku dengan dua kelompok LDA: ada pemetaan 1-ke-1 antara skor dan probabilitas posterior, dan prediksi setara ketika dibuat baik dari probabilitas posterior atau skor.

Score, Posterior Probability, Classification

Jawaban untuk sub-pertanyaan dan beberapa komentar lainnya

  • Meskipun LDA dapat digunakan untuk pengurangan dimensi, ini bukan yang terjadi dalam contoh. Dengan dua kelompok, alasan hanya satu skor yang diperlukan per pengamatan adalah bahwa hanya inilah yang diperlukan. Ini karena probabilitas berada dalam satu kelompok adalah pelengkap dari probabilitas berada di kelompok lain (yaitu, mereka menambah 1). Anda dapat melihat hal ini dalam grafik: skor kurang dari -.4 diklasifikasikan sebagai berada di bawah kelompok dan skor yang lebih tinggi diperkirakan akan Up .

  • Terkadang vektor skor disebut a discriminant function. Terkadang koefisien disebut ini. Saya tidak jelas apakah keduanya benar. Saya percaya bahwa MASS discriminantmengacu pada koefisien.

  • Fungsi paket MASS ldamenghasilkan koefisien dengan cara yang berbeda dengan kebanyakan perangkat lunak LDA lainnya. Pendekatan alternatif menghitung satu set koefisien untuk setiap kelompok dan setiap set koefisien memiliki intersep. Dengan fungsi diskriminan (skor) dihitung menggunakan koefisien ini, klasifikasi didasarkan pada skor tertinggi dan tidak perlu menghitung probabilitas posterior untuk memprediksi klasifikasi. Saya telah meletakkan beberapa kode LDA di GitHub yang merupakan modifikasi dari MASSfungsi tetapi menghasilkan koefisien yang lebih nyaman ini (paketnya disebut Displayr/flipMultivariates, dan jika Anda membuat objek menggunakan LDAAnda dapat mengekstrak koefisien menggunakan obj$original$discriminant.functions).

  • Saya telah memposting R untuk kode semua konsep dalam posting ini di sini .

  • Tidak ada rumus tunggal untuk menghitung probabilitas posterior dari skor. Cara termudah untuk memahami opsi adalah (bagi saya) untuk melihat kode sumber, menggunakan:

library(MASS) getAnywhere("predict.lda")

Tim
sumber
I'm not clear on whether either [word use] is correct"fungsi diskriminan" alias "diskriminan" adalah varian yang diekstraksi - variabel, dimensi. Oleh karena itu dicirikan oleh koefisien (bobot) untuk menilai dari variabel input, dan dengan skor, nilai-nilai. Persis seperti PC di PCA. Jadi, "koefisien diskriminan" dan "skor diskriminan" adalah penggunaan yang benar.
ttnphns
@ttnphns, penggunaan terminologi Anda sangat jelas dan tidak ambigu. Tapi, bukan penggunaan yang muncul di banyak pos dan publikasi tentang topik, yang merupakan poin yang saya coba buat. Berdasarkan makna kata saja, cukup jelas bagi saya bahwa "fungsi diskriminan" harus mengacu pada fungsi matematika (yaitu, produk dan koefisien), tetapi sekali lagi tidak jelas bagi saya bahwa ini adalah penggunaan yang tersebar luas.
Tim
@Tim tautan yang Anda posting untuk kode sudah mati, bisakah Anda menyalin kode itu ke jawaban Anda?
baxx
0

Teori di balik fungsi ini adalah "Metode Fisher untuk Diskriminasi di antara Beberapa Populasi". Saya merekomendasikan bab 11.6 dalam analisis statistik multivariat terapan (ISBN: 9780134995397) untuk referensi.

Morgan Zhu
sumber