R లో లీనియర్ వివక్షత విశ్లేషణను ఎలా అమలు చేయాలి?



ఈ వ్యాసం సరళ వివక్షత విశ్లేషణ ఏమిటో మీకు తెలియజేస్తుంది మరియు R ప్రోగ్రామింగ్ భాషను ఉపయోగించి మీకు వివరణాత్మక ప్రదర్శనను ఇస్తుంది.

లీనియర్ డిస్క్రిమినెంట్ అనాలిసిస్ అనేది వర్గీకరణ సమస్యలను పరిష్కరించడానికి ఉపయోగించే మెషిన్ లెర్నింగ్ టెక్నిక్. ఈ టెక్నిక్ వెనుక ఉన్న అంతర్ దృష్టి మరియు గణితాన్ని అర్థం చేసుకోవడానికి ఈ వ్యాసంలో ప్రయత్నిస్తాము. లో LDA అమలుకు ఉదాహరణ ఆర్ కూడా అందించబడుతుంది.

కాబట్టి అప్పుడు ప్రారంభిద్దాం





లీనియర్ వివక్షత విశ్లేషణ umption హ

లీనియర్ డిస్క్రిమినెంట్ అనాలిసిస్ కింది అంచనాలపై ఆధారపడి ఉంటుంది:

  • ఆధారిత వేరియబుల్ వై వివిక్తమైనది. ఈ వ్యాసంలో డిపెండెంట్ వేరియబుల్ బైనరీ మరియు క్లాస్ విలువలను తీసుకుంటుందని అనుకుంటాము {+1, -1} . తరగతికి చెందిన నమూనా యొక్క సంభావ్యత +1 , అనగా పి (వై = +1) = పి . కాబట్టి, తరగతికి చెందిన నమూనా యొక్క సంభావ్యత -ఒక ఉంది 1-పే .



  • స్వతంత్ర వేరియబుల్ (లు) X. గాస్సియన్ పంపిణీల నుండి వచ్చారు. గాస్సియన్ పంపిణీ యొక్క సగటు తరగతి లేబుల్‌పై ఆధారపడి ఉంటుంది వై . అనగా ఉంటే వై i = +1 , అప్పుడు సగటు X. i ఉంది & # 120583 +1 , లేకపోతే అది & # 120583 -ఒక . వైవిధ్యం & # 120590 2 రెండు తరగతులకు ఒకే విధంగా ఉంటుంది. గణితశాస్త్రపరంగా, X | (Y = +1) ~ N (& # 120583 +1 , & # 120590 2 ) మరియు X | (Y = -1) ~ N (& # 120583 -ఒక , & # 120590 2 ) , ఎక్కడ ఎన్ సాధారణ పంపిణీని సూచిస్తుంది.

ఈ సమాచారంతో ఉమ్మడి పంపిణీని నిర్మించడం సాధ్యపడుతుంది పి (ఎక్స్, వై) స్వతంత్ర మరియు ఆధారిత వేరియబుల్ కోసం. కాబట్టి, ఎల్‌డిఎ తరగతికి చెందినది జనరేటివ్ క్లాస్‌ఫైయర్ మోడల్స్ . దగ్గరి సంబంధం ఉన్న జనరేటివ్ వర్గీకరణ క్వాడ్రాటిక్ డిస్క్రిమినెంట్ అనాలిసిస్ (క్యూడిఎ). ఇది తరగతి వైవిధ్యాలు భిన్నంగా ఉంటాయి తప్ప, LDA యొక్క అన్ని ఒకే on హలపై ఆధారపడి ఉంటుంది.

లీనియర్ డిస్క్రిమినెంట్ అనాలిసిస్ కథనంతో కొనసాగిద్దాం

అంతర్ దృష్టి

కోసం క్లాస్ షరతులతో కూడిన గాస్సియన్ పంపిణీలను పరిగణించండి X. తరగతి ఇవ్వబడింది వై . దిగువ బొమ్మ పంపిణీ యొక్క సాంద్రత విధులను చూపుతుంది. ఈ చిత్రంలో, ఉంటే Y = +1 , అప్పుడు సగటు X. 10 మరియు ఉంటే వై = -1 , సగటు 2. రెండు సందర్భాల్లోనూ వైవిధ్యం 2.

అంతర్ దృష్టి - సరళ వివక్ష విశ్లేషణ - ఎడురేకా

ఇప్పుడు క్రొత్త విలువను అనుకుందాం X. మాకు ఇవ్వబడింది. దీనిని సూచించడానికి అనుమతిస్తుంది x i . దీని కోసం ఎక్కువగా తరగతి లేబుల్‌ను నిర్ణయించడం పని x i , అనగా. వై i . సరళత కోసం సంభావ్యత అని అనుకోండి p తరగతికి చెందిన నమూనా +1 తరగతికి చెందినది -ఒక , అనగా. p = 0.5 .

అకారణంగా, ఉంటే చెప్పడం అర్ధమే x i దగ్గరగా ఉంది & # 120583 +1 దాని కంటే & # 120583 -ఒక , అప్పుడు అది ఎక్కువగా ఉంటుంది వై i = +1 . మరింత అధికారికంగా, వై i = +1 if:

| x i - & # 120583 +1 |<|x i - & # 120583 -ఒక |

ప్రామాణిక విచలనం ద్వారా రెండు వైపులా సాధారణీకరించడం:

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

రెండు వైపులా స్క్వేర్ చేయడం:

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

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

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

డబుల్‌ను పూర్ణాంకానికి ఎలా మార్చాలి

పై వ్యక్తీకరణ రూపం bx i + సి> 0 ఎక్కడ b = -2 (& # 120583 -ఒక - & # 120583 +1 ) / & # 120590 2 మరియు c = (& # 120583 -ఒక 2 / & # 120590 2 - & # 120583 +1 2 / & # 120590 2 ) .

సమీకరణం యొక్క రూపం స్పష్టంగా కనిపిస్తుంది సరళ , అందుకే లీనియర్ డిస్క్రిమినెంట్ అనాలిసిస్ అని పేరు.

లీనియర్ డిస్క్రిమినెంట్ అనాలిసిస్ కథనంతో కొనసాగిద్దాం,

LDA యొక్క గణిత వివరణ

LDA కోసం వ్యక్తీకరణ యొక్క గణిత ఉత్పన్నం వంటి భావనలపై ఆధారపడి ఉంటుంది బేయస్ రూల్ మరియు బేయస్ ఆప్టిమల్ క్లాసిఫైయర్ . ఆసక్తిగల పాఠకులు ఈ భావనల గురించి మరింత చదవమని ప్రోత్సహిస్తారు. వ్యక్తీకరణను పొందటానికి ఒక మార్గం కనుగొనవచ్చు ఇక్కడ .

మేము మా నిర్దిష్ట కేసు కోసం నేరుగా వ్యక్తీకరణను అందిస్తాము వై రెండు తరగతులు పడుతుంది {+1, -1} . మునుపటి విభాగంలో చూపిన అంతర్ దృష్టిని సాధారణ కేసుకు కూడా విస్తరిస్తాము X. బహుమితీయంగా ఉంటుంది. ఉన్నాయని చెప్పండి కు స్వతంత్ర చరరాశులు. ఈ సందర్భంలో, తరగతి అంటే & # 120583 -ఒక మరియు & # 120583 +1 కొలతలు యొక్క వెక్టర్స్ k * 1 మరియు వైవిధ్యం-కోవిరాన్స్ మాతృక & # 120622 కొలతలు యొక్క మాతృక అవుతుంది k * క .

వర్గీకరణ ఫంక్షన్ ఇలా ఇవ్వబడింది

Y = h (X) = గుర్తు (బి టి X + సి)

ఎక్కడ,

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

c = & # 120583 -ఒక టి & # 120622 -ఒక & # 120583 -ఒక - & # 120583 -ఒక టి & # 120622 -ఒక & # 120583 -ఒక {-2 ln (1-p) / p}

సైన్ ఫంక్షన్ తిరిగి వస్తుంది +1 వ్యక్తీకరణ ఉంటే బి టి x + c> 0 , లేకపోతే అది తిరిగి వస్తుంది -ఒక . లో సహజ లాగ్ పదం సి తరగతి సంభావ్యత రెండు తరగతులకు సమానంగా ఉండనవసరం లేదని సర్దుబాటు చేయడానికి ఉంది, అనగా. p (0, 1) మధ్య ఏదైనా విలువ కావచ్చు మరియు కేవలం 0.5 కాదు.

మోడల్ పారామితులను నేర్చుకోవడం

తో డేటాసెట్ ఇవ్వబడింది ఎన్ డేటా పాయింట్లు (x ఒకటి , వై ఒకటి ), (x 2 , వై 2 ),… (X. n , వై n ) , మేము అంచనా వేయాలి p, & # 120583 -ఒక , & # 120583 +1 మరియు & # 120622 . ఒక గణాంక అంచనా సాంకేతికత గరిష్ట లైక్లిహుడ్ అంచనా ఈ పారామితులను అంచనా వేయడానికి ఉపయోగిస్తారు. పై పారామితుల యొక్క వ్యక్తీకరణలు క్రింద ఇవ్వబడ్డాయి.

& # 120583 +1 = (1 / ఎన్ +1 ) * & # 120506 i: యి = + 1 x i

& # 120583 -ఒక = (1 / ఎన్ -ఒక ) * & # 120506 i: యి = -1 x i

p = N. +1 / ఎన్

& # 120622 = (1 / N) * & # 120506i = 1: ఎన్ (x i - & # 120583 i ) (x i - & # 120583 i ) టి

ఎక్కడ ఎన్ +1 = y యొక్క నమూనాల సంఖ్య i = +1 మరియు ఎన్ -ఒక = y యొక్క నమూనాల సంఖ్య i = -1 .

పై వ్యక్తీకరణలతో, LDA మోడల్ పూర్తయింది. పై వ్యక్తీకరణలను ఉపయోగించి మోడల్ పారామితులను అంచనా వేయవచ్చు మరియు స్వతంత్ర వేరియబుల్ యొక్క ఏదైనా కొత్త ఇన్పుట్ విలువ యొక్క క్లాస్ లేబుల్ పొందడానికి వాటిని వర్గీకరణ ఫంక్షన్లో ఉపయోగించవచ్చు. X. .

లీనియర్ డిస్క్రిమినెంట్ అనాలిసిస్ కథనంతో కొనసాగిద్దాం

R లో ఉదాహరణ

కింది కోడ్ రెండు స్వతంత్ర చరరాశులతో డమ్మీ డేటాను సెట్ చేస్తుంది X1 మరియు X2 మరియు డిపెండెంట్ వేరియబుల్ వై . కోసం X1 మరియు X2 , మేము రెండు మల్టీవిరియట్ గాస్సియన్ పంపిణీల నుండి నమూనాను ఉత్పత్తి చేస్తాము & # 120583 -ఒక = (2, 2) మరియు & # 120583 +1 = (6, 6) . 40% నమూనాలు తరగతికి చెందినవి +1 మరియు 60% తరగతికి చెందినవి -ఒక , కాబట్టి p = 0.4 .

లైబ్రరీ (ggplot2) లైబ్రరీ (MASS) లైబ్రరీ (mvtnorm) # యాదృచ్ఛిక ద్విపద గాసియన్ నమూనా కోసం వేరియెన్స్ కోవియారిన్స్ మ్యాట్రిక్స్ var_covar = మాతృక (డేటా = సి (1.5, 0.3, 0.3, 1.5), nrow = 2) # తరగతి + కోసం యాదృచ్ఛిక బివారియేట్ గాస్సియన్ నమూనాలు 1 ఎక్స్‌ప్లస్ 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)) 

పై చిత్రంలో, నీలం చుక్కలు తరగతి నుండి నమూనాలను సూచిస్తాయి +1 మరియు ఎరుపు రంగు తరగతి నుండి నమూనాను సూచిస్తుంది -ఒక . నమూనాల మధ్య కొంత అతివ్యాప్తి ఉంది, అనగా తరగతులను సాధారణ పంక్తితో పూర్తిగా వేరు చేయలేము. మరో మాటలో చెప్పాలంటే అవి సంపూర్ణంగా లేవు సరళంగా వేరు .

పై డేటాను ఉపయోగించి ఇప్పుడు మనం ఎల్‌డిఎ మోడల్‌కు శిక్షణ ఇస్తాము.

# పై డేటాసెట్ lda_model ఉపయోగించి LDA మోడల్‌ను శిక్షణ ఇవ్వండి<- lda(Y ~ X1 + X2, data = dataset) #Print the LDA model lda_model 

అవుట్పుట్:

సమూహాల ముందు సంభావ్యత:

-ఎలెవెన్

0.6 0.4

సమూహం అంటే:

X1 X2

-1 1.928108 2.010226

1 5.961004 6.015438

సరళ వివక్షత యొక్క గుణకాలు:

LD1

X1 0.5646116

X2 0.5004175

ఒకరు చూడగలిగినట్లుగా, మోడల్ అంటే నేర్చుకున్న తరగతి అంటే తరగతికి (1.928108, 2.010226) -ఒక మరియు (5.961004, 6.015438) తరగతికి +1 . ఈ మార్గాలు తరగతికి చాలా దగ్గరగా ఉన్నాయి అంటే ఈ యాదృచ్ఛిక నమూనాలను రూపొందించడానికి మేము ఉపయోగించాము. సమూహానికి ముందు సంభావ్యత +1 పరామితి యొక్క అంచనా p . ది బి వెక్టర్ అనేది సరళ వివక్షత గుణకాలు.

అదే డేటా కోసం తరగతి లేబుళ్ళను అంచనా వేయడానికి మేము ఇప్పుడు పై నమూనాను ఉపయోగిస్తాము.

# LDA మోడల్ y_pred ఉపయోగించి పై డేటాసెట్‌లోని ప్రతి నమూనా కోసం తరగతిని ic హించడం<- 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))

పై చిత్రంలో, ple దా నమూనాలు తరగతి నుండి +1 అవి LDA మోడల్ చేత సరిగ్గా వర్గీకరించబడ్డాయి. అదేవిధంగా, ఎరుపు నమూనాలు తరగతి నుండి -ఒక అవి సరిగ్గా వర్గీకరించబడ్డాయి. నీలం రంగు తరగతి నుండి +1 కానీ తప్పుగా వర్గీకరించబడ్డాయి -ఒక . ఆకుపచ్చ రంగు తరగతి నుండి -ఒక ఇవి తప్పుగా వర్గీకరించబడ్డాయి +1 . తప్పుడు వర్గీకరణలు జరుగుతున్నాయి ఎందుకంటే ఈ నమూనాలు వాటి వాస్తవ తరగతి సగటు కంటే ఇతర తరగతి సగటు (మధ్య) కు దగ్గరగా ఉంటాయి.

పైథాన్‌లో ఒక వస్తువును ఎలా ప్రారంభించాలి

ఇది మమ్మల్ని ఈ వ్యాసం చివరకి తీసుకువస్తుంది, చూడండి ప్రపంచవ్యాప్తంగా విస్తరించి ఉన్న 250,000 మందికి పైగా సంతృప్తికరమైన అభ్యాసకుల నెట్‌వర్క్‌తో విశ్వసనీయ ఆన్‌లైన్ లెర్నింగ్ సంస్థ ఎడురేకా చేత. R ప్రోగ్రామింగ్, డేటా మానిప్యులేషన్, ఎక్స్ప్లోరేటరీ డేటా అనాలిసిస్, డేటా విజువలైజేషన్, డేటా మైనింగ్, రిగ్రెషన్, సెంటిమెంట్ అనాలిసిస్ మరియు రిటైల్, సోషల్ మీడియాపై నిజ జీవిత కేసు అధ్యయనాల కోసం R స్టూడియోని ఉపయోగించడంలో R శిక్షణతో ఎదురేకా యొక్క డేటా అనలిటిక్స్ మీకు సహాయం చేస్తుంది.

మాకు ప్రశ్న ఉందా? దయచేసి ఈ వ్యాసం యొక్క వ్యాఖ్యల విభాగంలో దీనిని ప్రస్తావించండి మరియు మేము వీలైనంత త్వరగా మిమ్మల్ని సంప్రదిస్తాము.