Logistische Regression | Ein Anfängerleitfaden zur logistischen Regression mit Python

Inhalt

  • Was ist logistische Regression??
  • Mathematik an der logistischen Regression beteiligt
  • Leistungsmessung mit Konfusionsmatrizen
  • Demonstration der logistischen Regression mit Python-Code

Die logistische Regression ist einer der beliebtesten maschinellen Lernalgorithmen, die bei der Vorhersage mehrerer kategorialer Datensätze verwendet wird.. Kategoriale Datensätze haben nur zwei Ergebnisse, 0/1 oder wenn / Nein

221055cc7604b063fb0c7d541a527_5cbeb12eae2b883405064bc1_two-choice-7704557

Inhaltsverzeichnis

1 Was ist logistische Regression??

2 Warum logistische Regression anwenden??

3 Mathematik an der logistischen Regression beteiligt

4 Implementierung der logistischen Regression bei der Vorhersage

5 Leistungsmessung

6 Hauptmerkmale der logistischen Regression

7 Arten der logistischen Regression

8 Python-Codeimplementierung

1. Was ist logistische Regression??

Es handelt sich um eine Art von Regressionsalgorithmen für maschinelles Lernen, die implementiert werden, um Klassifikationsprobleme zu lösen / kategorisch,

Probleme mit binären Ergebnissen, mögen / Nein, 0/1, Wahr / Gefälscht, sind sogenannte Klassifikationsprobleme.

95588whatsapp-image-2020-02-11-at-8-30-11-pm-3472288

2. Warum logistische Regression anwenden??

Lineare Regression liefert keine gute Anpassungslinie für Probleme mit nur zwei Werten (wie in der gezeigten Abbildung). Es wird während der Vorhersage weniger Präzision geben, da es die Datensätze nicht abdeckt, linearer Natur sein.

Für die beste Anpassung kategorialer Datensätze, es wird eine Kurve benötigt, die mit Hilfe der logistischen Regression möglich ist, da es eine Sigmoidfunktion verwendet, um Vorhersagen zu treffen.

48211l7xj9gkzufp00gt2txzu-1710093

3. Mathematik an der logistischen Regression beteiligt

Der Hauptgrund für die Biegung der logistischen Regressionskurve ist, dass sie mit einer Sigmoidfunktion berechnet wird. (auch als logistische Funktion bekannt, da sie in der logistischen Regression verwendet wird) nachfolgend aufgeführten

60550Sigmoid-Gleichung-1821663

Dies ist die mathematische Funktion der ‚S-förmige Kurve‘. Der Wert der Sigmoidfunktion liegt immer zwischen 0 Ja 1, es wird also implementiert, um kategoriale Probleme zu lösen, die zwei mögliche Werte haben.

281361_a04iknbchaycaj7-0qlesa-6487209

4. Implementierung der logistischen Regression bei der Vorhersage

Die logistische Regression implementiert die Sigmoidfunktion, um Vorhersagen bei kategorialen Werten zu treffen.

Setzt einen Cut-Point-Wert, die meistens eingebaut ist 0.5, das, wenn es durch die prognostizierte Abweichung von der logistischen Kurve überschritten wird, liefert die jeweils erwartete Ausgabe in Form der Kategorie, zu der der Datensatz gehört.

Zum Beispiel,

Im Fall des Diabetes-Vorhersagemodells, wenn die Leistung den Abschaltpunkt überschreitet, die Vorhersageausgabe wird als Ja für Diabetes ausgegeben; andererseits, Nein, wenn der Wert unter dem Cutoff-Punkt liegt.

5. Leistungsmessung

Um die Leistung des Modells in der Auflösung von Klassifikationsproblemen, Verwirrungsmatrix wird verwendet., Unten ist die Implementierung der Verwirrungsmatrix.

96377Verwirrungsmatrix-9778094

Schlüsselbegriffe:

  1. – TN bedeutet wahre Negative (Der prognostizierte Wert (Negativ) entspricht dem tatsächlichen Wert (Negativ))
  2. – FP bedeutet False Positives (Der tatsächliche Wert war negativ, aber das Modell hat einen positiven Wert vorhergesagt.)
  3. – FN steht für False Negative(Der tatsächliche Wert war positiv, aber das Modell hat einen negativen Wert vorhergesagt)
  4. – TP bedeutet wahre positive Aspekte (Der prognostizierte Wert (positiv) entsprach dem tatsächlichen Wert (positiv))

Für ein gutes Modell, man sollte nicht viele falsch positive oder falsch negative Ergebnisse haben

6. Hauptmerkmale der logistischen Regression

1. Die logistische Regression ist einer der beliebtesten maschinellen Lernalgorithmen, Wird in der überwachten maschinellen Lerntechnik verwendet. Es wird verwendet, um die vorherzusagen Variable kategorial abhängig, unter Verwendung einer gegebenen Menge unabhängiger Variablen.

2. Vorhersage der Ausgabe einer kategorialen Variablen, die von Natur aus diskret ist. Es kann Ja oder Nein sein, 0 Ö 1, richtig oder falsch, etc. aber anstatt den genauen Wert anzugeben wie 0 Ja 1, gibt das Ergebnis als Wahrscheinlichkeit des Datensatzes an, der zwischen liegt 0 Ja 1.

3. Es ähnelt der linearen Regression. Der einzige Unterschied besteht darin, dass die lineare Regression verwendet wird, um Regressionsprobleme zu lösen, während die logistische Regression verwendet wird, um Klassifikationsprobleme zu lösen / kategorische Probleme.

4 In der logistischen Regression, die Logistikfunktion (sigmoidea) S-förmig wird als Anpassungskurve verwendet, was gibt einen Ausgang zwischen 0 Ja 1.

7. Arten der logistischen Regression

Es gibt drei Arten:

eine Kombination

b Ordnungszahl

c Multinomial

eine Kombination

Die binomiale logistische Regression befasst sich mit Problemen mit Zielvariablen, die nur zwei mögliche Werte haben, 0 Ö 1.

Was es bedeuten kann Ja / Nein, Wahr / Gefälscht, Tot / Live und andere kategoriale Werte.

b Ordnungszahl

Ordinale logistische Regression Sie befasst sich mit den Problemen, deren Zielvariablen möglicherweise 3 oder mehr als 3 Werte, von Natur aus unordentlich. Diese Werte haben keine quantitative Bedeutung

Zum Beispiel, Haustyp 1, Haustyp 3, Haustyp 3, etc.

c Multinomial

Die multinomiale logistische Regression, einfach ordinale logistische Regression, befasst sich mit Problemen, die Zielwerte größer oder gleich haben 3. Der Hauptunterschied ist, dass, im Gegensatz zu Ordinal, diese Werte sind gut geordnet. Werte haben quantitative Bedeutung

Zum Beispiel, Fertigkeitseinschätzung als niedrig, Medien, Experte

6. Python-Codeimplementierung

[ Notiz: Die aufgenommenen Datensätze sind der Titanic-Datensatz]

Bibliotheken importieren

importieren Pandas Was pd
importieren numpy Was öffentlicher Notar
importieren matplotlib.pyplot Was plt
%matplotlib online
importieren Seemann Was sns
sns, einstellen ()

Importieren Sie den Datensatz

titanic_data = pd.read_csv(‚titanic_train.csv‘)

Durchführen einer explorativen Datenanalyse:

1. Auf mehrere Nulleinträge im Datensatz prüfen, mit der Hilfe von Heatmap

2.Visualisierung verschiedener Beziehungen zwischen Variablen

3. Gebrauch von Boxplot Für Details zum Vertrieb

sns.Heatmap(titanic_data.Es ist null(), cbar=Gefälscht)
sns.Zähldiagramm(x=‚Sobrevivió‘, Daten=titanic_data)
sns.Zähldiagramm(x=‚Sobrevivió‘, matiz=‚Sex‘, Daten=titanic_data)
sns.Zähldiagramm(x=‚Sobrevivió‘, matiz=‚PKlasse‘, Daten=titanic_data)

14222Fehlende-Werte-Heatmap-4429968

Heatmap

Alter und Kabine haben null Einträge

72354seaborn-countplot-1017498
99768seaborn-countplot-hue-sex-9273318
43948seaborn-countplot-hue-pclass-6846511

sns.Box-Plot(titanic_data['Pklasse'], titanic_data['Alter'])

44808alter-boxplot-4052864

Verwenden der Funktion zum Ersetzen von Nulleingaben

def input_missing_age(Säulen):
Alter = Säulen[0]
Passagierklasse = Säulen[1]
und pd.Es ist null(Alter):
und(Passagierklasse == 1):
Zurückkehren titanic_data[titanic_data['Pklasse'] == 1]['Alter'].meinen()
elifPassagierklasse == 2):
Zurückkehren titanic_data[titanic_data['Pklasse'] == 2]['Alter'].meinen()
elifPassagierklasse == 3):
Zurückkehren titanic_data[titanic_data['Pklasse'] == 3]['Alter'].meinen()
der Rest:
Zurückkehren Alter

Füllen Sie die fehlenden Altersdaten aus

titanic_data['Alter'] = titanic_data[['Alter', 'Pklasse']].Anfrage(input_missing_age, Achse = 1)

Nulldaten entfernen

titanic_data.Tropfen(‚Kabine‘, Achse=1, stattdessen = Sicher)
titanic_data.Tropfen(stattdessen = Sicher)

Erstellen Sie Dummy-Variablen für die Spalte Geschlecht und SendungS

sex_daten = pd.get_dummys(titanic_data['Sex'], drop_first = Sicher)
eingeschiffte_daten = pd.get_dummys(titanic_data[„Einschiffen“], drop_first = Sicher)

Fügen Sie Dummy-Variablen zu DataFrame hinzu und entfernen Sie nicht numerische Daten

titanic_data = pd.concat([titanic_data, sex_daten, eingeschiffte_daten], Achse = 1)
titanic_data.Tropfen(['Name', „Passagier-ID“, 'Fahrkarte', 'Sex', „Einschiffen“], Achse = 1, stattdessen = Sicher)

Drucken Sie den fertigen Datensatz

titanic_data.Kopf()

45986final-data-frame-5467311

Teilen Sie den Datensatz in Daten x und y

y_daten = titanic_data['Überlebt']
x_daten = titanic_data.Tropfen(‚Sobrevivió‘, Achse = 1)

Unterteilen Sie das Dataset in Daten aus Ausbildung und Testdaten

von sklearn.model_selection importieren train_test_split
x_training_data, x_test_data, y_training_data, y_test_data = train_test_split(x_daten, y_daten, Testgröße = 0,3)

Modell erstellen

von sklearn.Lineares Modell importieren Logistische Regression
Modell = Logistische Regression()

Trainieren Sie das Modell und erstellen Sie Vorhersagen

Modell.hineinpassen(x_training_data, y_training_data)
Vorhersagen = Modell.Vorhersagen(x_test_data)

Leistungskennzahlen berechnen

von sklearn.Metriken importieren Klassifizierungsbericht
Drucken(Klassifizierungsbericht(y_test_data, Vorhersagen))

 precision    recall  f1-score   support

           0       0.83      0.87      0.85       169

           1       0.75      0.68      0.72        98

    accuracy                           0.80       267

   macro avg       0.79      0.78      0.78       267

weighted avg       0.80      0.80      0.80       267

Erstellen Sie eine Konfusionsmatrix

von sklearn.Metriken importieren Verwirrung Matrix
Drucken(Verwirrung Matrix(y_test_data,
Vorhersagen)

[[145  22]

 [ 30  70]]

Damit beende ich diesen Blog.
Hallo allerseits, Namasté
Ich heiße Pranshu Sharma Und ich bin ein Data Science-Enthusiast
Vielen Dank, dass Sie sich Ihre wertvolle Zeit genommen haben, um diesen Blog zu lesen.. Auf Fehler gerne hinweisen (schließlich, ich bin lehrling) und hinterlasse die entsprechenden Kommentare oder hinterlasse einen Kommentar.
Dhanyvaad !!
Rückmeldung:
Email: [E-Mail geschützt]

Die in diesem Artikel gezeigten Medien sind nicht Eigentum von DataPeaker und werden nach Ermessen des Autors verwendet.

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.

Datenlautsprecher