Dalam R
, saya menggunakan lda
fungsi dari perpustakaan MASS
untuk melakukan klasifikasi. Seperti yang saya mengerti LDA, input akan diberi label , yang memaksimalkan , kan?
Tapi ketika saya cocok dengan model, di mana 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.
Ini dapat digunakan untuk melakukan klasifikasi, dan ketika ini tujuannya, saya dapat menggunakan pendekatan Bayes, yaitu, menghitung posterior ( y | x ) untuk setiap kelas , dan kemudian mengklasifikasikan ke kelas dengan yang tertinggi belakang. Dengan pendekatan ini, saya tidak perlu menemukan diskriminasi sama sekali, kan?
Seperti yang saya baca di posting, DA atau setidaknya LDA terutama ditujukan untuk pengurangan dimensionalitas , untuk kelas dan ruang prediktor dim, saya dapat memproyeksikan -dim ke dalam ruang fitur baru -dim , itu adalah,
,dapat dilihat sebagai vektor fitur yang ditransformasi dariasli, dan setiapadalah vektor di mana diproyeksikan .
Apakah saya benar tentang pernyataan di atas? Jika ya, saya punya pertanyaan berikut:
Apa itu diskriminan ? Apakah setiap entri dalam vektor adalah diskriminan? Atau ?
Bagaimana cara klasifikasi menggunakan diskriminan?
sumber
discriminant analysis
di situs ini.Jawaban:
Jika Anda mengalikan setiap nilai- 0,6420190 × + - 0,5135293 ×
LDA1
(diskriminan linier pertama) dengan elemen yang sesuai dari variabel prediktor dan menjumlahkannya (Lag1
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.
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 MASSdiscriminant
mengacu pada koefisien.Fungsi paket MASS
lda
menghasilkan 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 dariMASS
fungsi tetapi menghasilkan koefisien yang lebih nyaman ini (paketnya disebutDisplayr/flipMultivariates
, dan jika Anda membuat objek menggunakanLDA
Anda dapat mengekstrak koefisien menggunakanobj$original$discriminant.functions
).Saya telah memposting R untuk kode semua konsep dalam posting ini di sini .
library(MASS) getAnywhere("predict.lda")
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.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.
sumber