Introductie Logistieke regressie in R

Logistische regressie in R ook bekend als binaire classificatieproblemen. Ze worden gebruikt om een ​​uitkomst te voorspellen als (1 of 0 ofwel ja / nee) voor een onafhankelijke variabele. Om logistieke regressie in R te begrijpen, is het belangrijk om de lineaire basisregressie te kennen, die werkt met de continue uitkomstvariabele. Meer specifiek kunnen we zeggen dat het een uitbreiding is van lineaire regressie. In dit artikel zullen we verschillende methoden bespreken die worden gebruikt om het model en de evaluatie te berekenen. Logistische regressie wordt gebruikt voor het oplossen van classificatieproblemen bij machine learning.

Hoe werkt Logistic Regression in R?

Logistische regressie is een techniek die wordt gebruikt op het gebied van statistiek, waarbij het verschil tussen een afhankelijke en onafhankelijke variabele wordt gemeten met behulp van de logistische functie door het verschillende optreden van waarschijnlijkheden te schatten. Ze kunnen binomiaal zijn (heeft ja of geen uitkomst) of multinomiaal (redelijk versus arm zeer slecht). De waarschijnlijkheidswaarden liggen tussen 0 en 1 en de variabele moet positief zijn (<1). Het richt zich op de afhankelijke variabele en moet de volgende stappen volgen:

  1. nr. vaste proeven op een genomen dataset
  2. met twee uitkomsten proef
  3. de uitkomst van de waarschijnlijkheid moet onafhankelijk van elkaar zijn
  4. De kans op succes en mislukkingen moet bij elke proef hetzelfde zijn.

Hier overwegen we een voorbeeld door het ISLR-pakket te nemen, dat verschillende datasets voor training biedt. Om het model te passen, wordt hier een algemene lineaire modelfunctie (glm) gebruikt. Voor het bouwen van een logistieke regressie heeft de glm-functie de voorkeur en haalt de details ervan op met behulp van een samenvatting voor analysetaak.

Werken stappen:

De werkstappen voor logistieke regressie volgen bepaalde termelementen zoals

  • Het modelleren van de waarschijnlijkheid of het doen van een kansberekening
  • voorspelling
  • Initialisatie drempelwaarde (hoge of lage specificiteit)
  • Verwarring matrix
  • Het plotgebied onder de curve (AUC)

Voorbeelden

Hieronder zijn enkele voorbeelden van logistieke regressie in R:

Gegevens laden:

Het ISLR-pakket installeren.

vereisen (islr)

Laden vereist pakket: ISLR

Voor dit artikel gaan we een dataset 'Weekly' gebruiken in RStudio. De dataset impliceert de samenvattende details van de wekelijkse voorraad van 1990 tot 2010.

vereisen (islr)

namen (PB)

Output:

(1) “Aankoop” “Week ofPurchase” “StoreID” “PriceCH”

(5) “PriceMM” “DiscCH” “DiscMM” “SpecialCH”

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

(13) “PriceDiff” “Store7” “PctDiscMM” “PctDiscCH”

(17) ”ListPriceDiff” “WINKEL”

str (PB)

Toont 1070 observaties van 18 variabelen.

Onze dataset heeft 1070 observaties en 18 verschillende variabelen. hier hebben we Special MM En special CH heeft een afhankelijk resultaat. Laten we een speciaal MM-kenmerk nemen voor een correcte observatie en een nauwkeurigheid van 84%.

table (PB $ SpecialMM)

0 1

897 173

Naast de waarschijnlijkheid te vinden

897/1070

(1) 0.8383178

In de volgende stap voor een beter voorbeeld Het opsplitsen van de gegevensset in trainings- en testgegevensset is een goo

library (caTools)

set.seed (88)

split = sample.split (OJ $ SpecialMM, SplitRatio = 0.84)

Overwegend dat qt een trainingsset heeft en qs voorbeeldgegevens testset heeft.

qt = deelverzameling (PB, split == TRUE)

qs = deelverzameling (PB, split == FALSE)

nrow (qt)

(1) 898

nrow (qs)

(1) 172

Daarom hebben we 898 Trainingsset en 172 testmonsters.

Vervolgens gebruikt u Summary () om de details van de afwijking en co-efficiënte tabellen voor regressieanalyse te bekijken.

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

samenvatting (QualityLog)

Output:

Oproep:

glm (formule = SpecialMM ~ SalePriceMM + WeekofPurchase, family = binomiaal,

data = qt)

Afwijkende residuen:

Min 1Q Mediaan 3Q Max

-1.2790 -0.4182 -0.3687 -0.2640 2.4284

coëfficiënten:

Schat Std. Fout z waarde Pr (> | z |)

(Onderscheppen) 2.910774 1.616328 1.801 0.07173.

Uitverkoop Prijs MM -4.538464 0.405808 -11.184 <2e-16 ***

Week van aankoop 0.015546 0.005831 2.666 0.00767 **

-

Nul-afwijking: 794.01 op 897 vrijheidsgraden

Restafwijking: 636.13 op 895 vrijheidsgraden

AIC: 642.13

Aantal Fisher Scoring iteraties: 5

Uit de bovenstaande analyse wordt gezegd dat de coëfficiëntentabel positieve waarden voor WeekofPurchase geeft en dat ze ten minste twee sterren hebben, wat betekent dat ze de significante codes voor het model zijn.

Voorspellingstechniek:

Hier zullen we de functie Train voorspellen gebruiken in dit R-pakket en kansen geven die we gebruiken met de naam type = respons. Laten we de voorspelling bekijken die is toegepast op de trainingsset (qt). De R voorspelt de uitkomst in de vorm van P (y = 1 | X) met de grenskans van 0, 5.

predictTrain = predict (QualityLog, type = ”response”)

Samenvatting resulteert in een mediaan, gemiddelde en min, max waarden.

samenvatting (predictTrain) Uitvoering geeft

Min. 1st Qu.Median Mean 3rd Qu.Max.

0.02192 0.03342 0.07799 0.16147 0.25395 0.89038

tapply (predictTrain, qt $ SpecialMM)

Om het gemiddelde voor de werkelijke kansen te berekenen, wordt de functie tapply () gebruikt.

Tapply (predictTrain, qt $ SpecialMM, gemiddelde)

0 1

0.1224444 0.3641334

Daarom vinden we in de bovenstaande verklaring dat de mogelijkheid van echte SpecialMM betekent dat de waarde 0, 34 is en voor echte slechte waarde 0, 12.

Drempelwaarde berekenen:

als P> T is - voorspelling is slecht Speciale MM

als P is

Classificatie Matrix:

tabel (qt $ SpecialMM, predictTrain> 0, 5)

VALS WAAR

0 746 7

1 105 40

Om gevoeligheid en specificiteit te berekenen

40/145

(1) 0.2758621

746/753

(1) 0.9907039

Testset Voorspelling

predictTest = predict (QualityLog, type = "response", newdata = qs)

tabel (qs $ SpecialMM, predictTest> = 0.3)

VALS WAAR

0 130 14

1 10 18

tabel (qs $ SpecialMM, predictTest> = 0, 5)

VALS WAAR

0 140 4

1 18 10

Nauwkeurigheid berekenen

150/172

(1) 0.872093

Er zijn 172 gevallen waarvan 144 goed en 28 slecht.

ROC-curve plotten:

Dit is de laatste stap door de ROC-curve voor prestatiemetingen te plotten. Een goede AUC-waarde moet dichter bij 1 liggen, niet bij 0, 5. Controle met de waarschijnlijkheden 0, 5, 0, 7, 0, 2 om te voorspellen hoe de drempelwaarde toeneemt en afneemt. Dit wordt gedaan door drempelwaarden tegelijkertijd in de ROC-curve te plotten. Een goede keuze is kiezen vanwege een hogere gevoeligheid.

Logistieke regressietechnieken

Laten we eens kijken naar een implementatie van logistiek met behulp van R, omdat deze heel gemakkelijk in het model past. Er zijn twee soorten technieken:

  • Multinomiale logistieke regressie
  • Gewone logistieke regressie

Eerdere werken met responsvariabelen wanneer ze meer dan of gelijk zijn aan twee klassen. werkt later wanneer de volgorde aanzienlijk is.

Conclusie

Daarom hebben we de basislogica achter regressie geleerd en hebben we Logistic Regression geïmplementeerd op een bepaalde dataset van R. Een binomiale of binaire regressie meet categorische waarden van binaire responsen en voorspellende variabelen. Ze spelen een cruciale rol in de analyse, waarbij experts uit de industrie verwachten de lineaire en logistieke regressie te kennen. Ze hebben hun eigen uitdagingen en in het praktische voorbeeld hebben we de stappen gedaan op het gebied van gegevens opschonen, voorverwerking. Al met al hebben we gezien hoe logistieke regressie een probleem van categorische uitkomst op een eenvoudige en gemakkelijke manier oplost.

Aanbevolen artikelen

Dit is een gids voor Logistieke Regressie in R. Hier bespreken we de werking, verschillende technieken en brede uitleg over verschillende methoden die worden gebruikt in Logistische Regressie in R. U kunt ook de volgende artikelen bekijken voor meer informatie -

  1. Machine Learning Frameworks
  2. R tegen Python
  3. Python String-functies
  4. Is Python een scripttaal
  5. Binomiale verdeling in R | Syntaxis
  6. Regressie versus classificatie

Categorie: