Bagaimana Menerapkan Analisis Diskriminan Linear di R?



Artikel ini akan memberi tahu Anda apa itu analisis diskriminan linier dan juga memberi Anda demonstrasi terperinci menggunakan bahasa Pemrograman R.

Analisis Diskriminan Linier adalah teknik Pembelajaran Mesin yang sangat populer yang digunakan untuk memecahkan masalah klasifikasi. Pada artikel ini kita akan mencoba memahami intuisi dan matematika di balik teknik ini. Contoh implementasi LDA di R juga disediakan.

Jadi mari kita mulai





Asumsi Analisis Diskriminan Linier

Analisis Diskriminan Linier didasarkan pada asumsi berikut:

mengapa saya harus belajar sql
  • Variabel terikat Y bersifat diskrit. Pada artikel ini kami akan mengasumsikan bahwa variabel dependen adalah biner dan mengambil nilai kelas {+1, -1} . Probabilitas sampel milik kelas +1 , mis P (Y = +1) = p . Oleh karena itu, probabilitas sampel termasuk dalam kelas -satu aku s 1-hal .



  • Variabel independen X berasal dari distribusi gaussian. Rata-rata dari distribusi gaussian bergantung pada label kelas Y . yaitu jika Y saya = +1 , lalu arti dari X saya aku s & # 120583 +1 , kalau tidak & # 120583 -satu . Varians & # 120590 2 sama untuk kedua kelas. Secara matematis, X | (Y = +1) ~ N (& # 120583 +1 , & # 120590 2 ) dan X | (Y = -1) ~ N (& # 120583 -satu , & # 120590 2 ) , dimana N menunjukkan distribusi normal.

Dengan informasi ini dimungkinkan untuk membangun distribusi bersama P (X, Y) untuk variabel independen dan dependen. Oleh karena itu, LDA termasuk dalam kelas Model Pengklasifikasi Generatif . Pengklasifikasi generatif yang terkait erat adalah Analisis Diskriminan Kuadratik (QDA). Ini didasarkan pada semua asumsi LDA yang sama, kecuali bahwa varian kelasnya berbeda.

Mari kita lanjutkan dengan artikel Analisis Diskriminan Linear dan lihat

Intuisi

Pertimbangkan distribusi gaussian bersyarat kelas untuk X diberikan kelas Y . Gambar di bawah ini menunjukkan fungsi kepadatan distribusi. Dalam gambar ini, jika Y = +1 , lalu arti dari X adalah 10 dan jika Y = -1 , meannya adalah 2. Variansnya adalah 2 dalam kedua kasus.

intuition - Analisis Diskriminasi Linear - Edureka

Sekarang misalkan nilai baru X diberikan kepada kami. Mari kita tunjukkan sebagai x saya . Tugasnya adalah menentukan label kelas yang paling mungkin untuk ini x saya , yaitu Y saya . Untuk kesederhanaan asumsikan bahwa probabilitas p dari sampel milik kelas +1 sama dengan milik kelas -satu , yaitu p = 0,5 .

Secara intuitif, masuk akal untuk mengatakan jika x saya lebih dekat ke & # 120583 +1 daripada itu & # 120583 -satu , maka kemungkinan besar itu Y saya = +1 . Secara lebih formal, Y saya = +1 jika:

| x saya - & # 120583 +1 |<|x saya - & # 120583 -satu |

Normalisasi kedua sisi dengan standar deviasi:

| x saya - & # 120583 +1 | / & # 120590<|x saya - & # 120583 -satu | / & # 120590

Menguadratkan kedua sisi:

(x saya - & # 120583 +1 ) 2 / & # 120590 2 <(x saya - & # 120583 -satu ) 2 / & # 120590 2

x saya 2 / & # 120590 2 + & # 120583 +1 2 / & # 120590 2 - 2 x saya & # 120583 +1 / & # 120590 2 saya 2 / & # 120590 2 + & # 120583 -satu 2 / & # 120590 2 - 2 x saya & # 120583 -satu / & # 120590 2

2 x saya (& # 120583 -satu - & # 120583 +1 ) / & # 120590 2 - (& # 120583 -satu 2 / & # 120590 2 - & # 120583 +1 2 / & # 120590 2 )<0

-2 x saya (& # 120583 -satu - & # 120583 +1 ) / & # 120590 2 + (& # 120583 -satu 2 / & # 120590 2 - & # 120583 +1 2 / & # 120590 2 )> 0

Ekspresi di atas adalah bentuk bx saya + c> 0 dimana b = -2 (& # 120583 -satu - & # 120583 +1 ) / & # 120590 2 dan c = (& # 120583 -satu 2 / & # 120590 2 - & # 120583 +1 2 / & # 120590 2 ) .

Tampak jelas bahwa bentuk persamaannya adalah linier , oleh karena itu dinamakan Analisis Diskriminan Linier.

Mari kita lanjutkan dengan artikel Analisis Diskriminan Linear dan lihat,

Deskripsi Matematis LDA

Turunan matematis dari ekspresi LDA didasarkan pada konsep seperti Aturan Bayes dan Pengklasifikasi Optimal Bayes . Pembaca yang tertarik didorong untuk membaca lebih lanjut tentang konsep ini. Salah satu cara untuk menurunkan ekspresi dapat ditemukan sini .

Kami akan memberikan ekspresi langsung untuk kasus spesifik kami di mana Y mengambil dua kelas {+1, -1} . Kami juga akan memperluas intuisi yang ditunjukkan di bagian sebelumnya ke kasus umum di mana X bisa multidimensi. Katakanlah ada untuk Variabel independen. Dalam hal ini, kelas berarti & # 120583 -satu dan & # 120583 +1 akan menjadi vektor dimensi k * 1 dan matriks varians-kovarians & # 120622 akan menjadi matriks dimensi k * k .

Fungsi pengklasifikasi diberikan sebagai

Y = h (X) = tanda (b T X + c)

function overloading c ++

Dimana,

b = -2 & # 120622 -satu (& # 120583 -satu - & # 120583 +1 )

c = & # 120583 -satu T & # 120622 -satu & # 120583 -satu - & # 120583 -satu T & # 120622 -satu & # 120583 -satu {-2 ln (1-p) / p}

Fungsi tanda kembali +1 jika ekspresi b T x + c> 0 , jika tidak, ia akan kembali -satu . Istilah log alami di c hadir untuk menyesuaikan fakta bahwa probabilitas kelas tidak perlu sama untuk kedua kelas, yaitu. p dapat berupa nilai apa pun antara (0, 1), dan bukan hanya 0,5.

Mempelajari Parameter Model

Diberikan set data dengan N titik data (x satu , Y satu ), (x 2 , Y 2 ),… (X n , Y n ) , kami perlu memperkirakan p, & # 120583 -satu , & # 120583 +1 dan & # 120622 . Sebuah teknik estimasi statistik disebut Estimasi Kemungkinan Maksimum digunakan untuk memperkirakan parameter ini. Ekspresi untuk parameter di atas diberikan di bawah ini.

& # 120583 +1 = (1 / N +1 ) * & # 120506 i: yi = + 1 x saya

& # 120583 -satu = (1 / N -satu ) * & # 120506 i: yi = -1 x saya

p = N +1 / N

& # 120622 = (1 / N) * & # 120506saya = 1: N (x saya - & # 120583 saya ) (x saya - & # 120583 saya ) T

Dimana N +1 = jumlah sampel dimana y saya = +1 dan N -satu = jumlah sampel dimana y saya = -1 .

Dengan ekspresi di atas, model LDA selesai. Seseorang dapat memperkirakan parameter model menggunakan ekspresi di atas dan menggunakannya dalam fungsi pengklasifikasi untuk mendapatkan label kelas dari nilai input baru dari variabel independen. X .

Mari kita lanjutkan dengan artikel Analisis Diskriminan Linear dan lihat

Contoh di R

Kode berikut menghasilkan kumpulan data dummy dengan dua variabel independen X1 dan X2 dan variabel dependen Y . Untuk X1 dan X2 , kami akan menghasilkan sampel dari dua distribusi gaussian multivariat dengan sarana & # 120583 -satu = (2, 2) dan & # 120583 +1 = (6, 6) . 40% dari sampel termasuk dalam kelas +1 dan 60% termasuk dalam kelas -satu , oleh karena itu p = 0,4 .

library (ggplot2) library (MASS) library (mvtnorm) #Variance Covariance matrix for random bivariate gaussian sample var_covar = matrix (data = c (1.5, 0.3, 0.3, 1.5), nrow = 2) #Random bivariate gaussian sample untuk kelas + 1 Xplus1<- rmvnorm(400, mean = c(6, 6), sigma = var_covar) # Random bivariate gaussian samples for class -1 Xminus1 <- rmvnorm(600, mean = c(2, 2), sigma = var_covar) #Samples for the dependent variable Y_samples <- c(rep(1, 400), rep(-1, 600)) #Combining the independent and dependent variables into a dataframe dataset <- as.data.frame(cbind(rbind(Xplus1, Xminus1), Y_samples)) colnames(dataset) <- c('X1', 'X2', 'Y') dataset$Y <- as.character(dataset$Y) #Plot the above samples and color by class labels ggplot(data = dataset)+ geom_point(aes(X1, X2, color = Y)) 

Pada gambar di atas, titik biru mewakili sampel dari kelas +1 dan yang merah mewakili sampel dari kelas -satu . Ada beberapa tumpang tindih antara sampel, yaitu kelas tidak dapat dipisahkan sepenuhnya dengan garis sederhana. Dengan kata lain mereka tidak sempurna dapat dipisahkan secara linier .

Kami sekarang akan melatih model LDA menggunakan data di atas.

#Latih model LDA menggunakan set data di atas lda_model<- lda(Y ~ X1 + X2, data = dataset) #Print the LDA model lda_model 

Keluaran:

Kemungkinan kelompok sebelumnya:

-sebelas

0,6 0,4

Group artinya:

X1 X2

-1 1.928108 2.010226

1 5.961004 6.015438

Koefisien diskriminan linier:

LD1

X1 0,5646116

alokasi memori dinamis di c ++

X2 0,5004175

Seperti yang terlihat, sarana kelas yang dipelajari oleh model adalah (1.928108, 2.010226) untuk kelas -satu dan (5.961004, 6.015438) untuk kelas +1 . Ini berarti sangat dekat dengan kelas berarti kami telah digunakan untuk menghasilkan sampel acak ini. Probabilitas sebelumnya untuk grup +1 adalah perkiraan untuk parameter p . Itu b vektor adalah koefisien diskriminan linier.

Kami sekarang akan menggunakan model di atas untuk memprediksi label kelas untuk data yang sama.

#Memprediksi kelas untuk setiap sampel dalam set data di atas menggunakan model LDA y_pred<- predict(lda_model, newdata = dataset)$class #Adding the predictions as another column in the dataframe dataset$Y_lda_prediction <- as.character(y_pred) #Plot the above samples and color by actual and predicted class labels dataset$Y_actual_pred <- paste(dataset$Y, dataset$Y_lda_prediction, sep=',') ggplot(data = dataset)+ geom_point(aes(X1, X2, color = Y_actual_pred))

Pada gambar di atas, sampel ungu berasal dari kelas +1 yang diklasifikasikan dengan benar oleh model LDA. Demikian pula sampel merah berasal dari kelas -satu yang diklasifikasikan dengan benar. Yang biru dari kelas +1 tapi salah diklasifikasikan sebagai -satu . Yang hijau berasal dari kelas -satu yang salah diklasifikasikan sebagai +1 . Kesalahan klasifikasi terjadi karena sampel ini lebih dekat dengan mean kelas lain (tengah) daripada mean kelas sebenarnya.

Ini membawa kita ke akhir artikel ini, lihat oleh Edureka, perusahaan pembelajaran online tepercaya dengan jaringan lebih dari 250.000 pelajar yang puas dan tersebar di seluruh dunia. Edureka's Data Analytics dengan pelatihan R akan membantu Anda mendapatkan keahlian dalam Pemrograman R, Manipulasi Data, Analisis Data Eksplorasi, Visualisasi Data, Penambangan Data, Regresi, Analisis Sentimen, dan menggunakan R Studio untuk studi kasus kehidupan nyata di Ritel, Media Sosial.

Ada pertanyaan untuk kami? Harap sebutkan di bagian komentar artikel ini dan kami akan menghubungi Anda kembali sesegera mungkin.