Bagaimana Melaksanakan Analisis Diskriminan Linear di R?



Artikel ini akan memberitahu anda apa itu analisis diskriminan linier dan juga memberi anda demonstrasi terperinci menggunakan bahasa R Programming.

Analisis Diskriminan Linear adalah teknik Pembelajaran Mesin yang sangat popular yang digunakan untuk menyelesaikan masalah klasifikasi. Dalam artikel ini kita akan cuba memahami intuisi dan matematik di sebalik teknik ini. Contoh pelaksanaan LDA di R juga disediakan.

Oleh itu, marilah kita bermula





Andaian Analisis Diskriminan Linear

Analisis Diskriminan Linear berdasarkan andaian berikut:

  • Pemboleh ubah bersandar Y adalah diskrit. Dalam artikel ini kita akan menganggap bahawa pemboleh ubah bersandar adalah binari dan mengambil nilai kelas {+1, -1} . Kebarangkalian sampel tergolong dalam kelas +1 , i.e. P (Y = +1) = p . Oleh itu, kebarangkalian sampel tergolong dalam kelas -satu adalah 1-p .



  • Pemboleh ubah bebas X datang dari pengedaran gaussian. Purata taburan gaussian bergantung pada label kelas Y . iaitu jika Y i = +1 , maka maksud dari X i adalah & # 120583 +1 , lain pula & # 120583 -satu . Ragamnya & # 120590 2 adalah sama untuk kedua-dua kelas. Bercakap secara matematik, X | (Y = +1) ~ N (& # 120583 +1 , & # 120590 2 ) dan X | (Y = -1) ~ N (& # 120583 -satu , & # 120590 2 ) , di mana N menunjukkan taburan normal.

Dengan maklumat ini adalah mungkin untuk membina pengedaran bersama P (X, Y) untuk pemboleh ubah bebas dan bersandar. Oleh itu, LDA tergolong dalam kelas Model Pengelas Generatif . Pengelaskan generatif yang berkait rapat adalah Quadratic Discriminant Analysis (QDA). Ini berdasarkan semua andaian LDA yang sama, kecuali perbezaan kelasnya berbeza.

cara menggunakan substring di java

Mari kita teruskan dengan artikel Analisis Diskriminan Linear dan lihat

Gerak hati

Pertimbangkan pengedaran gaussian bersyarat kelas untuk X diberi kelas Y . Rajah di bawah menunjukkan fungsi ketumpatan taburan. Dalam angka ini, jika Y = +1 , maka maksud dari X ialah 10 dan jika Y = -1 , min adalah 2. Variansnya adalah 2 dalam kedua kes tersebut.

intuisi - Analisis Diskriminasi Linear - Edureka

Sekarang anggap nilai baru X diberikan kepada kami. Mari kita menunjukkannya sebagai x i . Tugasnya adalah untuk menentukan label kelas yang paling mungkin untuk ini x i , iaitu Y i . Untuk kesederhanaan menganggap bahawa kebarangkalian hlm sampel kepunyaan kelas +1 sama dengan kepunyaan kelas -satu , iaitu p = 0.5 .

Secara intuitif, masuk akal untuk mengatakan bahawa jika x i lebih dekat dengan & # 120583 +1 daripada yang sepatutnya & # 120583 -satu , maka kemungkinan besar Y i = +1 . Secara lebih formal, Y i = +1 sekiranya:

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

Menormalkan kedua-dua sisi dengan sisihan piawai:

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

Kuadrat kedua-dua belah:

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

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

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

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

Ungkapan di atas adalah dalam bentuk bx i + c> 0 di mana b = -2 (& # 120583 -satu - & # 120583 +1 ) / & # 120590 2 dan c = (& # 120583 -satu 2 / & # 120590 2 - & # 120583 +1 2 / & # 120590 2 ) .

Jelas bahawa bentuk persamaannya adalah linear , dengan itu namanya Linear Discriminant Analysis.

Mari kita teruskan dengan artikel Analisis Diskriminan Linear dan lihat,

Huraian Matematik LDA

Penjanaan matematik ungkapan untuk LDA berdasarkan konsep seperti Peraturan Bayes dan Pengelaskan Optimum Bayes . Pembaca yang berminat digalakkan membaca lebih lanjut mengenai konsep ini. Satu cara untuk mendapatkan ungkapan dapat dijumpai di sini .

c ++ berjalan lancar

Kami akan memberikan ungkapan secara langsung untuk kes khusus kami di mana Y mengambil dua kelas {+1, -1} . Kami juga akan memperluaskan intuisi yang ditunjukkan pada bahagian sebelumnya hingga kes umum di mana X boleh menjadi multidimensi. Katakan ada ke pemboleh ubah bebas. Dalam kes ini, kelas bermaksud & # 120583 -satu dan & # 120583 +1 akan menjadi vektor dimensi k * 1 dan matriks varians-kovarians & # 120622 akan menjadi matriks dimensi k * k .

Fungsi pengelasan diberikan sebagai

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

Di mana,

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 sekiranya ungkapan b T x + c> 0 , jika tidak, ia kembali -satu . Istilah log semula jadi di c hadir untuk menyesuaikan fakta bahawa kebarangkalian kelas tidak perlu sama untuk kedua-dua kelas, iaitu hlm mungkin ada nilai 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 ) , kita perlu membuat anggaran p, & # 120583 -satu , & # 120583 +1 dan & # 120622 . Teknik anggaran statistik disebut Anggaran Kemungkinan Maksimum digunakan untuk menganggar parameter ini. Ungkapan untuk parameter di atas diberikan di bawah.

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

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

p = N +1 / N

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

Di mana N +1 = bilangan sampel di mana y i = +1 dan N -satu = bilangan sampel di mana y i = -1 .

Dengan ungkapan di atas, model LDA lengkap. Seseorang dapat menganggarkan parameter model menggunakan ungkapan di atas dan menggunakannya dalam fungsi pengklasifikasi untuk mendapatkan label kelas mana-mana nilai input baru pemboleh ubah bebas X .

Mari kita teruskan dengan artikel Analisis Diskriminan Linear dan lihat

Contoh dalam R

Kod berikut menghasilkan set data dummy dengan dua pemboleh ubah tidak bersandar X1 dan X2 dan pemboleh ubah bersandar Y . Untuk X1 dan X2 , kami akan menghasilkan sampel dari dua pengedaran gaussian multivariat dengan kaedah & # 120583 -satu = (2, 2) dan & # 120583 +1 = (6, 6) . 40% sampel tergolong dalam kelas +1 dan 60% tergolong dalam kelas -satu , Oleh itu p = 0.4 .

library (ggplot2) library (MASS) library (mvtnorm) #Variance Covariance matrix untuk rawak bivariate gaussian sample var_covar = matrix (data = c (1.5, 0.3, 0.3, 1.5), nrow = 2) #Rawak bivariate sampel gaussian 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 rajah di atas, titik biru mewakili sampel dari kelas +1 dan yang berwarna merah mewakili sampel dari kelas -satu . Terdapat beberapa pertindihan antara sampel, iaitu kelas tidak dapat dipisahkan sepenuhnya dengan garis sederhana. Dengan kata lain mereka tidak sempurna boleh dipisahkan secara linear .

Kami sekarang akan melatih model LDA menggunakan data di atas.

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

Pengeluaran:

Kebarangkalian kumpulan sebelumnya:

-bebas

0.6 0.4

cara menyalin objek dalam java

Kumpulan bermaksud:

X1 X2

-1 1.928108 2.010226

1 5.961004 6.015438

Pekali diskriminasi linear:

LD1

X1 0.5646116

X2 0.5004175

Seperti yang dapat dilihat, kaedah kelas yang dipelajari oleh model adalah (1.928108, 2.010226) untuk kelas -satu dan (5.961004, 6.015438) untuk kelas +1 . Kaedah ini sangat dekat dengan kelas yang bermaksud kami gunakan untuk menghasilkan sampel rawak ini. Kebarangkalian sebelumnya untuk kumpulan +1 adalah anggaran untuk parameter hlm . The b vektor adalah pekali diskriminasi linear.

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

#Menentukan 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))

Dalam rajah di atas, sampel ungu adalah dari kelas +1 yang dikelaskan dengan betul oleh model LDA. Begitu juga, sampel merah dari kelas -satu yang dikelaskan dengan betul. Yang biru dari kelas +1 tetapi dikelaskan tidak betul sebagai -satu . Yang hijau dari kelas -satu yang salah diklasifikasikan sebagai +1 . Kesalahan pengkelasan berlaku kerana sampel ini lebih dekat dengan min kelas lain (tengah) daripada min kelas sebenar mereka.

Ini membawa kita ke akhir artikel ini, lihat oleh Edureka, sebuah syarikat pembelajaran dalam talian yang dipercayai dengan rangkaian lebih daripada 250,000 pelajar berpuas hati yang tersebar di seluruh dunia. Analisis Data Edureka dengan latihan R akan membantu anda memperoleh kepakaran dalam Pengaturcaraan R, Manipulasi Data, Analisis Data Eksploratori, Visualisasi Data, Perlombongan Data, Regresi, Analisis Sentimen dan menggunakan R Studio untuk kajian kes kehidupan sebenar di Runcit, Media Sosial.

Ada soalan untuk kami? Sila sebutkan di bahagian komen artikel ini dan kami akan menghubungi anda secepat mungkin.