Kako izvesti linearno diskriminatorno analizo v R?



Ta članek vam bo povedal, kaj je linearna diskriminatorna analiza, in tudi podroben prikaz z uporabo programskega jezika R.

Linearna diskriminatorna analiza je zelo priljubljena tehnika strojnega učenja, ki se uporablja za reševanje problemov s klasifikacijo. V tem članku bomo poskušali razumeti intuicijo in matematiko, ki sta v ozadju te tehnike. Primer izvajanja LDA v R je tudi na voljo.

Začnimo torej





Predpostavka linearne diskriminatorne analize

Linearna diskriminatorna analiza temelji na naslednjih predpostavkah:

  • Odvisna spremenljivka Y. je diskreten. V tem članku bomo domnevali, da je odvisna spremenljivka binarna in ima vrednosti razredov {+1, -1} . Verjetnost vzorca, ki pripada razredu +1 , tj P (Y = +1) = str . Zato je verjetnost vzorca, ki pripada razredu -Eno je 1-str .



  • Neodvisne spremenljivke X prihajajo iz Gaussovih distribucij. Srednja vrednost gausove porazdelitve je odvisna od oznake razreda Y. . torej če Y. jaz = +1 , nato srednja vrednost X jaz je & # 120583 +1 , sicer je & # 120583 -Eno . Variacija & # 120590 2. je enako za oba razreda. Matematično gledano, X | (Y = +1) ~ N (& # 120583 +1 , & # 120590 2. ) in X | (Y = -1) ~ N (& # 120583 -Eno , & # 120590 2. ) , kje N označuje normalno porazdelitev.

    saltstack vs lutka vs chef

S temi informacijami je mogoče zgraditi skupno distribucijo P (X, Y) za neodvisno in odvisno spremenljivko. Zato LDA spada v razred Modeli generativnih klasifikatorjev . Tesno povezan generativni klasifikator je Quadratic Discriminant Analysis (QDA). Temelji na enakih predpostavkah LDA, le da so razlike v razredu različne.

Nadaljujmo s člankom o linearni diskriminatorni analizi in poglejmo

Intuicija

Razmislimo o pogojni gausovi porazdelitvi razreda za X glede na razred Y. . Spodnja slika prikazuje funkcije gostote porazdelitev. Na tej sliki, če Y = +1 , nato srednja vrednost X je 10 in če Y = -1 , povprečje je 2. V obeh primerih je varianca 2.

intuicija - Analiza linearne diskriminacije - Edureka

Zdaj pa predpostavimo novo vrednost X nam je dana. Označimo jo samo kot x jaz . Naloga je določiti najverjetnejšo oznako razreda za to x jaz , tj. Y. jaz . Zaradi enostavnosti predpostavimo, da je verjetnost str vzorca, ki spada v razred +1 je enaka pripadnosti razredu -Eno , tj. p = 0,5 .

Intuitivno je smiselno reči, da če x jaz je bližje & # 120583 +1 kot je & # 120583 -Eno , potem je bolj verjetno, da Y. jaz = +1 . Bolj formalno, Y. jaz = +1 če:

| x jaz - & # 120583 +1 |<|x jaz - & # 120583 -Eno |

Normaliziranje obeh strani s standardnim odklonom:

| x jaz - & # 120583 +1 | / & # 120590<|x jaz - & # 120583 -Eno | / & # 120590

Kvadriranje obeh strani:

(x jaz - & # 120583 +1 ) 2. / & # 120590 2. <(x jaz - & # 120583 -Eno ) 2. / & # 120590 2.

x jaz 2. / & # 120590 2. + & # 120583 +1 2. / & # 120590 2. - 2 x jaz & # 120583 +1 / & # 120590 2. jaz 2. / & # 120590 2. + & # 120583 -Eno 2. / & # 120590 2. - 2 x jaz & # 120583 -Eno / & # 120590 2.

2 x jaz (& # 120583 -Eno - & # 120583 +1 ) / & # 120590 2. - (& # 120583 -Eno 2. / & # 120590 2. - & # 120583 +1 2. / & # 120590 2. )<0

-2 x jaz (& # 120583 -Eno - & # 120583 +1 ) / & # 120590 2. + (& # 120583 -Eno 2. / & # 120590 2. - & # 120583 +1 2. / & # 120590 2. )> 0

Zgornji izraz je oblike bx jaz + c> 0 kje b = -2 (& # 120583 -Eno - & # 120583 +1 ) / & # 120590 2. in c = (& # 120583 -Eno 2. / & # 120590 2. - & # 120583 +1 2. / & # 120590 2. ) .

Očitno je, da je oblika enačbe linearno , od tod tudi ime Linear Discriminant Analysis.

Nadaljujmo s člankom o linearni diskriminatorni analizi in poglejmo,

Matematični opis LDA

Matematična izpeljava izraza za LDA temelji na pojmih Bayesovo pravilo in Bayesov optimalni klasifikator . Zainteresirane bralce pozivamo, da preberejo več o teh konceptih. Najdemo en način za izpeljavo izraza tukaj .

Izraz bomo podali neposredno za naš konkreten primer, kjer Y. ima dva razreda {+1, -1} . Intuicijo, prikazano v prejšnjem oddelku, bomo razširili tudi na splošni primer, kjer X je lahko večdimenzionalen. Recimo, da obstajajo do neodvisne spremenljivke. V tem primeru razred pomeni & # 120583 -Eno in & # 120583 +1 bi bili vektorji dimenzij k * 1 in matrika variance-kovarianca & # 120622 bi bila matrika dimenzij k * k .

Funkcija klasifikatorja je podana kot

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

Kje,

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

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

Funkcija predznaka se vrne +1 če je izraz b T x + c> 0 , sicer se vrne -Eno . Naravni izraz v c je prisoten, da se prilagodi dejstvu, da verjetnosti razreda ni nujno enaka za oba razreda, tj. str je lahko katera koli vrednost med (0, 1) in ne samo 0,5.

kakšna je razlika med css in css3

Učenje parametrov modela

Glede na nabor podatkov z N podatkovne točke (x eno , Y eno ), (x 2. , Y 2. ),… (X n , Y n ) , moramo oceniti p, & # 120583 -Eno , & # 120583 +1 in & # 120622 . Imenuje se tehnika statističnega ocenjevanja Ocena največje verjetnosti se uporablja za oceno teh parametrov. Izrazi za zgornje parametre so podani spodaj.

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

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

p = N +1 / N

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

Kje N +1 = število vzorcev, kjer je y jaz = +1 in N -Eno = število vzorcev, kjer je y jaz = -1 .

Z zgornjimi izrazi je model LDA popoln. Parametre modela lahko ocenimo z uporabo zgornjih izrazov in jih uporabimo v funkciji klasifikatorja, da dobimo oznako razreda katere koli nove vhodne vrednosti neodvisne spremenljivke X .

Nadaljujmo s člankom o linearni diskriminatorni analizi in poglejmo

Primer v R

Naslednja koda ustvari navidezni nabor podatkov z dvema neodvisnima spremenljivkama X1 in X2 in odvisna spremenljivka Y. . Za X1 in X2 , bomo s sredstvi ustvarili vzorec iz dveh multivariatnih gausovskih porazdelitev & # 120583 -Eno = (2, 2) in & # 120583 +1 = (6, 6) . 40% vzorcev spada v razred +1 in 60% jih pripada razredu -Eno , torej p = 0,4 .

knjižnica (ggplot2) knjižnica (MASS) knjižnica (mvtnorm) #Variance kovariančna matrika za naključni bivariatni gausov vzorec var_covar = matrica (podatki = c (1,5, 0,3, 0,3, 1,5), nrow = 2) # Naključni bivariacijski gausov vzorci za razred + 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 zgornji sliki modre pike predstavljajo vzorce iz razreda +1 rdeči pa predstavljajo vzorec iz predavanja -Eno . Med vzorci se nekaj prekriva, torej razredov ni mogoče popolnoma ločiti s preprosto vrstico. Z drugimi besedami, niso popolnoma linearno ločljiv .

Zdaj bomo na podlagi zgornjih podatkov usposobili model LDA.

# Usposobite model LDA z uporabo zgornjega nabora podatkov lda_model<- lda(Y ~ X1 + X2, data = dataset) #Print the LDA model lda_model 

Izhod:

Predhodne verjetnosti skupin:

-enajst

0,6 0,4

Skupina pomeni:

X1 X2

-1 1,928108 2,010226

1 5.961004 6.015438

Koeficienti linearnih diskriminatorjev:

LD1

X1 0,5646116

X2 0,5004175

Kot lahko vidimo, so sredstva razreda, ki se jih nauči model, (1.928108, 2.010226) za razred -Eno in (5.961004, 6.015438) za razred +1 . Ta sredstva so zelo blizu razrednih sredstev, ki smo jih uporabili za generiranje teh naključnih vzorcev. Predhodna verjetnost za skupino +1 je ocena parametra str . The b vektor je linearni diskriminacijski koeficient.

Zdaj bomo uporabili zgornji model za napovedovanje oznak razredov za iste podatke.

# Napovedovanje razreda za vsak vzorec v zgornjem naboru podatkov z uporabo modela 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))

Na zgornji sliki so vijolični vzorci iz razreda +1 ki jih je model LDA pravilno razvrstil. Podobno so rdeči vzorci iz razreda -Eno ki so bile pravilno razvrščene. Modri ​​so iz razreda +1 vendar so bili nepravilno razvrščeni kot -Eno . Zeleni so iz razreda -Eno ki so bili napačno razvrščeni kot +1 . Napačne razvrstitve se dogajajo, ker so ti vzorci bližje drugi srednji vrednosti razreda (središču) kot njihovi dejanski srednji vrednosti razreda.

To nas pripelje do konca tega članka, oglejte si Edureka, zaupanja vredno podjetje za spletno učenje z mrežo več kot 250.000 zadovoljnih učencev, ki se širijo po vsem svetu. Edurekina podatkovna analitika z izobraževanjem R vam bo pomagala pridobiti znanje o programiranju R, manipulaciji s podatki, raziskovalni analizi podatkov, vizualizaciji podatkov, rudarjenju podatkov, regresiji, analizi sentimenta in uporabi R Studio za resnične študije primerov na področju maloprodaje, socialnih medijev.

Imate vprašanje za nas? Prosimo, omenite ga v oddelku za komentarje tega članka in odgovorili vam bomo v najkrajšem možnem času.