Kā īstenot lineāro diskriminantu analīzi R?



Šis raksts jums pastāstīs, kas ir lineārā diskriminantu analīze, kā arī sniegs detalizētu demonstrāciju, izmantojot R programmēšanas valodu.

Lineārā diskriminantu analīze ir ļoti populāra mašīnmācīšanās tehnika, ko izmanto klasifikācijas problēmu risināšanai. Šajā rakstā mēs centīsimies izprast šīs tehnikas pamatā esošo intuīciju un matemātiku. LDA ieviešanas piemērs R ir arī paredzēts.

Tāpēc sāksim tad





Lineārās diskriminantu analīzes pieņēmums

Lineārā diskriminantu analīze balstās uz šādiem pieņēmumiem:

  • Atkarīgais mainīgais ir diskrēts. Šajā rakstā mēs pieņemsim, ka atkarīgais mainīgais ir binārs un ņem klases vērtības {+1, -1} . Klasei piederoša parauga varbūtība +1 , t.i. P (Y = +1) = p . Tāpēc varbūtība, ka paraugs pieder pie klases -viens ir 1. lpp .



  • Neatkarīgais (-ie) mainīgais (-ie) X nāk no gausa sadalījumiem. Gausa sadalījuma vidējais lielums ir atkarīgs no klases etiķetes . i., ja i = +1 , tad vidējais rādītājs X i ir & # 120583 +1 , citādi tas ir & # 120583 -viens . Dispersija & # 120590 2 abām klasēm ir vienāds. Matemātiski runājot, X | (Y = +1) ~ N (& # 120583 +1 , & # 120590 2 ) un X | (Y = -1) ~ N (& # 120583 -viens , & # 120590 2 ) , kur N apzīmē normālo sadalījumu.

Ar šo informāciju ir iespējams izveidot kopīgu izplatīšanu P (X, Y) neatkarīgajam un atkarīgajam mainīgajam. Tāpēc LDA pieder pie Ģeneratīvo klasifikatoru modeļi . Cieši saistīts ģeneratīvais klasifikators ir kvadrātiskā diskriminantu analīze (QDA). Tas ir balstīts uz visiem tiem pašiem LDA pieņēmumiem, izņemot to, ka klases dispersijas ir atšķirīgas.

Turpināsim ar lineārās diskriminantu analīzes rakstu un redzēsim

Intuīcija

Apsveriet klases nosacītos gausa sadalījumus X dota klase . Zemāk redzamais attēls parāda sadalījumu blīvuma funkcijas. Šajā attēlā, ja Y = +1 , tad vidējais rādītājs X ir 10 un ja Y = -1 , vidējais ir 2. Abos gadījumos dispersija ir 2.

iziet ar atsauci java

intuīcija - lineārā diskriminācijas analīze - Edureka

Tagad pieņemsim jaunu vērtību X tiek dota mums. Ļauj to vienkārši apzīmēt kā x i . Uzdevums ir noteikt visticamāko klases etiķeti x i , t.i. i . Vienkāršības labad pieņem, ka varbūtība lpp klases parauga +1 ir tāda pati kā piederība klasei -viens , t.i. p = 0,5 .

Intuitīvi ir jēga teikt, ka, ja x i ir tuvāk & # 120583 +1 nekā tas ir & # 120583 -viens , tad ir ticamāk, ka i = +1 . Formālāk, i = +1 ja:

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

Abas puses normalizē ar standartnovirzi:

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

Abas puses kvadrātā:

(x i - & # 120583 +1 ) 2 / & # 120590 2 <(x i - & # 120583 -viens ) 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 -viens 2 / & # 120590 2 - 2 x i & # 120583 -viens / & # 120590 2

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

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

Iepriekš minētā izteiksme ir formā bx i + c> 0 kur b = -2 (& # 120583 -viens - & # 120583 +1 ) / & # 120590 2 un c = (& # 120583 -viens 2 / & # 120590 2 - & # 120583 +1 2 / & # 120590 2 ) .

Ir skaidrs, ka vienādojuma forma ir lineārs , tāpēc nosaukums Linear Discriminant Analysis.

Turpināsim ar lineārās diskriminantu analīzes rakstu un redzēsim,

LDA matemātiskais apraksts

LDA izteiksmes matemātiskā atvasināšana balstās uz tādiem jēdzieniem kā Bayes noteikums un Bayes optimālais klasifikators . Ieinteresētie lasītāji tiek aicināti lasīt vairāk par šiem jēdzieniem. Var atrast vienu veidu, kā iegūt izteiksmi šeit .

Mēs sniegsim izteicienu tieši mūsu konkrētajam gadījumam mācās divas klases {+1, -1} . Mēs paplašināsim arī iepriekšējā sadaļā redzamo intuīciju līdz vispārējam gadījumam, kur X var būt daudzdimensionāls. Pieņemsim, ka tādi ir uz neatkarīgi mainīgie. Šajā gadījumā klase nozīmē & # 120583 -viens un & # 120583 +1 būtu dimensiju vektori k * 1 un dispersijas-kovariācijas matrica & # 120622 būtu dimensiju matrica labi labi .

Klasifikatora funkcija tiek dota kā

Y = h (X) = zīme (b T X + c)

Kur,

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

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

Paraksta funkcija atgriežas +1 ja izteiciens b T x + c> 0 , pretējā gadījumā tas atgriežas -viens . Dabiskais žurnāla termins c ir klāt, lai pielāgotos faktam, ka klases varbūtībām nav jābūt vienādām abām klasēm, t.i. lpp var būt jebkura vērtība starp (0, 1), nevis tikai 0,5.

Modeļa parametru apgūšana

Dota datu kopa ar N datu punkti (x viens , Y viens ), (x 2 , Y 2 ),… (X n , Y n ) , mums ir jānovērtē p, & # 120583 -viens , & # 120583 +1 un & # 120622 . Tiek saukta statistiskās novērtēšanas metode Maksimālās iespējamības novērtējums tiek izmantots, lai novērtētu šos parametrus. Iepriekš minēto parametru izteiksmes ir norādītas zemāk.

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

& # 120583 -viens = (1 / N -viens ) * & # 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

Kur N +1 = paraugu skaits, kur y i = +1 un N -viens = paraugu skaits, kur y i = -1 .

Izmantojot iepriekš minētos izteicienus, LDA modelis ir pabeigts. Var novērtēt modeļa parametrus, izmantojot iepriekš minētās izteiksmes, un izmantot tos klasifikatora funkcijā, lai iegūtu jebkura neatkarīga mainīgā ievades vērtības klases etiķeti X .

Turpināsim ar lineārās diskriminantu analīzes rakstu un redzēsim

Piemērs R

Šis kods ģenerē fiktīvu datu kopu ar diviem neatkarīgiem mainīgajiem X1 un X2 un atkarīgais mainīgais . Priekš X1 un X2 , mēs ar vidējiem veidosim paraugu no diviem daudzfaktoru gausa sadalījumiem & # 120583 -viens = (2, 2) un & # 120583 +1 = (6, 6) . 40% paraugu ietilpst klasē +1 un 60% pieder pie klases -viens tāpēc p = 0,4 .

bibliotēka (ggplot2) bibliotēka (MASS) bibliotēka (mvtnorm) #Variances kovariances matrica nejaušam divvirzienu gausa paraugam var_covar = matrica (dati = c (1,5, 0,3, 0,3, 1,5), now = 2) # Gadījuma divvariantu gausa paraugi klasei + 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)) 

Iepriekš redzamajā attēlā zilie punkti apzīmē klases paraugus +1 un sarkanie ir paraugs no klases -viens . Starp paraugiem ir zināma pārklāšanās, t.i., klases nevar pilnībā atdalīt ar vienkāršu līniju. Citiem vārdiem sakot, tie nav perfekti lineāri atdalāms .

Tagad mēs apmācīsim LDA modeli, izmantojot iepriekš minētos datus.

# Apmāciet LDA modeli, izmantojot iepriekš minēto datu kopu lda_model<- lda(Y ~ X1 + X2, data = dataset) #Print the LDA model lda_model 

Izeja:

hadoop admin vs hadoop izstrādātājs

Grupu iepriekšējās varbūtības:

-vienpadsmit

0,6 0,4

Grupa nozīmē:

X1 X2

-1 1,928108 2,010226

1 5.961004 6.015438

Lineāro diskriminantu koeficienti:

LD1

X1 0.5646116

X2 0.5004175

Kā redzams, modeļa apgūtie klases līdzekļi ir (1.928108, 2.010226) klasei -viens un (5.961004, 6.015438) klasei +1 . Šie līdzekļi ir ļoti tuvu klases vidējiem, kurus mēs izmantojām šo nejaušo paraugu ģenerēšanai. Iepriekšēja varbūtība grupai +1 ir parametra novērtējums lpp . The b vektors ir lineārie diskriminējošie koeficienti.

Tagad mēs izmantosim iepriekš minēto modeli, lai prognozētu klases marķējumus tiem pašiem datiem.

# Katram paraugam klases iepriekšēja datu kopas paredzēšana, izmantojot LDA modeli 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))

Iepriekš redzamajā attēlā purpursarkanie paraugi ir no klases +1 kuras LDA modelis bija pareizi klasificējis. Līdzīgi sarkanie paraugi ir no klases -viens kas tika klasificēti pareizi. Zilie ir no klases +1 bet tika nepareizi klasificēti kā -viens . Zaļie ir no klases -viens kas tika nepareizi klasificēti kā +1 . Nepareizas klasifikācijas notiek tāpēc, ka šie paraugi ir tuvāk citas klases vidējam līmenim (centram), nekā to faktiskais vidējais.

Tas mūs noved pie šī raksta beigām, apskatiet Autors: Edureka, uzticams tiešsaistes mācību uzņēmums ar vairāk nekā 250 000 apmierinātu izglītojamo tīklu visā pasaulē. Edureka’s Data Analytics with R apmācība palīdzēs jums iegūt zināšanas R programmēšanā, datu apstrādē, izpētes datu analīzē, datu vizualizācijā, datu iegūšanā, regresijā, sentimentu analīzē un R Studio izmantošanā reālās dzīves gadījumu izpētei mazumtirdzniecībā, sociālajos medijos.

Vai mums ir jautājums? Lūdzu, pieminējiet to šī raksta komentāru sadaļā, un mēs sazināsimies ar jums pēc iespējas ātrāk.