Kuidas rakendada lineaarset diskrimineerivat analüüsi R-s?



See artikkel annab teile teada, mis on lineaarne diskrimineeriv analüüs ja annab teile ka üksikasjaliku tutvustuse R-programmeerimiskeele abil.

Lineaarne diskrimineeriv analüüs on väga populaarne masinõppe tehnika, mida kasutatakse klassifitseerimisprobleemide lahendamiseks. Selles artiklis püüame mõista selle tehnika taga olevaid intuitsioone ja matemaatikat. Näide LDA rakendamisest aastal R pakutakse ka.

Alustagem siis





Lineaarse diskrimineeriva analüüsi eeldus

Lineaarne diskrimineeriv analüüs põhineb järgmistel eeldustel:

  • Sõltuv muutuja Y on diskreetne. Selles artiklis eeldame, et sõltuv muutuja on binaarne ja võtab klassi väärtused {+1, -1} . Klassi kuuluva valimi tõenäosus +1 s.t. P (Y = +1) = p . Seetõttu on klassi kuuluva valimi tõenäosus - üks on 1-lk .



  • Sõltumatu (d) muutuja (d) X pärinevad gaussi jaotustest. Gaussi jaotuse keskmine sõltub klassi sildist Y . st kui Y i = +1 , siis keskmine X i on & # 120583 +1 , muidu on & # 120583 - üks . Dispersioon & # 120590 2 on mõlema klassi jaoks sama. Matemaatiliselt öeldes X | (Y = +1) ~ N (& # 120583 +1 , & # 120590 2 ) ja X | (Y = -1) ~ N (& # 120583 - üks , & # 120590 2 ) , kus N tähistab normaalset jaotust.

Selle teabe abil on võimalik koostada ühine levitamine P (X, Y) sõltumatu ja sõltuva muutuja jaoks. Seetõttu kuulub LDA klassi Generatiivsed klassifikaatorimudelid . Tihedalt seotud generatiivne klassifikaator on kvadratiivne diskriminantanalüüs (QDA). See põhineb kõigil samadel LDA eeldustel, välja arvatud see, et klasside erinevused on erinevad.

Jätkame lineaarse diskrimineeriva analüüsi artikliga ja vaadake

Intuitsioon

Mõelgem klassi tingimuslikele gaussi jaotustele X klassile antud Y . Alloleval joonisel on näidatud jaotuste tihedusfunktsioonid. Selles joonisel, kui Y = +1 , siis keskmine X on 10 ja kui Y = -1 , keskmine on 2. Hälve on mõlemal juhul 2.

intuitsioon - lineaarse diskrimineerimise analüüs - Edureka

Oletame nüüd, et uus väärtus on X antakse meile. Tähistame seda lihtsalt kui x i . Ülesanne on kindlaks määrata kõige tõenäolisem klassi silt x i , s.t. Y i . Oletame lihtsuse mõttes, et tõenäosus lk klassi kuuluvast valimist +1 on sama mis klassi kuulumine - üks , s.t. p = 0,5 .

Intuitiivselt on mõttekas öelda, et kui x i on lähemal & # 120583 +1 kui see on & # 120583 - üks , siis on tõenäolisem, et Y i = +1 . Ametlikumalt, Y i = +1 kui:

| x i - & # 120583 +1 |<|x i - & # 120583 - üks |

Mõlema poole normaliseerimine standardhälbega:

milleks nuku kasutatakse

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

Mõlemad pooled ruudukujulised:

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

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

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

Ülaltoodud avaldis on kujul bx i + c> 0 kus b = -2 (& # 120583 - üks - & # 120583 +1 ) / & # 120590 2 ja c = (& # 120583 - üks 2 / & # 120590 2 - & # 120583 +1 2 / & # 120590 2 ) .

On ilmne, et võrrandi vorm on lineaarne , sellest ka nimi Linear Discriminant Analysis.

Jätkame lineaarse diskrimineeriva analüüsi artikliga ja näeme,

LDA matemaatiline kirjeldus

LDA avaldise matemaatiline tuletamine põhineb mõistetel Bayesi reegel ja Bayesi optimaalne klassifikaator . Huvitatud lugejatele soovitatakse nende mõistete kohta rohkem lugeda. Võib leida ühe viisi avaldise tuletamiseks siin .

Pakume avaldise otse meie konkreetseks juhtumiks, kus Y võtab kaks klassi {+1, -1} . Laiendame ka eelmises osas näidatud intuitsiooni üldisele juhtumile, kus X võib olla mitmemõõtmeline. Oletame, et neid on kuni sõltumatud muutujad. Sel juhul tähendab klass & # 120583 - üks ja & # 120583 +1 oleks mõõtmete vektorid k * 1 ja dispersiooni-kovariantsuse maatriks & # 120622 oleks mõõtmete maatriks k * k .

Klassifikaatori funktsioon on antud

Y = h (X) = märk (b T X + c)

Kus

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

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

Märgi funktsioon naaseb +1 kui väljend b T x + c> 0 , muidu naaseb - üks . Looduslik logitermin aastal c on kohal, et kohaneda asjaoluga, et klassi tõenäosused ei pea olema mõlema klassi jaoks võrdsed, s.t. lk võib olla mis tahes väärtus vahemikus (0, 1) ja mitte ainult 0,5.

Mudeli parameetrite õppimine

Antud andmestik koos N andmepunktid (x üks , Y üks ), (x 2 , Y 2 ),… (X n , Y n ) , peame hindama p, & # 120583 - üks , & # 120583 +1 ja & # 120622 . Statistilise hindamise tehnika, mida nimetatakse Suurima tõenäosuse hinnang kasutatakse nende parameetrite hindamiseks. Ülaltoodud parameetrite avaldised on toodud allpool.

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

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

sõnastiku andmete struktuur javas

p = N +1 / N

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

Kus N +1 = proovide arv, kus y i = +1 ja N - üks = proovide arv, kus y i = -1 .

Ülaltoodud väljenditega on LDA mudel täielik. Mudeli parameetreid saab hinnata ülaltoodud avaldiste abil ja kasutada neid klassifikaatori funktsioonis, et saada sõltumatu muutuja mis tahes uue sisendväärtuse klassi silt X .

Jätkame lineaarse diskrimineeriva analüüsi artikliga ja vaadake

Näide R-s

Järgmine kood genereerib kahe sõltumatu muutujaga näivandmekogumi X1 ja X2 ja sõltuv muutuja Y . Sest X1 ja X2 , genereerime keskmise abil valimi kahest mitmemõõtmelisest gaussist jaotusest & # 120583 - üks = (2, 2) ja & # 120583 +1 = (6, 6) . 40% proovidest kuulub klassi +1 ja 60% kuulub klassi - üks seega p = 0,4 .

library (ggplot2) library (MASS) library (mvtnorm) # Variandi kovariantsimaatriks juhusliku kahemõõtmelise gaussianalüüsi var_covar = maatriks (andmed = c (1,5, 0,3, 0,3, 1,5), now = 2) #juhuslikud kahemuutujaga gaussi proovid + 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)) 

Ülaltoodud joonisel tähistavad sinised täpid klassi proove +1 ja punased tähistavad klassi valimit - üks . Valimite vahel on teatud kattuvus, st lihtsa joonega ei saa klasse täielikult eraldada. Teisisõnu pole need ideaalsed lineaarselt eraldatav .

Koolitame nüüd ülaltoodud andmeid kasutades välja LDA mudeli.

# Harjutage LDA mudelit, kasutades ülaltoodud andmekogumit lda_model<- lda(Y ~ X1 + X2, data = dataset) #Print the LDA model lda_model 

Väljund:

Rühmade eelnevad tõenäosused:

- üksteist

0,6 0,4

Grupp tähendab:

X1 X2

-1 1,928108 2,010226

1 5.961004 6.015438

Lineaarsete diskrimineerijate koefitsiendid:

LD1

X1 0,5646116

X2 0,5004175

Nagu näha, on mudeli järgi õpitud klassivahendid klassi jaoks (1.928108, 2.010226) - üks ja (5.961004, 6.015438) klassile +1 . Need vahendid on väga lähedased klassivahenditele, mida olime nende juhuslike proovide genereerimiseks kasutanud. Rühma eelnev tõenäosus +1 on parameetri hinnang lk . The b vektor on lineaarsed diskrimineerivad koefitsiendid.

Nüüd kasutame ülaltoodud mudelit samade andmete klassisiltide ennustamiseks.

# Ülaltoodud andmekogumi iga valimi klassi ennustamine, kasutades LDA mudelit 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))

Ülaltoodud joonisel on violetsed proovid klassist +1 mis olid LDA mudeli järgi õigesti klassifitseeritud. Samamoodi on punased proovid klassist - üks mis olid õigesti klassifitseeritud. Sinised on klassist +1 kuid klassifitseeriti valesti - üks . Rohelised on klassist - üks mis valesti klassifitseeriti +1 . Vale klassifikatsioon toimub seetõttu, et need valimid on lähemal teise klassi keskmele (keskpunktile) kui nende tegelik klassi keskmine.

See viib meid selle artikli lõppu, vaadake Edureka, usaldusväärne veebiõppeettevõte, mille võrgustik hõlmab üle 250 000 rahuloleva õppija, levinud üle kogu maailma. Edureka R-koolitusega andmeanalüüs aitab teil saada teadmisi R-i programmeerimise, andmetega manipuleerimise, uuriva andmete analüüsi, andmete visualiseerimise, andmekaevanduse, regressiooni, meeleolude analüüsi ja R Studio kasutamise kohta reaalses elus juhtumiuuringutena jaemüügis, sotsiaalmeedias.

Kas teil on meile küsimus? Palun mainige seda selle artikli kommentaaride jaotises ja võtame teiega ühendust niipea kui võimalik.