Kaip įgyvendinti tiesinę diskriminantų analizę R?



Šis straipsnis jums pasakys, kas yra tiesinė diskriminantų analizė, taip pat pateiks jums išsamią demonstraciją naudojant R programavimo kalbą.

Linijinė diskriminantų analizė yra labai populiari mašininio mokymosi technika, naudojama klasifikavimo problemoms spręsti. Šiame straipsnyje mes pabandysime suprasti šios technikos intuiciją ir matematiką. LDA įgyvendinimo 2007 m. Pavyzdys R taip pat teikiama.

nustatyti java klasės kelią

Taigi pradėkime tada





Tiesinė diskriminantų analizės prielaida

Linijinė diskriminantų analizė grindžiama šiomis prielaidomis:

  • Priklausomas kintamasis Y yra diskretiškas. Šiame straipsnyje manysime, kad priklausomas kintamasis yra dvejetainis ir užima klasės reikšmes {+1, -1} . Klasei priklausančios imties tikimybė +1 , t.y P (Y = +1) = p . Todėl imties, priklausančios klasei, tikimybė -vienas yra 1-p .



  • Nepriklausomas (-i) kintamasis (-ai) X kilę iš gausso skirstinių. Gauso skirstinio vidurkis priklauso nuo klasės etiketės Y . y. jei Y i = +1 , tada vidurkis X i yra & # 120583 +1 , dar taip yra & # 120583 -vienas . Dispersija & # 120590 2 yra vienodas abiem klasėms. Matematiškai kalbant, X | (Y = +1) ~ N (& # 120583 +1 , & # 120590 2 ) ir X | (Y = -1) ~ N (& # 120583 -vienas , & # 120590 2 ) , kur N žymi normalųjį pasiskirstymą.

Turint šią informaciją galima sukurti bendrą paskirstymą P (X, Y) nepriklausomam ir priklausomam kintamajam. Todėl LDA priklauso. Klasei Generatoriniai klasifikatoriaus modeliai . Glaudžiai susijęs generatyvinis klasifikatorius yra kvadratinė diskriminantų analizė (QDA). Jis pagrįstas visomis tomis pačiomis LDA prielaidomis, išskyrus tai, kad klasės skirtumai yra skirtingi.

Tęskime tiesinės diskriminacijos analizės straipsnį ir pažiūrėkime

Intuicija

Apsvarstykite klasės sąlyginius gausų skirstinius X atsižvelgiant į klasę Y . Žemiau pateiktame paveikslėlyje parodytos skirstinių tankio funkcijos. Šiame paveiksle, jei Y = +1 , tada vidurkis X yra 10 ir jei Y = -1 , vidurkis yra 2. Abiem atvejais dispersija yra 2.

intuicija - tiesinė diskriminacijos analizė - Edureka

Tarkime, kad nauja vertė yra X yra duota mums. Leidžia jį tiesiog pažymėti kaip x i . Užduotis yra nustatyti labiausiai tikėtiną klasės etiketę x i , t.y. Y i . Paprastumo dėlei tarkime, kad tikimybė p klasei priklausančio imties +1 yra tas pats, kas priklausyti klasei -vienas , t.y. p = 0,5 .

Intuityviai prasminga sakyti, kad jei x i yra arčiau & # 120583 +1 nei yra & # 120583 -vienas , tada labiau tikėtina, kad Y i = +1 . Oficialiau, Y i = +1 jei:

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

Normalizuojant abi puses pagal standartinį nuokrypį:

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

Abiejų pusių kvadratas:

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

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

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

Minėta išraiška yra formos bx i + c> 0 kur b = -2 (& # 120583 -vienas - & # 120583 +1 ) / & # 120590 2 ir c = (& # 120583 -vienas 2 / & # 120590 2 - & # 120583 +1 2 / & # 120590 2 ) .

Akivaizdu, kad lygties forma yra linijinis , taigi ir pavadinimas Linijinė diskriminantų analizė.

Tęskime tiesinės diskriminantų analizės straipsnį ir pažiūrėkime,

Matematinis LDA aprašymas

Matematinis LDA išraiškos išvedimas grindžiamas tokiomis sąvokomis kaip Bayeso taisyklė ir „Bayes“ optimalus klasifikatorius . Suinteresuoti skaitytojai raginami daugiau sužinoti apie šias sąvokas. Galima rasti vieną būdą išraiškai gauti čia .

Išraišką pateiksime tiesiogiai mūsų konkrečiam atvejui Y mokosi dvi klases {+1, -1} . Mes taip pat išplėsime ankstesniame skyriuje parodytą intuiciją į bendrą atvejį X gali būti daugiamačių. Tarkime, kad yra į nepriklausomi kintamieji. Šiuo atveju klasė reiškia & # 120583 -vienas ir & # 120583 +1 būtų matmenų vektoriai k * 1 ir dispersijos-kovariacijos matrica & # 120622 būtų matmenų matrica k * k .

Klasifikatoriaus funkcija pateikiama kaip

Y = h (X) = ženklas (b T X + c)

Kur,

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

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

Grįžta ženklo funkcija +1 jei išraiška b T x + c> 0 , kitaip jis grįžta -vienas . Natūralus žurnalo terminas c yra prisitaikyti atsižvelgiant į tai, kad abiejų klasių klasės tikimybės nebūtinai turi būti vienodos, t. p gali būti bet kokia reikšmė nuo (0, 1), o ne tik nuo 0,5.

Mokymasis modelio parametrų

Pateiktas duomenų rinkinys su N duomenų taškai (x vienas , Y vienas ), (x 2 , Y 2 ),… (X n , Y n ) , turime įvertinti p, & # 120583 -vienas , & # 120583 +1 ir & # 120622 . Vadinama statistinio vertinimo metodika Didžiausios tikimybės įvertinimas yra naudojamas šiems parametrams įvertinti. Aukščiau pateiktų parametrų išraiškos pateikiamos žemiau.

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

& # 120583 -vienas = (1 / N -vienas ) * & # 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

Kur N +1 = mėginių skaičius, kur y i = +1 ir N -vienas = mėginių skaičius, kur y i = -1 .

Naudojant aukščiau pateiktas išraiškas, LDA modelis yra baigtas. Galima įvertinti modelio parametrus naudojant aukščiau pateiktas išraiškas ir naudoti juos klasifikatoriaus funkcijoje, norint gauti bet kurios naujos nepriklausomo kintamojo įvesties vertės klasės etiketę X .

kas yra pojo klasė java su pavyzdžiu

Tęskime tiesinės diskriminacijos analizės straipsnį ir pažiūrėkime

R pavyzdys

Šis kodas sukuria manekeno duomenų rinkinį su dviem nepriklausomais kintamaisiais X1 ir X2 ir priklausomas kintamasis Y . Dėl X1 ir X2 , mes generuosime imtį iš dviejų daugialypių gausų skirstinių su vidurkiais & # 120583 -vienas = (2, 2) ir & # 120583 +1 = (6, 6) . 40% mėginių priklauso klasei +1 ir 60% priklauso klasei -vienas , todėl p = 0,4 .

biblioteka (ggplot2) biblioteka (MASS) biblioteka (mvtnorm) # Kintamumo kovariacijos matrica atsitiktiniam dviejų kintamųjų gausaus imties var_covar = matrica (duomenys = c (1,5, 0,3, 0,3, 1,5), now = 2) # Atsitiktiniai dviejų kintamųjų gaussian pavyzdžiai + 1 „Xplus“<- 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)) 

Aukščiau pateiktame paveikslėlyje mėlyni taškai rodo klasės pavyzdžius +1 o raudoni - pavyzdį iš klasės -vienas . Tarp pavyzdžių yra tam tikras sutapimas, ty klasės negalima visiškai atskirti paprasta eilute. Kitaip tariant, jie nėra tobuli tiesiškai atskiriami .

Dabar mes mokysime LDA modelį, naudodamiesi aukščiau pateiktais duomenimis.

# Treniruokite LDA modelį naudodami aukščiau nurodytą duomenų rinkinį „lda_model“<- lda(Y ~ X1 + X2, data = dataset) #Print the LDA model lda_model 

Išvestis:

Ankstesnės grupių tikimybės:

-vienuolika

java kas yra žetonas

0,6 0,4

Grupė reiškia:

X1 X2

-1 1.928108 2.010226

1 5.961004 6.015438

Linijinių diskriminantų koeficientai:

LD1

X1 0.5646116

X2 0.5004175

Kaip matote, modelio išmoktos klasės priemonės yra (1.928108, 2.010226), skirtos klasei -vienas ir (5.961004, 6.015438) klasei +1 . Šios priemonės yra labai artimos klasės vidurkiams, kuriuos naudojome generuodami šias atsitiktines imtis. Ankstesnė grupės tikimybė +1 yra parametro įvertis p . The b vektorius yra tiesiniai diskriminaciniai koeficientai.

Dabar naudosime pirmiau pateiktą modelį, kad numatytume tų pačių duomenų klasės etiketes.

# Numatykite kiekvieno pavyzdžio klasę aukščiau pateiktame duomenų rinkinyje, naudodami 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))

Aukščiau pateiktame paveikslėlyje purpuriniai mėginiai yra iš klasės +1 kurie buvo teisingai klasifikuoti pagal LDA modelį. Panašiai raudoni mėginiai yra iš klasės -vienas kurie buvo teisingai klasifikuoti. Mėlyni yra iš klasės +1 bet buvo neteisingai klasifikuojami kaip -vienas . Žalieji yra iš klasės -vienas kurie buvo klaidingai klasifikuojami kaip +1 . Klaidingos klasifikacijos vyksta todėl, kad šios imtys yra arčiau kitos klasės vidurkio (centro) nei jų faktinės klasės.

Taip pateksime į šio straipsnio pabaigą, peržiūrėkite sukūrė patikima internetinė mokymosi įmonė „Edureka“, turinti daugiau nei 250 000 patenkintų besimokančiųjų tinklą visame pasaulyje. „Edureka“ duomenų analizė su „R“ mokymais padės jums įgyti patirties R programavimo, duomenų manipuliavimo, tiriamosios duomenų analizės, duomenų vizualizavimo, duomenų gavybos, regresijos, sentimentų analizės srityje ir naudojant „R Studio“ realių atvejų mažmeninės prekybos, socialinės žiniasklaidos srityse.

Turite mums klausimą? Prašau tai paminėti šio straipsnio komentarų skiltyje ir kuo greičiau susisieksime su jumis.