Frage

Die übliche Definition der Regression (soweit ich weiß) ist Vorhersage einer kontinuierlichen Ausgangsvariablen aus einem bestimmten Satz von Eingangsvariablen.

Die logistische Regression ist ein Binärklassifizierungsalgorithmus, daher erzeugt sie eine kategoriale Ausgabe.

Ist es wirklich ein Regressionsalgorithmus? Wenn ja warum?

War es hilfreich?

Lösung

Die logistische Regression ist die Regression in erster Linie. Es wird ein Klassifikator, indem es eine Entscheidungsregel hinzufügt. Ich werde ein Beispiel geben, das rückwärts geht. Anstatt Daten zu nehmen und ein Modell anzupassen, werde ich mit dem Modell beginnen, um zu zeigen, wie dies wirklich ein Regressionsproblem ist.

In der logistischen Regression modellieren wir die logarithmischen Quoten oder logit, dass ein Ereignis auftritt, was eine kontinuierliche Menge ist. Wenn die Wahrscheinlichkeit, dass Ereignis $ a $ auftritt, $ P (a) $ beträgt, stehen die Chancen:

$$ frac {p (a)} {1 - p (a)} $$

Die Protokollchancen sind also:

$$ log links ( frac {p (a)} {1 - p (a)} rechts) $$

Wie bei der linearen Regression modellieren wir dies mit einer linearen Kombination von Koeffizienten und Prädiktoren:

$$ operatorname {logit} = b_0 + b_1x_1 + b_2x_2 + cdots $$

Stellen Sie sich vor, wir erhalten ein Modell, ob eine Person graue Haare hat. Unser Modell verwendet das Alter als einziger Prädiktor. Hier hat unsere Veranstaltung a = eine Person graue Haare:

logarithmische Wahrscheinlichkeit von grauem Haar = -10 + 0,25 * Alter

... Regression! Hier ist ein Python -Code und ein Diagramm:

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

x = np.linspace(0, 100, 100)

def log_odds(x):
    return -10 + .25 * x

plt.plot(x, log_odds(x))
plt.xlabel("age")
plt.ylabel("log odds of gray hair")

plot of the log odds for our toy example

Machen wir es nun zu einem Klassifikator. Zunächst müssen wir die Protokollchancen verändern, um unsere Wahrscheinlichkeit $ P (a) $ herauszuholen. Wir können die Sigmoid -Funktion verwenden:

$$ p (a) = frac1 {1 + exp (- text {log odds})} $$

Hier ist der Code:

plt.plot(x, 1 / (1 + np.exp(-log_odds(x))))
plt.xlabel("age")
plt.ylabel("probability of gray hair")

plot of the probability of gray hair for our toy example

Das Letzte, was wir brauchen, um dies zu einem Klassifikator zu machen, ist, eine Entscheidungsregel hinzuzufügen. Eine sehr häufige Regel ist es, einen Erfolg zu klassifizieren, wenn immer $ P (a)> 0,5 $. Wir werden diese Regel annehmen, was bedeutet, dass unser Klassifikator graue Haare immer dann voraussagt, wenn eine Person älter als 40 ist und nicht-schleppendes Haar voraussagt, wenn eine Person unter 40 liegt.

Logistische Regression funktioniert auch als Klassifikator in realistischeren Beispielen, aber bevor es ein Klassifikator sein kann, muss es eine Regressionstechnik sein!

Andere Tipps

Kurze Antwort

Ja, logistische Regression ist ein Regressionsalgorithmus und sagt ein kontinuierliches Ergebnis vor: die Wahrscheinlichkeit eines Ereignisses. Dass wir es als binärer Klassifizierer verwenden, ist auf die Interpretation des Ergebnisses zurückzuführen.

Detail

Die logistische Regression ist eine Art von linearem Regressionsmodell.

In einem gewöhnlichen linearen Regressionsmodell ein kontinuierliches Ergebnis, y, wird als Summe des Produkts von Prädiktoren und deren Wirkung modelliert:

y = b_0 + b_1 * x_1 + b_2 * x_2 + ... b_n * x_n + e

wo e ist der Fehler.

Verallgemeinerte lineare Modelle modellieren nicht y direkt. Stattdessen verwenden sie Transformationen, um die Domäne von zu erweitern y zu allen realen Zahlen. Diese Transformation wird als Linkfunktion bezeichnet. Für die logistische Regression ist die Linkfunktion die Logit -Funktion (normalerweise siehe Hinweis unten).

Die Logit -Funktion ist definiert als

ln(y/(1 + y))

Somit lautet die Form der logistischen Regression:

ln(y/(1 + y)) = b_0 + b_1 * x_1 + b_2 * x_2 + ... b_n * x_n + e

wo y ist die Wahrscheinlichkeit eines Ereignisses.

Die Tatsache, dass wir es als binärer Klassifikator verwenden, ist auf die Interpretation des Ergebnisses zurückzuführen.

Hinweis: Probit ist eine weitere Linkfunktion, die für die logistische Regression verwendet wird, aber Logit ist am häufigsten verwendet.

Wenn Sie die Definition der Regression diskutieren, prognostiziert eine kontinuierliche Variable. Logistische Regression ist ein binärer Klassifikator. Logistische Regression ist die Anwendung einer Logit -Funktion auf die Ausgabe eines üblichen Regressionsansatzes. Die Logit-Funktion dreht (-inf,+inf) zu [0,1]. Ich denke, es ist nur aus historischen Gründen, die diesen Namen halten.

So etwas wie "Ich habe eine Regression gemacht, um Bilder zu klassifizieren. Insbesondere habe ich die logistische Regression verwendet." ist falsch.

Einfach eine hypothetische Funktion ausdrücken $ f $ sorgt für Regressionsalgorithmus, wenn $ f: x rightarrow mathbb {r} $. Somit logistische Funktion, die ist $ P (y = 1 | lambda, x) = dfrac {1} {1+e^{- lambda^tx} in [0,1] $ sorgt für einen Regressionsalgorithmus. Hier $ lambda $ ist Koeffizient oder Hyperebene aus geschulten Datensätzen & gefunden & $ x $ ist ein Datenpunkt. Hier, $ sign (p (y = 1 | lambda, x)) $ wird als Klasse angenommen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit datascience.stackexchange
scroll top