Sådan implementeres lineær diskriminerende analyse i R?



Denne artikel fortæller dig, hvad der er lineær diskriminerende analyse, og giver dig også en detaljeret demonstration ved hjælp af R-programmeringssprog.

Lineær diskriminantanalyse er en meget populær Machine Learning-teknik, der bruges til at løse klassificeringsproblemer. I denne artikel vil vi forsøge at forstå intuitionen og matematikken bag denne teknik. Et eksempel på implementering af LDA i R leveres også.

Så lad os komme i gang dengang





Lineær antagelse om diskriminerende analyse

Lineær diskriminantanalyse er baseret på følgende antagelser:

  • Den afhængige variabel Y er diskret. I denne artikel antager vi, at den afhængige variabel er binær og tager klasseværdier {+1, -1} . Sandsynligheden for, at en prøve hører til klassen +1 , dvs. P (Y = +1) = p . Derfor er sandsynligheden for, at en prøve hører til klassen -en er 1-s .



  • Den uafhængige variabel (er) x kommer fra gaussiske fordelinger. Gennemsnittet af den gaussiske fordeling afhænger af klassemærket Y . dvs. hvis Y jeg = +1 , så middelværdien af x jeg er & # 120583 +1 , ellers er det & # 120583 -en . Variationen & # 120590 2 er den samme for begge klasser. Matematisk set, X | (Y = +1) ~ N (& # 120583 +1 & # 120590 2 ) og X | (Y = -1) ~ N (& # 120583 -en & # 120590 2 ) , hvor N angiver normalfordelingen.

Med denne information er det muligt at konstruere en fælles distribution P (X, Y) for den uafhængige og afhængige variabel. Derfor hører LDA til klassen Generative klassificeringsmodeller . En nært beslægtet generativ klassificering er Quadratic Discriminant Analysis (QDA). Det er baseret på alle de samme antagelser fra LDA, bortset fra at klasseafvigelserne er forskellige.

Lad os fortsætte med artiklen Linear Discriminant Analysis og se

Intuition

Overvej klassens betingede gaussiske fordelinger for x givet klassen Y . Nedenstående figur viser densitetsfunktionerne for distributionerne. I denne figur, hvis Y = +1 , så middelværdien af x er 10 og hvis Y = -1 , middelværdien er 2. Variansen er 2 i begge tilfælde.

intuition - Lineær diskrimination analyse - Edureka

Antag nu, at en ny værdi på x er givet til os. Lad os bare betegne det som x jeg . Opgaven er at bestemme den mest sandsynlige klassemærke til dette x jeg , dvs. Y jeg . For nemheds skyld antage, at sandsynligheden s af prøven, der hører til klassen +1 er det samme som at tilhøre klasse -en , dvs. p = 0,5 .

Intuitivt giver det mening at sige, at hvis x jeg er tættere på & # 120583 +1 end det er at & # 120583 -en , så er det mere sandsynligt, at Y jeg = +1 . Mere formelt, Y jeg = +1 hvis:

| x jeg - & # 120583 +1 |<|x jeg - & # 120583 -en |

algoritmer og datastrukturer i java

Normalisering af begge sider ved standardafvigelsen:

| x jeg - & # 120583 +1 | / & # 120590<|x jeg - & # 120583 -en | / & # 120590

Kvadrering af begge sider:

(x jeg - & # 120583 +1 ) 2 / & # 120590 2 <(x jeg - & # 120583 -en ) 2 / & # 120590 2

x jeg 2 / & # 120590 2 + & # 120583 +1 2 / & # 120590 2 - 2 x jeg & # 120583 +1 / & # 120590 2 jeg 2 / & # 120590 2 + & # 120583 -en 2 / & # 120590 2 - 2 x jeg & # 120583 -en / & # 120590 2

2 x jeg (& # 120583 -en - & # 120583 +1 ) / & # 120590 2 - (& # 120583 -en 2 / & # 120590 2 - & # 120583 +1 2 / & # 120590 2 )<0

-2 x jeg (& # 120583 -en - & # 120583 +1 ) / & # 120590 2 + (& # 120583 -en 2 / & # 120590 2 - & # 120583 +1 2 / & # 120590 2 )> 0

Ovenstående udtryk er af formen bx jeg + c> 0 hvor b = -2 (& # 120583 -en - & # 120583 +1 ) / & # 120590 2 og c = (& # 120583 -en 2 / & # 120590 2 - & # 120583 +1 2 / & # 120590 2 ) .

Det er tydeligt, at formen på ligningen er lineær , deraf navnet Linear Discriminant Analysis.

Lad os fortsætte med artiklen Linear Discriminant Analysis og se,

Matematisk beskrivelse af LDA

Den matematiske afledning af udtrykket for LDA er baseret på begreber som Bayes-regel og Bayes Optimal klassifikator . Interesserede læsere opfordres til at læse mere om disse begreber. En måde at udlede udtrykket på findes her .

Vi giver udtrykket direkte til vores specifikke tilfælde hvor Y tager to klasser {+1, -1} . Vi vil også udvide intuitionen vist i det foregående afsnit til det generelle tilfælde hvor x kan være flerdimensionelt. Lad os sige, at der er til uafhængige variabler. I dette tilfælde betyder klassen & # 120583 -en og & # 120583 +1 ville være vektorer med dimensioner k * 1 og varians-kovariansmatrixen & # 120622 ville være en matrix af dimensioner k*k .

Klassificeringsfunktionen er angivet som

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

Hvor,

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

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

Tegnfunktionen vender tilbage +1 hvis udtrykket b T x + c> 0 , ellers vender det tilbage -en . Den naturlige logterm i c er til stede for at justere for det faktum, at klassesandsynlighederne ikke behøver at være ens for begge klasser, dvs. s kunne være en hvilken som helst værdi mellem (0, 1) og ikke kun 0,5.

Læring af modelparametrene

Givet et datasæt med N datapunkter (x en , Y en ), (x 2 , Y 2 ),… (X n , Y n ) , skal vi estimere p, & # 120583 -en & # 120583 +1 og & # 120622 . En statistisk estimeringsteknik kaldet Maksimal sandsynlighedsestimering bruges til at estimere disse parametre. Udtrykkene for ovenstående parametre er angivet nedenfor.

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

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

p = N +1 / N

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

Hvor N +1 = antal prøver, hvor y jeg = +1 og N -en = antal prøver, hvor y jeg = -1 .

Med ovenstående udtryk er LDA-modellen komplet. Man kan estimere modelparametrene ved hjælp af ovenstående udtryk og bruge dem i klassificeringsfunktionen for at få klassemærket til enhver ny inputværdi af uafhængig variabel x .

Lad os fortsætte med artiklen Linear Discriminant Analysis og se

Eksempel i R

Den følgende kode genererer et dummy-datasæt med to uafhængige variabler X1 og X2 og en afhængig variabel Y . Til X1 og X2 , genererer vi prøve fra to multivariate gaussiske fordelinger med midler & # 120583 -en = (2, 2) og & # 120583 +1 = (6, 6) . 40% af prøverne tilhører klasse +1 og 60% tilhører klasse -en , derfor p = 0,4 .

bibliotek (ggplot2) bibliotek (MASS) bibliotek (mvtnorm) #Variance Kovariansmatrix til tilfældig bivariat gaussisk prøve var_covar = matrix (data = c (1,5, 0,3, 0,3, 1,5), nrow = 2) # Random bivariate gaussiske prøver til klasse + 1 Xplus 1<- 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)) 

I ovenstående figur repræsenterer de blå prikker prøver fra klasse +1 og de røde repræsenterer prøven fra klassen -en . Der er en vis overlapning mellem prøverne, dvs. klasserne kan ikke adskilles fuldstændigt med en simpel linje. Med andre ord er de ikke perfekt lineært adskilles .

Vi træner nu en LDA-model ved hjælp af ovenstående data.

#Træn LDA-modellen ved hjælp af ovenstående datasæt lda_model<- lda(Y ~ X1 + X2, data = dataset) #Print the LDA model lda_model 

Produktion:

Tidligere sandsynligheder for grupper:

-elleve

0,6 0,4

Gruppe betyder:

X1 X2

-1 1,928108 2,010226

1 5,961004 6,015438

Koefficienter for lineære diskriminanter:

LD1

X1 0,5646116

X2 0.5004175

Som man kan se, er klassemidlet, som læres af modellen, (1.928108, 2.010226) for klasse -en og (5.961004, 6.015438) til klasse +1 . Disse midler er meget tæt på de klassemetoder, vi havde brugt til at generere disse tilfældige prøver. Den forudgående sandsynlighed for gruppe +1 er estimatet for parameteren s . Det b vektor er de lineære diskriminantkoefficienter.

Vi bruger nu ovenstående model til at forudsige klassemærkerne for de samme data.

#Forudsigelse af klassen for hver prøve i ovenstående datasæt ved hjælp af LDA-modellen 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))

I ovenstående figur er de lilla prøver fra klasse +1 der blev klassificeret korrekt efter LDA-modellen. Tilsvarende er de røde prøver fra klasse -en der var klassificeret korrekt. De blå er fra klassen +1 men blev klassificeret forkert som -en . De grønne er fra klassen -en som blev forklassificeret som +1 . Fejlklassificeringerne sker, fordi disse prøver er tættere på det andet klasses gennemsnit (center) end deres faktiske klasses gennemsnit.

Dette bringer os til slutningen af ​​denne artikel, tjek den af Edureka, et pålideligt online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden. Edurekas dataanalyse med R-træning hjælper dig med at få ekspertise inden for R-programmering, datamanipulation, sonderende dataanalyse, datavisualisering, datamining, regression, sentimentanalyse og brug af R Studio til virkelige casestudier på detailhandel, sociale medier.

typecast dobbelt til int java

Har du et spørgsmål til os? Nævn det i kommentarfeltet i denne artikel, og vi vender tilbage til dig hurtigst muligt.