Com implementar l’anàlisi discriminant lineal a R?



Aquest article us explicarà què és l’anàlisi discriminant lineal i també us proporcionarà una demostració detallada mitjançant el llenguatge de programació R.

L’anàlisi discriminant lineal és una tècnica d’aprenentatge automàtic molt popular que s’utilitza per resoldre problemes de classificació. En aquest article intentarem entendre la intuïció i les matemàtiques darrere d’aquesta tècnica. Un exemple d 'implementació de LDA a R també es proporciona.

Comencem doncs





Assumpció d’anàlisi discriminant lineal

L’anàlisi discriminant lineal es basa en els supòsits següents:

  • La variable dependent I és discret. En aquest article assumirem que la variable dependent és binària i pren valors de classe {+ 1, -1} . La probabilitat que una mostra pertanyi a la classe +1 , és a dir P (I = +1) = p . Per tant, la probabilitat que una mostra pertanyi a la classe -1 és 1-pàg .



  • Les variables independents X provenen de distribucions gaussianes. La mitjana de la distribució gaussiana depèn de l'etiqueta de la classe I . és a dir, si I jo = +1 , llavors la mitjana de X jo és & # 120583 +1 , sinó és així & # 120583 -1 . La variància & # 120.590 2 és el mateix per a les dues classes. Matemàticament parlant, X | (I = +1) ~ N (& # 120583 +1 , & # 120.590 2 ) i X | (I = -1) ~ N (& # 120583 -1 , & # 120.590 2 ) , on N denota la distribució normal.

Amb aquesta informació és possible construir una distribució conjunta P (X, Y) per a la variable independent i dependent. Per tant, LDA pertany a la classe de Models classificadors generatius . Un classificador generatiu estretament relacionat és l’Anàlisi Discriminant Quadràtica (QDA). Es basa en tots els mateixos supòsits de LDA, excepte que les variàncies de classe són diferents.

Continuem amb l'article d'Anàlisi discriminant lineal i vegeu

La intuïció

Penseu en les distribucions gaussianes condicionals de classe per a X donada la classe I . La figura següent mostra les funcions de densitat de les distribucions. En aquesta figura, si I = +1 , llavors la mitjana de X és 10 i si I = -1 , la mitjana és 2. La variància és 2 en ambdós casos.

intuïció - Anàlisi de la discriminació lineal - Edureka

Ara suposem un nou valor de X se’ns dóna. Només el podem denotar com a x jo . La tasca consisteix a determinar l’etiqueta de classe més probable per a això x jo , és a dir, i jo . Per simplicitat, suposem que la probabilitat pàg de la mostra pertanyent a la classe +1 és el mateix que pertànyer a classe -1 , és a dir, p = 0,5 .

Intuïtivament, té sentit dir que si x jo està més a prop de & # 120583 +1 del que ho és & # 120583 -1 , llavors és més probable que i jo = +1 . Més formalment, i jo = +1 si:

| x jo - & # 120583 +1 |<|x jo - & # 120583 -1 |

Normalització dels dos costats per la desviació estàndard:

| x jo - & # 120583 +1 | / & # 120.590<|x jo - & # 120583 -1 | / & # 120.590

Quadrant els dos costats:

llista de classificació de c ++

(x jo - & # 120583 +1 ) 2 / & # 120.590 2 <(x jo - & # 120583 -1 ) 2 / & # 120.590 2

x jo 2 / & # 120.590 2 + & # 120583 +1 2 / & # 120.590 2 - 2 x jo & # 120583 +1 / & # 120.590 2 jo 2 / & # 120.590 2 + & # 120583 -1 2 / & # 120.590 2 - 2 x jo & # 120583 -1 / & # 120.590 2

2 x jo (& # 120583 -1 - & # 120583 +1 ) / & # 120.590 2 - (& # 120583 -1 2 / & # 120.590 2 - & # 120583 +1 2 / & # 120.590 2 )<0

-2 x jo (& # 120583 -1 - & # 120583 +1 ) / & # 120.590 2 + (& # 120583 -1 2 / & # 120.590 2 - & # 120583 +1 2 / & # 120.590 2 )> 0

L’expressió anterior és de la forma bx jo + C> 0 on b = -2 (& # 120583 -1 - & # 120583 +1 ) / & # 120.590 2 i c = (& # 120583 -1 2 / & # 120.590 2 - & # 120583 +1 2 / & # 120.590 2 ) .

És evident que la forma de l’equació és lineal , d’aquí el nom d’Anàlisi Discriminant Lineal.

Continuem amb l'article d'Anàlisi discriminant lineal i vegem,

Descripció matemàtica de LDA

La derivació matemàtica de l'expressió per LDA es basa en conceptes com Regla de Bayes i Classificador òptim de Bayes . Es recomana als lectors interessats a llegir més sobre aquests conceptes. Es pot trobar una manera de derivar l’expressió aquí .

Proporcionarem l’expressió directament per al nostre cas concret on I fa dues classes {+ 1, -1} . També ampliarem la intuïció que es mostra a la secció anterior al cas general on X pot ser multidimensional. Diguem que n’hi ha a variables independents. En aquest cas, la classe significa & # 120583 -1 i & # 120583 +1 serien vectors de dimensions k * 1 i la matriu de variància-covariància & # 120.622 seria una matriu de dimensions k * k .

La funció classificador es dóna com

I = h (X) = sign (b T X + c)

On,

b = -2 & # 120.622 -1 (& # 120583 -1 - & # 120583 +1 )

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

Torna la funció de signe +1 si l’expressió b T x + c> 0 , en cas contrari, torna -1 . El terme d’inici de sessió natural c està present per ajustar-se al fet que les probabilitats de classe no han de ser iguals per a les dues classes, és a dir, pàg podria ser qualsevol valor entre (0, 1) i no només 0,5.

Aprendre els paràmetres del model

S'ha donat un conjunt de dades amb N punts de dades (x 1 , i 1 ), (X 2 , i 2 ), ... (x n , i n ) , hem d’estimar p, i # 120583 -1 , & # 120583 +1 i & # 120.622 . Una tècnica d'estimació estadística anomenada Estimació de màxima versemblança s’utilitza per estimar aquests paràmetres. Les expressions dels paràmetres anteriors es donen a continuació.

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

& # 120583 -1 = (1 / N -1 ) * & # 120.506 i: yi = -1 x jo

p = N +1 / N

& # 120622 = (1 / N) * & # 120.506jo = 1: N (x jo - & # 120583 jo ) (X jo - & # 120583 jo ) T

On N +1 = nombre de mostres on y jo = +1 i N -1 = nombre de mostres on y jo = -1 .

Amb les expressions anteriors, el model LDA és complet. Es poden estimar els paràmetres del model utilitzant les expressions anteriors i utilitzar-los a la funció classificador per obtenir l'etiqueta de classe de qualsevol valor d'entrada nou de variable independent X .

Continuem amb l'article d'Anàlisi discriminant lineal i vegeu

Exemple en R

El següent codi genera un conjunt de dades fals amb dues variables independents X1 i X2 i una variable dependent I . Per a X1 i X2 , generarem mostres a partir de dues distribucions gaussianes multivariants amb mitjanes & # 120583 -1 = (2, 2) i & # 120583 +1 = (6, 6) . El 40% de les mostres pertanyen a la classe +1 i el 60% pertanyen a classe -1 , per tant p = 0,4 .

library (ggplot2) library (MASS) library (mvtnorm) # Varietat Matriu de covariància per a mostra gaussiana bivariada aleatòria var_covar = matriu (dades = c (1.5, 0.3, 0.3, 1.5), nrow = 2) # Mostres gaussianes bivariades aleatòries per a classe + 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)) 

A la figura anterior, els punts blaus representen mostres de la classe +1 i els vermells representen la mostra de la classe -1 . Hi ha una certa superposició entre les mostres, és a dir, les classes no es poden separar completament amb una línia simple. En altres paraules, no ho són perfectament separables linealment .

Ara entrenarem un model LDA utilitzant les dades anteriors.

#Entreneu el model LDA mitjançant el conjunt de dades anterior lda_model<- lda(Y ~ X1 + X2, data = dataset) #Print the LDA model lda_model 

Sortida:

Probabilitats anteriors de grups:

-1 1

0.6 0.4

Grup significa:

X1 X2

-1 1.928108 2.010226

1 5.961004 6.015438

Coeficients de discriminants lineals:

LD1

X1 0,5646116

X2 0,5004175

Com es pot veure, els mitjans de classe apresos pel model són (1.928108, 2.010226) per a classe -1 i (5.961004, 6.015438) per a la classe +1 . Aquests mitjans són molt propers als mitjans de classe que havíem utilitzat per generar aquestes mostres aleatòries. La probabilitat prèvia per al grup +1 és l'estimació del paràmetre pàg . El b el vector és el coeficient discriminant lineal.

Ara farem servir el model anterior per predir les etiquetes de classe de les mateixes dades.

#Predicting of the class for each sample in the above dataset using the LDA model 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))

A la figura anterior, les mostres de color porpra són de la classe +1 classificats correctament pel model LDA. De la mateixa manera, les mostres vermelles són de classe -1 classificats correctament. Els blaus són de classe +1 però es van classificar incorrectament com a -1 . Els de color verd són de classe -1 que es van classificar erròniament com a +1 . Les classificacions errònies s’estan produint perquè aquestes mostres estan més a prop de la mitjana de l’altra classe (centre) que la mitjana de classe real.

Això ens porta al final d’aquest article; consulteu el document per Edureka, una empresa d'aprenentatge en línia de confiança amb una xarxa de més de 250.000 estudiants satisfets repartits per tot el món. La formació d’Edureka sobre Analítica de dades amb R us ajudarà a adquirir experiència en programació de R, manipulació de dades, anàlisi exploratòria de dades, visualització de dades, mineria de dades, regressió, anàlisi de sentiments i l’ús de R Studio per a estudis de casos reals sobre venda al detall, xarxes socials.

Tens alguna pregunta? Si us plau, mencioneu-lo a la secció de comentaris d’aquest article i us respondrem el més aviat possible.