Ako implementovať lineárnu diskriminačnú analýzu v R?



Tento článok vám povie, čo je lineárna diskriminačná analýza, a tiež vám poskytne podrobnú ukážku pomocou programovacieho jazyka R.

Lineárna diskriminačná analýza je veľmi populárna technika strojového učenia, ktorá sa používa na riešenie problémov s klasifikáciou. V tomto článku sa pokúsime pochopiť intuíciu a matematiku, ktorá stojí za touto technikou. Príklad implementácie LDA v R je tiež poskytovaná.

Poďme teda do toho





Predpoklad lineárnej diskriminačnej analýzy

Lineárna diskriminačná analýza je založená na nasledujúcich predpokladoch:

  • Závislá premenná Y. je diskrétny. V tomto článku budeme predpokladať, že závislá premenná je binárna a má hodnoty triedy {+1, -1} . Pravdepodobnosť vzorky patriacej do triedy +1 , t.j. P (Y = +1) = str . Preto pravdepodobnosť vzorky patriacej do triedy -jeden je 1-str .



  • Nezávislá premenná X pochádzajú z gaussovských distribúcií. Priemer gaussovského rozdelenia závisí od štítku triedy Y. . teda ak Y. i = +1 , potom stredná hodnota z X i je & # 120583 +1 , inak to je & # 120583 -jeden . Rozptyl & # 120590 2 je pre obe triedy rovnaká. Matematicky povedané, X | (Y = +1) ~ N (& # 120583 +1 , & # 120590 2 ) a X | (Y = -1) ~ N (& # 120583 -jeden , & # 120590 2 ) , kde N označuje normálne rozdelenie.

S týmito informáciami je možné zostaviť spoločnú distribúciu P (X, Y) pre nezávislú a závislú premennú. Preto patrí LDA do triedy Modely generatívneho klasifikátora . Blízko príbuzným generatívnym klasifikátorom je Kvadratická diskriminačná analýza (QDA). Je založený na všetkých rovnakých predpokladoch LDA, až na to, že rozdiely v triedach sú odlišné.

Pokračujme v článku Lineárna diskriminačná analýza a uvidíme

Intuícia

Zvážte triedne podmienené gaussovské distribúcie pre X vzhľadom na triedu Y. . Na nasledujúcom obrázku sú znázornené hustotné funkcie rozdelení. Na tomto obrázku, ak Y = +1 , potom stredná hodnota z X je 10 a ak Y = -1 , priemer je 2. Rozptyl je v obidvoch prípadoch 2.

intuícia - Analýza lineárnej diskriminácie - Edureka

Teraz predpokladajme novú hodnotu X je nám dané. Označme to ako X i . Úlohou je určiť najpravdepodobnejší štítok triedy X i , t.j. Y. i . Pre jednoduchosť predpokladajme, že pravdepodobnosť p vzorky patriacej do triedy +1 je to isté ako príslušnosť k triede -jeden , t.j. p = 0,5 .

Intuitívne má zmysel povedať, že ak X i je bližšie k & # 120583 +1 ako to je & # 120583 -jeden , potom je pravdepodobnejšie, že Y. i = +1 . Formálnejšie, Y. i = +1 ak:

| x i - & # 120583 +1 |<|x i - & # 120583 -jeden |

Normalizácia oboch strán štandardnou odchýlkou:

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

Zarovnanie oboch strán:

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

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

ako to urobiť s mocou v

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

Vyššie uvedený výraz má formu bx i + c> 0 kde b = -2 (& # 120583 -jeden - & # 120583 +1 ) / & # 120590 2 a c = (& # 120583 -jeden 2 / & # 120590 2 - & # 120583 +1 2 / & # 120590 2 ) .

Je zrejmé, že tvar rovnice je lineárny , odtiaľ pochádza názov Lineárna diskriminačná analýza.

Poďme pokračovať v článku Lineárna diskriminačná analýza a pozrime sa,

Matematický popis LDA

Matematická derivácia výrazu pre LDA je založená na konceptoch ako Bayesovo pravidlo a Bayesov optimálny klasifikátor . Zainteresovaným čitateľom sa odporúča, aby si prečítali viac o týchto konceptoch. Jeden spôsob, ako odvodiť výraz, je možné nájsť tu .

Poskytneme výraz priamo pre náš konkrétny prípad, keď Y. trvá dve triedy {+1, -1} . Intuíciu zobrazenú v predchádzajúcej časti tiež rozšírime na všeobecný prípad, keď X môže byť viacrozmerný. Povedzme, že existujú k nezávislé premenné. V tomto prípade trieda znamená & # 120583 -jeden a & # 120583 +1 by boli vektormi dimenzií k * 1 a variančno-kovariančná matica & # 120622 by bola maticou rozmerov k * k .

Funkcia klasifikátora je uvedená ako

Y = h (X) = znamienko (nar T X + c)

Kde,

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

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

rámec riadený údajmi v príklade webového ovládača selénu

Znaková funkcia sa vráti +1 ak výraz b T x + c> 0 , inak sa vráti -jeden . Prirodzený logovací termín v c je prítomný na prispôsobenie sa skutočnosti, že pravdepodobnosti tried nemusia byť rovnaké pre obe triedy, t. p môže byť ľubovoľná hodnota v rozmedzí (0, 1), nielen 0,5.

Osvojenie si parametrov modelu

Vzhľadom na súbor údajov s N dátové body (X jeden , Y jeden ), (X 2 , Y 2 ),… (X n , Y n ) , musíme odhadnúť p, & # 120583 -jeden , & # 120583 +1 a & # 120622 . Technika štatistického odhadu tzv Odhad maximálnej pravdepodobnosti sa používa na odhad týchto parametrov. Výrazy pre vyššie uvedené parametre sú uvedené nižšie.

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

& # 120583 -jeden = (1 / N -jeden ) * & # 120506 i: yi = -1 X i

p = N +1 / N

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

Kde N +1 = počet vzoriek, kde r i = +1 a N -jeden = počet vzoriek, kde r i = -1 .

S vyššie uvedenými výrazmi je model LDA kompletný. Pomocou vyššie uvedených výrazov je možné odhadnúť parametre modelu a použiť ich vo funkcii klasifikátora na získanie označenia triedy pre každú novú vstupnú hodnotu nezávislej premennej. X .

Pokračujme v článku Lineárna diskriminačná analýza a uvidíme

Príklad v R.

Nasledujúci kód generuje fiktívnu množinu údajov s dvoma nezávislými premennými X1 a X2 a závislá premenná Y. . Pre X1 a X2 , pomocou prostriedkov vygenerujeme vzorku z dvoch viacrozmerných gaussovských distribúcií & # 120583 -jeden = (2, 2) a & # 120583 +1 = (6, 6) . 40% vzoriek patrí do triedy +1 a 60% patrí do triedy -jeden , preto p = 0,4 .

knižnica (ggplot2) knižnica (MASS) knižnica (mvtnorm) # Variancia Kovariančná matica pre náhodnú dvojrozmernú gaussovu vzorku var_covar = matica (údaje = c (1,5, 0,3, 0,3, 1,5), nrow = 2) # Náhodné dvojrozmerné gaussovské vzorky pre triedu + 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 vyššie uvedenom obrázku predstavujú modré bodky vzorky z triedy +1 a červené predstavujú vzorku z triedy -jeden . Medzi vzorkami existuje určité prekrytie, to znamená, že triedy nemožno úplne oddeliť jednoduchou čiarou. Inými slovami, nie sú úplne dokonalé lineárne oddeliteľné .

Teraz pomocou vyššie uvedených údajov trénujeme model LDA.

# Trénujte model LDA pomocou vyššie uvedenej množiny údajov lda_model<- lda(Y ~ X1 + X2, data = dataset) #Print the LDA model lda_model 

Výkon:

Predchádzajúce pravdepodobnosti skupín:

-jedenásť

0,6 0,4

Skupina znamená:

X1 X2

-1 1,928108 2,010226

1 5,96 1004 6,015438

Koeficienty lineárnych diskriminátorov:

LD1

X1 0,5646116

X2 0,5004175

Ako vidno, triedne prostriedky, ktoré sa model naučil, sú pre triedu (1,928108, 2,010226) -jeden a (5,961004; 6,015438) pre triedu +1 . Tieto prostriedky sú veľmi blízke triednym prostriedkom, ktoré sme použili na generovanie týchto náhodných vzoriek. Predchádzajúca pravdepodobnosť pre skupinu +1 je odhad parametra p . The b vektor je lineárny diskriminačný koeficient.

Vyššie uvedený model teraz použijeme na predikciu označení triedy pre rovnaké údaje.

vysvetliť rozdiel medzi premenlivými a nemennými objektmi.
# Predpovedanie triedy pre každú vzorku vo vyššie uvedenom súbore údajov pomocou modelu 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 vyššie uvedenom obrázku sú fialové vzorky z triedy +1 ktoré boli správne klasifikované modelom LDA. Podobne sú červené vzorky z triedy -jeden ktoré boli klasifikované správne. Modré sú z triedy +1 ale boli klasifikované nesprávne ako -jeden . Zelené sú z triedy -jeden ktoré boli nesprávne klasifikované ako +1 . K nesprávnej klasifikácii dochádza, pretože tieto vzorky sú bližšie k priemeru druhej triedy (stredu) ako k ich skutočnému priemeru triedy.

Týmto sa dostávame na koniec tohto článku, pozrite si autor: Edureka, dôveryhodná online vzdelávacia spoločnosť so sieťou viac ako 250 000 spokojných študentov rozmiestnených po celom svete. Školenie Edureka Data Analytics with R vám pomôže získať odborné znalosti v oblasti programovania R, manipulácie s dátami, prieskumnej analýzy dát, vizualizácie dát, dolovania dát, regresie, analýzy sentimentu a používania R Studio pre prípadové štúdie z reálneho života v oblasti maloobchodu a sociálnych médií.

Máte na nás otázku? Uveďte to prosím v sekcii komentárov tohto článku a my sa vám ozveme čo najskôr.