Introduktion Logistisk regression i R

Logistisk regression i R också känd som binära klassificeringsproblem. De används för att förutsäga ett resultat som (1 eller 0 antingen ja / nej) för en oberoende variabel. För att förstå logistisk regression i R är det viktigt att känna till den grundläggande linjära regressionen, arbetar med den kontinuerliga utfallsvariabeln. Mer specifikt kan vi säga att det är en förlängning av linjär regression. I den här artikeln ska vi diskutera olika metoder som används för att beräkna modell och utvärdering. Logistisk regression används för att lösa klassificeringsproblem i maskininlärning.

Hur fungerar Logistic Regression in R?

Logistisk regression är en teknik som används inom statistikområdet som mäter skillnaden mellan en beroende och oberoende variabel med guiden för logistisk funktion genom att uppskatta den olika förekomsten av sannolikheter. De kan vara antingen binomiala (har ja eller inget resultat) eller multinomiala (rättvis kontra dålig mycket dålig). Sannolikhetsvärdena ligger mellan 0 och 1 och variabeln bör vara positiv (<1). Den riktar sig mot den beroende variabeln och har följande steg att följa:

  1. n.nr. av fasta försök på ett taget dataset
  2. med två resultatstudie
  3. utfallet av sannolikheten bör vara oberoende av varandra
  4. Sannolikheten för framgång och misslyckanden måste vara densamma vid varje försök.

I detta överväger vi ett exempel genom att ta ISLR-paketet, som tillhandahåller olika datasätt för utbildning. För att passa modellen används generaliserad linjär modellfunktion (glm) här. För att bygga en logistisk regression föredras glm-funktion och får detaljerna om dem med en sammanfattning för analysuppgift.

Arbeta steg:

Arbetsstegen för logistisk regression följer vissa termelement som

  • Modellera sannolikheten eller göra sannolikhetsberäkningen
  • förutsägelse
  • Initiera tröskelvärdet (hög eller låg specificitet)
  • Förvirringsmatris
  • Plottområdet under kurvan (AUC)

exempel

Nedan är några exempel på logistisk regression i R:

Laddar data:

Installera ISLR-paketet.

kräva (ISLR)

Läser in nödvändigt paket: ISLR

För den här artikeln kommer vi att använda ett dataset 'Weekly' i RStudio. Datasättet innebär en sammanfattning av veckobeståndet från 1990 till 2010.

kräva (ISLR)

namn (OJ)

Produktion:

(1) "Köp" "WeekofPurchase" "StoreID" "PriceCH"

(5) "PriceMM" "DiscCH" "DiscMM" "SpecialCH"

(9) "SpecialMM" "LoyalCH" "SalePriceMM" "SalePriceCH"

(13) "PriceDiff" "Store7" "PctDiscMM" "PctDiscCH"

(17) ”ListPriceDiff” “STORE”

str (OJ)

Visar 1070 Observationer av 18 variabler.

Vårt datasätt har 1070 observationer och 18 olika variabler. här har vi Special MM Och special CH har ett beroende resultat. Låt oss ta ett speciellt MM-attribut för att ha en korrekt observation och en noggrannhet på 84%.

tabell (EGT $ SpecialMM)

0 1

897 173

Nästa för att hitta sannolikheten

897/1070

(1) 0, 8383178

I nästa steg för ett bättre prov Att dela upp datauppsättningen i tränings- och testdata är en goo

bibliotek (caTools)

set.seed (88)

split = sample.split (OJ $ SpecialMM, SplitRatio = 0, 84)

Att betrakta qt har en träningsuppsättning och qs har provuppsättningsdata.

qt = delmängd (EGT, split == TRUE)

qs = delmängd (EGT, split == FALSE)

nrow (qt)

(1) 898

nrow (qs)

(1) 172

Därför har vi 898 träningsuppsättningar och 172 testprover.

Därefter använder du Sammanfattning () detaljerna om avvikelse och sameffektiva tabeller för regressionsanalys.

QualityLog = glm (SpecialMM ~ SalePriceMM + WeekofPurchase, data = qt, family = binomial)

sammanfattning (QualityLog)

Produktion:

Ring upp:

glm (formel = SpecialMM ~ SalePriceMM + WeekofPurchase, family = binomial,

data = qt)

Avvikelse rester:

Min 1Q Median 3Q Max

-1.2790 -0.4182 -0.3687 -0.2640 2.4284

koefficienter:

Uppskatta Std. Fel z-värde Pr (> | z |)

(Intercept) 2, 910774 1, 616328 1, 801 0, 07173.

SalePriceMM -4.538464 0.405808 -11.184 <2e-16 ***

WeekofKöp 0, 015546 0, 005831 2, 666 0, 00767 **

-

Noll avvikelse: 794, 01 på 897 frihetsgrader

Restavvikelse: 636, 13 på 895 frihetsgrader

AIC: 642, 13

Antal iterationer för Fisher-poäng: 5

Från ovanstående analys sägs att koefficienttabellen ger positiva värden för WeekofPurchase och de har minst två stjärnor vilket antyder att de är de betydande koderna för modellen.

Förutsägelsesteknik:

Här ska vi använda förutsäga tågfunktion i detta R-paket och tillhandahålla sannolikheter som vi använder argument med namnet typ = svar. Låt oss se den förutsägelse som tillämpas på träningsuppsättningen (qt). R förutsäger utfallet i form av P (y = 1 | X) med gränssannolikheten 0, 5.

predictTrain = förutsäga (QualityLog, typ = ”svar”)

Sammanfattning resulterar i ett median, medelvärde och min, maxvärden.

sammanfattning (förutsägelse) Utförande ger

Min. 1: a kv. Median medelvärde 3: e kv. Max.

0, 02192 0, 03342 0, 07799 0, 16147 0, 25395 0, 89038

knacka (förutsägaTrain, qt $ SpecialMM)

För att beräkna medelvärdet för de verkliga sannolikheterna används tapply () -funktionen.

tapply (predictTrain, qt $ SpecialMM, medelvärde)

0 1

0, 1224444 0, 3641334

Därför finner vi i ovanstående uttalande att möjligheten för verkligt SpecialMM betyder värde är0, 34 och för verkligt dåligt värde är 0, 12.

Beräkning av tröskelvärde:

om P är> T– förutsägelse är dålig Special MM

om P är

Klassificeringsmatris:

tabell (qt $ SpecialMM, predictTrain> 0.5)

FALSK SANN

0 746 7

1 105 40

För att beräkna känslighet och specificitet

40/145

(1) 0, 2758621

746/753

(1) 0, 9907039

Testuppsättning Förutsägelse

predictTest = förutsäga (QualityLog, typ = "svar", newdata = qs)

tabell (qs $ SpecialMM, prediktest> = 0, 3)

FALSK SANN

0 130 14

1 10 18

tabell (qs $ SpecialMM, predictTest> = 0.5)

FALSK SANN

0 140 4

1 18 10

Beräkna noggrannhet

150/172

(1) 0, 872093

Det finns 172 fall varav 144 är bra och 28 är fattiga.

Plottning av ROC-kurva:

Detta är det sista steget genom att plotta ROC-kurvan för prestandamätningar. Ett bra AUC-värde bör vara närmare 1 och inte 0, 5. Kontrollera med sannolikheterna 0, 5, 0, 7, 0, 2 för att förutsäga hur tröskelvärdet ökar och minskar. Det görs genom att plotta tröskelvärden samtidigt i ROC-kurvan. Ett bra val är att välja med tanke på högre känslighet.

Logistiska regressionstekniker

Låt oss se en implementering av logistik med R, eftersom det gör det mycket enkelt att anpassa modellen. Det finns två typer av tekniker:

  • Multinomial logistic regression
  • Ordinal logistisk regression

Tidigare arbetar med svarsvariabler när de har mer än eller lika med två klasser. senare fungerar när beställningen är viktig.

Slutsats

Därför har vi lärt oss den grundläggande logiken bakom regression tillsammans med att vi har implementerat Logistic Regression på en viss datasats av R. En binomial eller binär regression mäter kategoriska värden på binära svar och prediktorvariabler. De spelar en viktig roll i analys där branschexperter förväntar sig att känna till den linjära och logistiska regressionen. De har sina egna utmaningar och i det praktiska exemplet har vi gjort med stegen om datarengöring, förbehandling. Sammantaget har vi sett hur logistisk regression löser ett problem med kategoriskt resultat på ett enkelt och enkelt sätt.

Rekommenderade artiklar

Detta har varit en guide till Logistic Regression i R. Här diskuterar vi arbetande, olika tekniker och bred förklaring om olika metoder som används i Logistic Regression i R. Du kan också titta på följande artiklar för att lära dig mer -

  1. Maskininlärningsramar
  2. R vs Python
  3. Python-strängfunktioner
  4. Är Python ett skriptspråk
  5. Binomial distribution i R | Syntax
  6. Regression vs klassificering

Kategori: