Kako implementirati linearnu diskriminacijsku analizu u R?



Ovaj članak će vam reći što je linearna diskriminantna analiza, a također će vam pružiti detaljnu demonstraciju pomoću programskog jezika R.

Linearna diskriminatorna analiza vrlo je popularna tehnika strojnog učenja koja se koristi za rješavanje problema klasifikacije. U ovom ćemo članku pokušati razumjeti intuiciju i matematiku koja stoji iza ove tehnike. Primjer primjene LDA u R je također osiguran.

Pa krenimo onda





Pretpostavka linearne diskriminatorne analize

Linearna diskriminatorna analiza temelji se na sljedećim pretpostavkama:

  • Ovisna varijabla Y je diskretan. U ovom ćemo članku pretpostaviti da je ovisna varijabla binarna i da uzima vrijednosti klase {+1, -1} . Vjerojatnost uzorka koji pripada klasi +1 , tj P (Y = +1) = str . Stoga vjerojatnost uzorka koji pripada klasi -jedan je 1-str .



  • Nezavisne varijable x potječu iz gausovskih distribucija. Srednja vrijednost gausove raspodjele ovisi o oznaci razreda Y . tj. ako Y ja = +1 , tada srednja vrijednost x ja je & # 120583 +1 , inače je & # 120583 -jedan . Varijansa & # 120590 2 je isti za oba razreda. Matematički gledano, X | (Y = +1) ~ N (& # 120583 +1 , & # 120590 2 ) i X | (Y = -1) ~ N (& # 120583 -jedan , & # 120590 2 ) , gdje N označava normalnu raspodjelu.

Pomoću ovih podataka moguće je stvoriti zajedničku distribuciju P (X, Y) za neovisnu i zavisnu varijablu. Stoga LDA pripada klasi Modeli generativnog klasifikatora . Usko povezan generativni klasifikator je Quadratic Discriminant Analysis (QDA). Temelji se na istim pretpostavkama LDA, osim što su razlike u klasi različite.

Nastavimo s člankom Linearne diskriminatorne analize i vidjet ćemo

Intuicija

Razmotrimo razrednu uvjetnu gausovu raspodjelu za x s obzirom na razred Y . Sljedeća slika prikazuje funkcije gustoće raspodjela. Na ovoj slici, ako Y = +1 , tada srednja vrijednost x je 10 i ako Y = -1 , srednja vrijednost je 2. U oba slučaja varijanca je 2.

intuicija - Analiza linearne diskriminacije - Edureka

Pretpostavimo sada novu vrijednost x je dana nama. Označimo to samo kao x ja . Zadatak je odrediti vjerojatnu oznaku klase za to x ja , tj. Y ja . Radi jednostavnosti pretpostavimo da je vjerojatnost str uzorka koji pripada klasi +1 je isto što i pripadnost klasi -jedan , tj. p = 0,5 .

Intuitivno ima smisla reći da ako x ja je bliže & # 120583 +1 nego što je do & # 120583 -jedan , tada je vjerojatnije da Y ja = +1 . Formalnije, Y ja = +1 ako:

| x ja - & # 120583 +1 |<|x ja - & # 120583 -jedan |

Normaliziranje obje strane standardnom devijacijom:

| x ja - & # 120583 +1 | / & # 120590<|x ja - & # 120583 -jedan | / & # 120590

Kvadriranje obje strane:

(x ja - & # 120583 +1 ) 2 / & # 120590 2 <(x ja - & # 120583 -jedan ) 2 / & # 120590 2

x ja 2 / & # 120590 2 + & # 120583 +1 2 / & # 120590 2 - 2 x ja & # 120583 +1 / & # 120590 2 ja 2 / & # 120590 2 + & # 120583 -jedan 2 / & # 120590 2 - 2 x ja & # 120583 -jedan / & # 120590 2

2 x ja (& # 120583 -jedan - & # 120583 +1 ) / & # 120590 2 - (& # 120583 -jedan 2 / & # 120590 2 - & # 120583 +1 2 / & # 120590 2 )<0

-2 x ja (& # 120583 -jedan - & # 120583 +1 ) / & # 120590 2 + (& # 120583 -jedan 2 / & # 120590 2 - & # 120583 +1 2 / & # 120590 2 )> 0

Gornji izraz je oblika bx ja + c> 0 gdje b = -2 (& # 120583 -jedan - & # 120583 +1 ) / & # 120590 2 i c = (& # 120583 -jedan 2 / & # 120590 2 - & # 120583 +1 2 / & # 120590 2 ) .

Očito je da je oblik jednadžbe linearno , pa otuda i naziv Linearna diskriminatorna analiza.

Nastavimo s člankom Linearne diskriminatorne analize i vidjet ćemo,

Matematički opis LDA

Matematičko izvođenje izraza za LDA temelji se na konceptima poput Bayesovo pravilo i Bayesov optimalni klasifikator . Zainteresirane čitatelje potiče da pročitaju više o tim konceptima. Može se naći jedan način za izvođenje izraza ovdje .

Izraz ćemo pružiti izravno za naš specifični slučaj gdje Y traje dva sata {+1, -1} . Također ćemo proširiti intuiciju prikazanu u prethodnom odjeljku na općeniti slučaj gdje x može biti višedimenzionalna. Recimo da postoje do neovisne varijable. U ovom slučaju razred znači & # 120583 -jedan i & # 120583 +1 bili bi vektori dimenzija k * 1 i matrica varijance-kovarijance & # 120622 bila bi matrica dimenzija k * k .

Funkcija klasifikatora dana je kao

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

Gdje,

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

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

Funkcija znaka se vraća +1 ako je izraz b T x + c> 0 , inače se vraća -jedan . Prirodni pojam u c je prisutan kako bi se prilagodio činjenici da vjerojatnosti razreda ne moraju biti jednake za obje klase, tj. str može biti bilo koja vrijednost između (0, 1), a ne samo 0,5.

Učenje parametara modela

S obzirom na skup podataka s N podatkovne točke (x jedan , Y jedan ), (x 2 , Y 2 ),… (X n , Y n ) , moramo procijeniti str, & # 120583 -jedan , & # 120583 +1 i & # 120622 . Tehnika statističke procjene tzv Procjena najveće vjerojatnosti koristi se za procjenu ovih parametara. Izrazi za gornje parametre dati su u nastavku.

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

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

p = N +1 / N

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

Gdje N +1 = broj uzoraka gdje je y ja = +1 i N -jedan = broj uzoraka gdje je y ja = -1 .

S gornjim izrazima LDA model je potpun. Pomoću gornjih izraza mogu se procijeniti parametri modela i koristiti ih u funkciji klasifikatora za dobivanje oznake klase bilo koje nove ulazne vrijednosti neovisne varijable x .

Nastavimo s člankom Linearne diskriminatorne analize i vidjet ćemo

Primjer u R

Sljedeći kod generira lažni skup podataka s dvije neovisne varijable X1 i X2 i zavisna varijabla Y . Za X1 i X2 , generirat ćemo uzorak iz dvije multivarijantne gausove raspodjele pomoću sredstava & # 120583 -jedan = (2, 2) i & # 120583 +1 = (6, 6) . 40% uzoraka pripada klasi +1 a 60% pripada klasi -jedan , dakle p = 0,4 .

knjižnica (ggplot2) knjižnica (MASS) knjižnica (mvtnorm) #Variance Kovarijantna matrica za slučajni bivarijatni gausov uzorak var_covar = matrica (podaci = c (1,5, 0,3, 0,3, 1,5), nrow = 2) # Slučajni bivarijatni gausov uzorci za klasu + 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)) 

Na gornjoj slici plave točke predstavljaju uzorke iz razreda +1 a crveni predstavljaju uzorak iz razreda -jedan . Između uzoraka postoji neko preklapanje, tj. Klase se ne mogu u potpunosti odvojiti jednostavnom crtom. Drugim riječima, nisu savršeno linearno odvojivi .

Sada ćemo obučiti model LDA koristeći gornje podatke.

# Obučite LDA model pomoću gornjeg skupa podataka lda_model<- lda(Y ~ X1 + X2, data = dataset) #Print the LDA model lda_model 

Izlaz:

spajanje programa sortiranja u javi

Prethodne vjerojatnosti skupina:

-jedanaest

0,6 0,4

Grupa znači:

X1 X2

-1 1,928108 2,010226

1 5.961004 6.015438

Koeficijenti linearnih diskriminatora:

LD1

X1 0,5646116

X2 0,5004175

Kao što se može vidjeti, sredstva klase koja je model naučio su (1.928108, 2.010226) za razred -jedan i (5.961004, 6.015438) za nastavu +1 . Ta su sredstva vrlo bliska sredstvima klase koja smo koristili za generiranje tih slučajnih uzoraka. Prethodna vjerojatnost za grupu +1 je procjena za parametar str . The b vektor je linearni diskriminativni koeficijenti.

Sada ćemo koristiti gornji model za predviđanje oznaka klasa za iste podatke.

# Predviđanje klase za svaki uzorak u gornjem skupu podataka pomoću LDA modela 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))

Na gornjoj slici, ljubičasti uzorci su iz razreda +1 koji su pravilno klasificirani prema modelu LDA. Slično tome, crveni uzorci su iz razreda -jedan koji su ispravno klasificirani. Oni plavi su iz razreda +1 ali su pogrešno klasificirani kao -jedan . Zeleni su iz razreda -jedan koji su pogrešno klasificirani kao +1 . Pogrešno klasificiranje događa se jer su ti uzorci bliži srednjoj vrijednosti druge klase (središtu) od stvarne srednje vrijednosti klase.

Ovo nas dovodi do kraja ovog članka, pogledajte Edureka, pouzdane tvrtke za internetsko učenje s mrežom od više od 250 000 zadovoljnih učenika raširenih širom svijeta. Edurekina analiza podataka s R obukom pomoći će vam da steknete stručnost u programiranju programa R, manipulacijom podacima, istraživačkom analizom podataka, vizualizacijom podataka, rudarstvom podataka, regresijom, analizom raspoloženja i korištenjem R Studio-a za studije stvarnih slučajeva na malo, društvenim medijima.

Imate pitanje za nas? Molimo navedite ga u odjeljku za komentare ovog članka i javit ćemo vam se što je prije moguće.