Hogyan lehet megvalósítani a lineáris diszkrimináns elemzést az R-ben?



Ez a cikk elárulja, mi a lineáris diszkrimináns elemzés, és részletes bemutatást nyújt az R programozási nyelv használatával is.

A lineáris diszkrimináns elemzés egy nagyon népszerű gépi tanulási technika, amelyet osztályozási problémák megoldására használnak. Ebben a cikkben megpróbáljuk megérteni a technika mögött rejlő intuíciót és matematikát. Példa az LDA megvalósítására R szintén biztosított.

Tehát kezdjük el akkor





Lineáris diszkrimináns elemzés feltételezése

A lineáris diszkrimináns elemzés a következő feltételezéseken alapul:

  • A függő változó Y diszkrét. Ebben a cikkben feltételezzük, hogy a függő változó bináris és osztályértékeket vesz fel {+1, -1} . Osztályba tartozó minta valószínűsége +1 azaz P (Y = +1) = p . Ezért az osztályba tartozó minta valószínűsége -egy van 1-p .



  • A független változó (k) x gauss-eloszlásból származnak. A gauss-eloszlás átlaga az osztálycímkétől függ Y . vagyis ha Y én = +1 , akkor a középértéke x én van & # 120583 +1 , másképp van & # 120583 -egy . A variancia & # 120590 2 mindkét osztály esetében ugyanaz. Matematikailag, X | (Y = +1) ~ N (& # 120583 +1 , & # 120590 2 ) és X | (Y = -1) ~ N (& # 120583 -egy , & # 120590 2 ) , hol N a normális eloszlást jelöli.

Ezzel az információval közös disztribúció készíthető P (X, Y) a független és függő változóra. Ezért az LDA a Generatív osztályozó modellek . A szorosan kapcsolódó generatív osztályozó a kvadratikus diszkrimináns elemzés (QDA). Az LDA összes feltételezésén alapul, azzal a különbséggel, hogy az osztályvariánsok eltérőek.

Folytassuk a Linear Discriminant Analysis cikkel, és nézzük meg

Intuíció

Tekintsük az osztály feltételes gauss-eloszlásait x adott az osztály Y . Az alábbi ábra mutatja az eloszlások sűrűségfüggvényeit. Ezen az ábrán, ha Y = +1 , akkor a középértéke x 10 és ha Y = -1 , az átlag értéke 2. A szórás mindkét esetben 2.

intuíció - Lineáris diszkriminációelemzés - Edureka

Most tegyük fel, hogy új értéke x nekünk adatik. Jelöljük csak úgy x én . A feladat ennek legvalószínűbb osztálycímkéjének meghatározása x én , azaz Y én . Tegyük fel, hogy az egyszerűség kedvéért a valószínűség o osztályba tartozó minta +1 azonos az osztályba tartozással -egy , azaz p = 0,5 .

Intuitív módon van értelme azt mondani, hogy ha x én közelebb van & # 120583 +1 mint annak lennie & # 120583 -egy , akkor valószínűbb, hogy Y én = +1 . Formálisabban, Y én = +1 ha:

mutálható osztály java példában

| x én - & # 120583 +1 |<|x én - & # 120583 -egy |

Mindkét oldal normalizálása a szórással:

| x én - & # 120583 +1 | / & # 120590<|x én - & # 120583 -egy | / & # 120590

Mindkét oldal négyzete:

(x én - & # 120583 +1 ) 2 / & # 120590 2 <(x én - & # 120583 -egy ) 2 / & # 120590 2

x én 2 / & # 120590 2 + & # 120583 +1 2 / & # 120590 2 - 2 x én & # 120583 +1 / & # 120590 2 én 2 / & # 120590 2 + & # 120583 -egy 2 / & # 120590 2 - 2 x én & # 120583 -egy / & # 120590 2

2 x én (& # 120583 -egy - & # 120583 +1 ) / & # 120590 2 - (& # 120583 -egy 2 / & # 120590 2 - & # 120583 +1 2 / & # 120590 2 )<0

-2 x én (& # 120583 -egy - & # 120583 +1 ) / & # 120590 2 + (& # 120583 -egy 2 / & # 120590 2 - & # 120583 +1 2 / & # 120590 2 )> 0

A fenti kifejezés formájú bx én + c> 0 hol b = -2 (& # 120583 -egy - & # 120583 +1 ) / & # 120590 2 és c = (& # 120583 -egy 2 / & # 120590 2 - & # 120583 +1 2 / & # 120590 2 ) .

szakács vs báb vs jenkins

Nyilvánvaló, hogy az egyenlet formája lineáris , ezért a Linear Discriminant Analysis elnevezés.

Folytassuk a Linear Discriminant Analysis cikkel, és nézzük meg,

Az LDA matematikai leírása

Az LDA kifejezés matematikai levezetése olyan fogalmakon alapszik Bayes-szabály és Bayes optimális osztályozó . Az érdeklődő olvasókat javasoljuk, hogy olvassanak többet ezekről a fogalmakról. A kifejezés levezetésének egyik módja megtalálható itt .

A kifejezést közvetlenül az adott esetünkre adjuk meg, ahol Y két osztályba jár {+1, -1} . Az előző részben bemutatott intuíciót kiterjesztjük arra az általános esetre is, ahol x lehet többdimenziós. Mondjuk, hogy vannak nak nek független változók. Ebben az esetben az osztály azt jelenti & # 120583 -egy és & # 120583 +1 dimenzióvektorok lennének k * 1 és a variancia-kovariancia mátrix & # 120622 dimenziómátrix lenne k * k .

Az osztályozó függvény a következő

Y = h (X) = előjel (b T X + c)

Hol,

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

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

Az előjel függvény visszatér +1 ha a kifejezés b T x + c> 0 , különben visszatér -egy . A természetes log kifejezés c jelen van annak igazításához, hogy az osztály valószínűségeinek nem kell egyenlőnek lenniük mindkét osztály esetében, azaz o bármilyen érték lehet (0, 1), és nem csak 0,5.

A modellparaméterek megtanulása

Adott adatkészlet a N adat pontok (x egy , Y egy ), (x 2 , Y 2 ),… (X n , Y n ) , meg kell becsülnünk p, & # 120583 -egy , & # 120583 +1 és & # 120622 . Az úgynevezett statisztikai becslési technika A legnagyobb valószínűség becslése ezen paraméterek becslésére szolgál. A fenti paraméterek kifejezéseit az alábbiakban adjuk meg.

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

& # 120583 -egy = (1 / N -egy ) * & # 120506 i: yi = -1 x én

p = N +1 / N

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

Hol N +1 = a minták száma, ahol y én = +1 és N -egy = a minták száma, ahol y én = -1 .

A fenti kifejezésekkel az LDA modell teljes. Meg lehet becsülni a modell paramétereit a fenti kifejezések felhasználásával, és felhasználhatjuk őket az osztályozó függvénybe, hogy megkapjuk a független változó bármely új bemeneti értékének osztálycímkéjét x .

Folytassuk a Linear Discriminant Analysis cikkel, és nézzük meg

Példa az R-re

A következő kód két, egymástól független változóval rendelkező dummy adatsort generál X1 és X2 és egy függő változó Y . Mert X1 és X2 , két többváltozós gausus-eloszlásból fogunk átlagot generálni & # 120583 -egy = (2, 2) és & # 120583 +1 = (6, 6) . A minták 40% -a osztályba tartozik +1 60% pedig osztályba tartozik -egy , ebből adódóan p = 0,4 .

library (ggplot2) library (MASS) library (mvtnorm) # Variance Kovariance mátrix véletlen kétváltozós gausus-minta var_covar = mátrix (adatok = c (1,5, 0,3, 0,3, 1,5), nrow = 2) # Véletlenszerű kétváltozós gaussian minták + 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 fenti ábrán a kék pontok az osztály mintáit mutatják +1 a pirosak pedig az osztály mintáját jelentik -egy . Van némi átfedés a minták között, vagyis az osztályok nem választhatók el teljesen egy egyszerű vonallal. Más szóval nem tökéletesen lineárisan elválasztható .

Most egy LDA modellt oktatunk a fenti adatok felhasználásával.

# Képezze be az LDA modellt a fenti lda_model adatkészlettel<- lda(Y ~ X1 + X2, data = dataset) #Print the LDA model lda_model 

Kimenet:

A csoportok korábbi valószínűségei:

-tizenegy

0,6 0,4

A csoport jelentése:

stl rendezés c ++

X1 X2

-1 1.928108 2.010226

1 5.961004 6.015438

A lineáris diszkriminánsok együtthatói:

LD1

X1 0,5646116

X2 0,5004175

Mint látható, a modell által megtanult osztályosztályok (1.928108, 2.010226) az osztályra vonatkoznak -egy osztály (5.961004, 6.015438) +1 . Ezek az átlagok nagyon közel állnak ahhoz az osztályértékhez, amelyet a véletlenszerű minták előállításához használtunk. A csoport előzetes valószínűsége +1 a paraméter becsült értéke o . Az b A vektor a lineáris diszkrimináns együtthatók.

Most a fenti modell alapján fogjuk megjósolni az osztálycímkéket ugyanazokra az adatokra.

# Az egyes minták osztályának megjóslása a fenti adatkészletben az y_pred LDA modell használatával<- 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 fenti ábrán a lila minták az osztályból származnak +1 amelyeket az LDA modell helyesen osztályozott. Hasonlóképpen, a vörös minták az osztályból származnak -egy amelyeket helyesen osztályoztak. A kékek az osztályból származnak +1 de tévesen besorolták -egy . A zöldek az osztályból származnak -egy amelyeket tévesen minősítettek +1 . A téves osztályozások azért történnek, mert ezek a minták közelebb vannak a másik osztály átlagához (középpontjához), mint a tényleges osztályuk átlagához.

Ezzel eljutottunk a cikk végéhez, nézze meg a az Edureka, egy megbízható online tanulási vállalat, amelynek több mint 250 000 elégedett tanulóval rendelkező hálózata elterjedt az egész világon. Az Edureka Data Analytics with R képzése segít megszerezni a szakértelmet az R programozásban, az adatkezelésben, a feltáró adatelemzésben, az adatmegjelenítésben, az adatbányászatban, a regresszióban, a hangulatelemzésben és az R Studio felhasználásában a kiskereskedelem, a közösségi média valós életének esettanulmányaihoz.

Van egy kérdésünk? Kérjük, említse meg a cikk megjegyzés rovatában, és a lehető leghamarabb kapcsolatba lépünk Önnel.