Paano Maipapatupad ang Linear Discriminant Analysis sa R?



Sasabihin sa iyo ng artikulong ito kung ano ang linear discriminant analysis at bibigyan ka rin ng isang detalyadong demonstrasyon gamit ang wikang R Programming.

Ang Linear Discriminant Analysis ay isang tanyag na diskarte sa Pag-aaral ng Machine na ginagamit upang malutas ang mga problema sa pag-uuri. Sa artikulong ito susubukan naming maunawaan ang intuwisyon at matematika sa likod ng diskarteng ito. Isang halimbawa ng pagpapatupad ng LDA sa R ay ibinigay din.

Kaya't magsimula tayo pagkatapos





Linear Discriminant Analysis Assuming

Ang Linear Discriminant Analysis ay batay sa mga sumusunod na palagay:

  • Ang umaasa na variable Y ay discrete. Sa artikulong ito ay ipalagay namin na ang umaasa na variable ay binary at kumukuha ng mga halaga sa klase {+1, -1} . Ang posibilidad ng isang sample na kabilang sa klase +1 , ibig sabihin P (Y = +1) = p . Samakatuwid, ang posibilidad ng isang sample na kabilang sa klase -isa ay 1-p .



  • Ang (mga) independiyenteng variable (s) X nagmula sa mga pamamahagi ng gaussian. Ang ibig sabihin ng pamamahagi ng gaussian ay nakasalalay sa tatak ng klase Y . ibig sabihin kung Y ako = +1 , pagkatapos ay ang ibig sabihin ng X ako ay & # 120583 +1 , hindi naman & # 120583 -isa . Ang pagkakaiba-iba & # 120590 2 ay pareho para sa parehong klase. Sa pagsasalita sa matematika, X | (Y = +1) ~ N (& # 120583 +1 , & # 120590 2 ) at X | (Y = -1) ~ N (& # 120583 -isa , & # 120590 2 ) , saan N nagsasaad ng normal na pamamahagi.

Sa impormasyong ito posible na bumuo ng isang magkasanib na pamamahagi P (X, Y) para sa independyente at umaasang variable. Samakatuwid, ang LDA ay kabilang sa klase ng Mga Modelong Generative Classifier . Ang isang malapit na nauugnay na generative classifier ay Quadratic Discriminant Analysis (QDA). Ito ay batay sa lahat ng parehong mga palagay ng LDA, maliban sa pagkakaiba-iba ng klase.

Ipagpatuloy natin ang artikulo sa Linear Discriminant Analysis at tingnan

Intuition

Isaalang-alang ang klase ng mga kondisyong pamamahagi ng gaussian para sa X ibinigay sa klase Y . Ipinapakita ng figure sa ibaba ang mga function ng density ng mga pamamahagi. Sa figure na ito, kung Y = +1 , pagkatapos ay ang ibig sabihin ng X ay 10 at kung Y = -1 , ang ibig sabihin ay 2. Ang pagkakaiba-iba ay 2 sa parehong mga kaso.

intuwisyon - Pagsusuri sa Diskriminasyong Linear - Edureka

Ngayon ipagpalagay na ang isang bagong halaga ng X ay ibinigay sa amin. Hinahayaan lang nating tukuyin ito bilang x ako . Ang gawain ay upang matukoy ang malamang na label ng klase para dito x ako , ibig sabihin Y ako . Para sa pagiging simple ipalagay na ang posibilidad p ng sample na kabilang sa klase +1 ay kapareho ng pagmamay-ari ng klase -isa , ibig sabihin p = 0.5 .

Intuitively, makatuwiran na sabihin na kung x ako ay mas malapit sa & # 120583 +1 kaysa ito ay sa & # 120583 -isa , kung gayon mas malamang na iyon Y ako = +1 . Mas pormal, Y ako = +1 kung:

| x ako - & # 120583 +1 |<|x ako - & # 120583 -isa |

Normalisasyon ang magkabilang panig sa pamamagitan ng karaniwang paglihis:

| x ako - & # 120583 +1 | / & # 120590<|x ako - & # 120583 -isa | / & # 120590

Pag-squaring sa magkabilang panig:

(x ako - & # 120583 +1 ) 2 / & # 120590 2 <(x ako - & # 120583 -isa ) 2 / & # 120590 2

x ako 2 / & # 120590 2 + & # 120583 +1 2 / & # 120590 2 - 2 x ako & # 120583 +1 / & # 120590 2 ako 2 / & # 120590 2 + & # 120583 -isa 2 / & # 120590 2 - 2 x ako & # 120583 -isa / & # 120590 2

2 x ako (& # 120583 -isa - & # 120583 +1 ) / & # 120590 2 - (& # 120583 -isa 2 / & # 120590 2 - & # 120583 +1 2 / & # 120590 2 )<0

-2 x ako (& # 120583 -isa - & # 120583 +1 ) / & # 120590 2 + (& # 120583 -isa 2 / & # 120590 2 - & # 120583 +1 2 / & # 120590 2 )> 0

Ang expression sa itaas ay ng form bx ako + c> 0 kung saan b = -2 (& # 120583 -isa - & # 120583 +1 ) / & # 120590 2 at c = (& # 120583 -isa 2 / & # 120590 2 - & # 120583 +1 2 / & # 120590 2 ) .

Malinaw na ang anyo ng equation ay guhit-guhit , kaya't pinangalanan ang Linear Discriminant Analysis.

Ipagpatuloy natin ang artikulo sa Linear Discriminant Analysis at tingnan,

Paglalarawan sa Matematika ng LDA

Ang derivasyon ng matematika ng ekspresyon para sa LDA ay batay sa mga konsepto tulad Panuntunan ni Bayes at Bayes Optimal Classifier . Ang mga interesadong mambabasa ay hinihimok na basahin ang higit pa tungkol sa mga konseptong ito. Ang isang paraan upang makuha ang expression ay maaaring matagpuan dito .

Ibibigay namin nang direkta ang expression para sa aming tukoy na kaso kung saan Y kumukuha ng dalawang klase {+1, -1} . Palawakin din namin ang intuwisyon na ipinakita sa nakaraang seksyon sa pangkalahatang kaso kung saan X maaaring maging multidimensional. Sabihin nating mayroong sa independiyenteng mga variable. Sa kasong ito, nangangahulugang ang klase & # 120583 -isa at & # 120583 +1 ay magiging mga vector ng mga sukat k * 1 at ang variance-covariance matrix & # 120622 ay magiging isang matrix ng mga sukat k * k .

Ang pagpapaandar ng classifier ay ibinibigay bilang

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

kung paano gamitin ang kapangyarihan sa java

Kung saan,

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

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

Bumabalik ang pagpapaandar ng pag-sign +1 kung ang expression b T x + c> 0 , kung hindi man ay nagbabalik ito -isa . Ang natural na term ng pag-log in c ay naroroon upang ayusin para sa katotohanan na ang mga probabilidad sa klase ay hindi kailangang pantay para sa parehong klase, ibig sabihin p ay maaaring maging anumang halaga sa pagitan ng (0, 1), at hindi lamang 0.5.

Pag-aaral ng Mga Parameter ng Modelo

Binigyan ng isang dataset na may N data-point (x isa , Y isa ), (x 2 , Y 2 ),… (X n , Y n ) , kailangan nating tantyahin p, & # 120583 -isa , & # 120583 +1 at & # 120622 . Tinawag ang isang pamamaraan ng pagtatasa ng istatistika Pinakamataas na Pagtatantiya ng Likelihood ay ginagamit upang tantyahin ang mga parameter na ito. Ang mga expression para sa mga nasa itaas na parameter ay ibinibigay sa ibaba.

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

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

p = N +1 / N

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

Kung saan N +1 = bilang ng mga sample kung saan y ako = +1 at N -isa = bilang ng mga sample kung saan y ako = -1 .

Sa mga expression sa itaas, ang modelo ng LDA ay kumpleto. Maaaring matantya ng isa ang mga parameter ng modelo gamit ang mga expression sa itaas at gamitin ang mga ito sa pagpapaandar ng classifier upang makuha ang label ng klase ng anumang bagong halaga ng pag-input ng independiyenteng variable X .

Ipagpatuloy natin ang artikulo sa Linear Discriminant Analysis at tingnan

Halimbawa sa R

Ang sumusunod na code ay bumubuo ng isang dummy data set na may dalawang independiyenteng variable X1 at X2 at isang umaasa na variable Y . Para kay X1 at X2 , bubuo kami ng sample mula sa dalawang multivariate gaussian na pamamahagi na may mga paraan & # 120583 -isa = (2, 2) at & # 120583 +1 = (6, 6) . 40% ng mga sample ay kabilang sa klase +1 at 60% ay kabilang sa klase -isa , samakatuwid p = 0.4 .

library (ggplot2) library (MASS) library (mvtnorm) #Variance Covariance matrix para sa random na bivariate gaussian sample var_covar = matrix (data = c (1.5, 0.3, 0.3, 1.5), nrow = 2) #Random bivariate gaussian sample para sa klase + 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)) 

Sa figure sa itaas, ang mga asul na tuldok ay kumakatawan sa mga sample mula sa klase +1 at ang mga pula ay kumakatawan sa sample mula sa klase -isa . Mayroong ilang mga overlap sa pagitan ng mga sample, ibig sabihin, ang mga klase ay hindi maaaring ganap na ihiwalay sa isang simpleng linya. Sa madaling salita hindi sila perpekto linearly separable .

Magsasanay kami ngayon ng isang modelo ng LDA gamit ang data sa itaas.

#Sasanayin ang modelo ng LDA gamit ang nasa itaas na lda_model<- lda(Y ~ X1 + X2, data = dataset) #Print the LDA model lda_model 

Output:

Mga naunang posibilidad ng mga pangkat:

-leven

0.6 0.4

Ang ibig sabihin ng pangkat:

X1 X2

-1 1.928108 2.010226

1 5.961004 6.015438

Mga Coefficient ng mga linear na diskriminante:

LD1

X1 0.5646116

X2 0.5004175

Tulad ng makikita, ang klase ay nangangahulugang natutunan ng modelo ay (1.928108, 2.010226) para sa klase -isa at (5.961004, 6.015438) para sa klase +1 . Ang mga ibig sabihin nito ay napakalapit sa klase nangangahulugang ginamit namin upang makabuo ng mga random na sample. Ang dating posibilidad para sa pangkat +1 ay ang pagtatantya para sa parameter p . Ang b ang vector ay ang mga linear coefficients na may diskriminasyon.

Gagamitin namin ngayon ang modelo sa itaas upang mahulaan ang mga label ng klase para sa parehong data.

#Paghula ng klase para sa bawat sample sa nasa itaas na dataset gamit ang modelo ng LDA na 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))

ano ang pamamaraan sa javascript

Sa figure sa itaas, ang mga lilang sample ay mula sa klase +1 na nauri nang tama ng modelo ng LDA. Katulad nito, ang mga pulang sample ay mula sa klase -isa tama ang nauri. Ang mga asul ay mula sa klase +1 ngunit naiuri nang mali bilang -isa . Ang mga berde ay mula sa klase -isa na na-misclassify bilang +1 . Ang maling pag-uuri ay nangyayari dahil ang mga sampol na ito ay mas malapit sa iba pang mga klase ng mean (gitna) kaysa sa kanilang aktwal na uri ng klase.

Dinadala tayo nito sa pagtatapos ng artikulong ito, tingnan ang ni Edureka, isang pinagkakatiwalaang kumpanya sa pag-aaral sa online na may isang network na higit sa 250,000 nasiyahan na mga nag-aaral na kumalat sa buong mundo. Ang Data Analytics ng Edureka na may pagsasanay sa R ​​ay makakatulong sa iyo na makakuha ng kadalubhasaan sa R ​​Programming, Data Manipulation, Exploratory Data Analysis, Data Visualization, Data Mining, Regression, Sentiment Analysis at paggamit ng R Studio para sa mga totoong case case study sa Retail, Social Media.

May tanong ba sa amin? Mangyaring banggitin ito sa seksyon ng mga komento ng artikulong ito at babalikan ka namin sa lalong madaling panahon.