Die grundlegende Basis hinter diesem häufig verwendeten Algorithmus
Lineare Regression, ist zwar ein nützliches Werkzeug, hat aber deutliche Grenzen. Wie ihr Name schon andeutet, kann sie nicht ohne Weiteres auf einen nicht-linearen Datensatz angewendet werden. Sie kann nur verwendet werden, um Vorhersagen zu treffen, die in den Bereich des Trainingsdatensatzes passen. Und, was für diesen Artikel am wichtigsten ist, sie kann nur an Datensätze mit einer einzigen abhängigen Variable und einer einzigen unabhängigen Variable angepasst werden.
Hier kommt die multiple Regression ins Spiel. Sie kann zwar nicht alle drei Schwächen der linearen Regression überwinden, aber sie ist speziell dafür ausgelegt, Regressionen auf Modelle mit einer einzelnen abhängigen Variable und mehreren unabhängigen Variablen zu erstellen.
Was ist die allgemeine Form der multiplen Regression?
Die allgemeine Form der Gleichung für die lineare Regression lautet:
y = B * x + A
wobei y die abhängige Variable, x die unabhängige Variable und A und B die Koeffizienten sind, die die Gleichung bestimmen. Der Unterschied zwischen der Gleichung für die lineare Regression und der Gleichung für die multiple Regression besteht darin, dass die Gleichung für die multiple Regression in der Lage sein muss, mehrere Eingaben zu verarbeiten, anstatt nur die eine Eingabe der linearen Regression. Um dieser Änderung Rechnung zu tragen, hat die Gleichung für multiple Regression die Form:
y = B_1 * x_1 + B_2 * x_2 + … + B_n * x_n + A
In dieser Gleichung bezeichnen die Indizes die verschiedenen unabhängigen Variablen. x_1 ist der Wert der ersten unabhängigen Variable, x_2 ist der Wert der zweiten unabhängigen Variable und so weiter. So geht es weiter, wenn mehr und mehr unabhängige Variablen hinzugefügt werden, bis die letzte unabhängige Variable, x_n, zur Gleichung hinzugefügt wird. Beachten Sie, dass dieses Modell eine beliebige Anzahl, n, unabhängiger Variablen zulässt und weitere Terme nach Bedarf hinzugefügt werden. Die Koeffizienten von B verwenden die gleichen Indizes, was anzeigt, dass es sich um die Koeffizienten handelt, die mit jeder unabhängigen Variable verbunden sind. A ist wie zuvor einfach eine Konstante, die den Wert der abhängigen Variable y angibt, wenn alle unabhängigen Variablen, die xs, Null sind.
Stellen Sie sich als Beispiel vor, dass Sie ein Verkehrsplaner in Ihrer Stadt sind und die durchschnittliche Pendelzeit der Autofahrer schätzen müssen, die von der Ostseite der Stadt in den Westen fahren. Sie wissen nicht, wie lange es im Durchschnitt dauert, aber Sie wissen, dass es von einer Reihe von Faktoren abhängen wird. Sie hängt wahrscheinlich von Dingen wie der gefahrenen Strecke, der Anzahl der Ampeln auf der Route und der Anzahl der anderen Autos auf der Straße ab. In diesem Fall könnten Sie eine lineare multiple Regressionsgleichung wie die folgende aufstellen:
y = B_1 * Entfernung + B_2 * Ampeln + B_3 * Autos + A
wobei y die durchschnittliche Pendelzeit ist, Entfernung die Entfernung zwischen dem Start- und dem Zielort, Ampeln die Anzahl der Ampeln auf der Strecke und A eine Konstante ist, die andere Zeitverbraucher repräsentiert (z.B. Anlegen des Sicherheitsgurtes, Starten des Autos, vielleicht Anhalten in einem Café).
Nachdem Sie nun Ihr Modell für die Vorhersage der Pendelzeit haben, müssen Sie das Modell an Ihren Trainingsdatensatz anpassen, um die Fehler zu minimieren.
Wie passe ich ein Modell mit multipler Regression an?
Analog dazu, wie wir die Summe der quadrierten Fehler minimiert haben, um B im Beispiel der linearen Regression zu finden, minimieren wir die Summe der quadrierten Fehler, um alle Terme B in der multiplen Regression zu finden.Der Unterschied besteht darin, dass es keine einfache algebraische Lösung gibt, um die A- und B-Terme zu finden, da es mehrere Terme und eine unbestimmte Anzahl von Termen gibt, bis Sie das Modell erstellen. Das bedeutet, dass wir den stochastischen Gradientenabstieg verwenden müssen. Der stochastische Gradientenabstieg ist ein ausreichend großes Thema, um einen weiteren Artikel zu benötigen, daher werde ich hier nicht in die Details eintauchen. Eine gute Beschreibung des Verfahrens findet sich jedoch in Data Science from Scratch von Joel Gros. Glücklicherweise können wir die Gleichungen, die für die Implementierung dieser Lösung benötigt werden, noch vorstellen, bevor wir uns mit den Details beschäftigen.
Der erste Schritt ist die Summierung der quadrierten Fehler an jedem Punkt. Dies geschieht in der Form:
Fehler_Punkt = (Ist – Vorhersage)²
wobei Fehler der Fehler im Modell bei der Vorhersage der Pendelzeit einer Person ist, Ist der tatsächliche Wert (oder die tatsächliche Pendelzeit dieser Person), und Vorhersage der vom Modell vorhergesagte Wert (oder die vom Modell vorhergesagte Pendelzeit dieser Person). Ist – Vorhersage ergibt den Fehler für einen Punkt, dann ergibt die Quadrierung den quadrierten Fehler für einen Punkt. Denken Sie daran, dass die Quadrierung des Fehlers wichtig ist, weil einige Fehler positiv und andere negativ sein werden, und wenn sie nicht quadriert werden, heben sich diese Fehler gegenseitig auf, wodurch der Gesamtfehler des Modells viel kleiner aussieht, als er tatsächlich ist.
Um den Fehler des Modells zu finden, muss der Fehler von jedem Punkt über den gesamten Datensatz summiert werden. Das bedeutet im Wesentlichen, dass Sie das Modell verwenden, um die Pendelzeit für jeden vorhandenen Datenpunkt vorherzusagen, diesen Wert von der tatsächlichen Pendelzeit im Datenpunkt subtrahieren, um den Fehler zu finden, diesen Fehler quadrieren und dann alle quadrierten Fehler zusammenzählen. Mit anderen Worten, der Fehler des Modells ist:
Fehler_Modell = Summe(Ist_i – Vorhersage_i)²
wobei i ein Index ist, der durch alle Punkte im Datensatz iteriert.
Wenn die Fehlerfunktion bestimmt ist, müssen Sie Modell und Fehlerfunktion durch einen stochastischen Gradientenabstiegsalgorithmus schicken, um den Fehler zu minimieren. Dies geschieht durch Minimierung der B-Terme in der Gleichung. Ich werde bald einen detaillierten Artikel darüber schreiben, wie man einen stochastischen Gradientenabstiegsalgorithmus erstellt, aber für den Moment können Sie die Details in Data Science from Scratch finden oder die Tools im Python-Paket scikit-learn verwenden.
Nachdem Sie das Modell an Ihre Trainingsdaten angepasst haben, ist der nächste Schritt, sicherzustellen, dass es gut zum Modell passt.
Wie stelle ich sicher, dass das Modell gut zu den Daten passt?
Die kurze Antwort ist: Verwenden Sie denselben r²-Wert, der auch für die lineare Regression verwendet wurde. Der r²-Wert, auch Bestimmtheitsmaß genannt, gibt den Anteil der Änderung im Datensatz an, der durch das Modell vorhergesagt wird. Es ist ein Wert zwischen 0 und 1, wobei 0 bedeutet, dass das Modell das Ergebnis nicht vorhersagen kann, und 1 bedeutet, dass das Modell das Ergebnis perfekt vorhersagt. Sie sollten erwarten, dass der r²-Wert eines jeden Modells, das Sie erstellen, zwischen diesen beiden Werten liegt (wenn nicht, haben Sie irgendwo einen Fehler gemacht).
Das Bestimmtheitsmaß für ein Modell kann mit den folgenden Gleichungen berechnet werden:
r² = 1 – (Summe der quadrierten Fehler) / (Gesamtsumme der Quadrate)
(Gesamtsumme der Quadrate) = Summe(y_i – Mittelwert(y))²
(Summe der quadrierten Fehler) = Summe((Tatsächliche_i – Vorhersage_i)²)
Zusätzliche Terme verbessern das Modell immer, unabhängig davon, ob der neue Term einen signifikanten Wert zum Modell beiträgt oder nicht.
Hier wird das Testen der Anpassung eines multiplen Regressionsmodells kompliziert. Das Hinzufügen von weiteren Termen zur multiplen Regression verbessert von Natur aus die Anpassung. Es gibt dem Modell einen neuen Term, den es zur Anpassung der Daten verwenden kann, und einen neuen Koeffizienten, den es variieren kann, um eine bessere Anpassung zu erzwingen. Zusätzliche Terme verbessern das Modell immer, unabhängig davon, ob der neue Term einen signifikanten Wert zum Modell beiträgt oder nicht. In der Tat kann das Hinzufügen neuer Variablen das Modell sogar verschlechtern. Durch das Hinzufügen von immer mehr Variablen wird es immer wahrscheinlicher, dass Sie Ihr Modell an die Trainingsdaten überanpassen. Dies kann zu einem Modell führen, das Trends erfindet, die nicht wirklich existieren, nur um das Modell zu zwingen, mit den Punkten übereinzustimmen, die tatsächlich existieren.
Diese Tatsache hat wichtige Auswirkungen bei der Entwicklung multipler Regressionsmodelle. Ja, man könnte immer mehr und mehr Terme zur Gleichung hinzufügen, bis man entweder eine perfekte Übereinstimmung erhält oder einem die Variablen ausgehen, die man hinzufügen kann. Aber dann hätten Sie am Ende ein sehr großes, sehr komplexes Modell, das voller Terme ist, die für den vorherzusagenden Fall eigentlich nicht relevant sind. In unserem Beispiel der Vorhersage von Pendelzeiten könnten Sie Ihr Modell verbessern, indem Sie einen Term hinzufügen, der die scheinbare Größe des Jupiters am Nachthimmel darstellt. Aber das wirkt sich nicht wirklich auf die Pendlerzeiten aus, oder?
Wie kann ich herausfinden, welche Parameter am wichtigsten sind?
Eine Möglichkeit ist, den Standardfehler jedes Koeffizienten zu berechnen. Der Standardfehler gibt an, wie sicher das Modell in Bezug auf jeden Koeffizienten ist, wobei größere Werte darauf hinweisen, dass das Modell in Bezug auf diesen Parameter weniger sicher ist. Dies ist intuitiv, auch ohne die zugrundeliegenden Gleichungen zu sehen – Wenn der Fehler, der mit einem Term verbunden ist, typischerweise hoch ist, bedeutet das, dass er keine sehr starke Auswirkung auf die Anpassung des Modells an den Datensatz hat.
Die Berechnung des Standardfehlers ist ein komplizierter statistischer Prozess und kann nicht in einem kurzen Medium-Artikel kurz beschrieben werden. Glücklicherweise gibt es Python-Pakete, mit denen Sie das für Sie erledigen können. Die Frage wurde auf StackOverflow schon mindestens einmal gestellt und beantwortet. Diese Tools sollten Ihnen den Einstieg erleichtern.
Nachdem Sie den Standardfehler jedes Koeffizienten berechnet haben, können Sie die Ergebnisse verwenden, um zu identifizieren, welche Koeffizienten am höchsten und welche am niedrigsten sind. Da hohe Werte darauf hinweisen, dass diese Terme weniger Vorhersagewert zum Modell beitragen, können Sie wissen, dass diese Terme am wenigsten wichtig sind, um sie zu behalten. An diesem Punkt können Sie damit beginnen, auszuwählen, welche Terme im Modell entfernt werden können, um die Anzahl der Terme in der Gleichung zu reduzieren, ohne die Vorhersagekraft des Modells dramatisch zu verringern.
Eine andere Methode ist die Verwendung einer Technik, die Regularisierung genannt wird. Die Regularisierung funktioniert, indem ein neuer Term zur Fehlerberechnung hinzugefügt wird, der auf der Anzahl der Terme in der multiplen Regressionsgleichung basiert. Mehr Terme in der Gleichung führen von Natur aus zu einem höheren Regularisierungsfehler, während weniger Terme von Natur aus zu einem niedrigeren Regularisierungsfehler führen. Zusätzlich kann die Strafe für das Hinzufügen von Termen in der Regularisierungsgleichung nach Belieben erhöht oder verringert werden. Eine Erhöhung der Strafe führt ebenfalls zu einem höheren Regularisierungsfehler, während eine Verringerung der Strafe zu einem niedrigeren Regularisierungsfehler führt.
Wenn ein Regularisierungsterm zur Fehlergleichung hinzugefügt wird, bedeutet die Minimierung des Fehlers nicht nur die Minimierung des Fehlers im Modell, sondern auch die Minimierung der Anzahl der Terme in der Gleichung. Dies führt naturgemäß zu einem Modell mit einer schlechteren Anpassung an die Trainingsdaten, aber auch zu einem Modell mit weniger Termen in der Gleichung. Höhere Penalty/Term-Werte im Regularisierungsfehler erhöhen den Druck auf das Modell, weniger Terme zu haben.
Joel Gros liefert in seinem Buch „Data Science from Scratch“ ein gutes Beispiel für die Verwendung der Ridge-Regression zur Regularisierung.
Wie kann ich dieses Modell verstehen?
Das Modell, das Sie erstellt haben, ist nicht nur eine Gleichung mit einem Haufen Zahlen darin. Jeder der Koeffizienten, die Sie gerade abgeleitet haben, gibt die Auswirkung an, die eine unabhängige Variable auf die abhängige Variable hat, unter der Annahme, dass alle anderen gleich gehalten werden. Unser Beispiel für die Pendelzeit besagt zum Beispiel, dass der durchschnittliche Pendelweg für jede Ampel im Pendelweg einer Person B_2 Minuten länger dauert. Wenn der Modellentwicklungsprozess 2,32 für B_2 ergibt, bedeutet das, dass jede Ampel auf dem Weg einer Person die Fahrzeit um 2,32 Minuten verlängert.
Das ist ein weiterer Grund, warum es wichtig ist, die Anzahl der Terme in der Gleichung gering zu halten. Je mehr Begriffe hinzugefügt werden, desto schwieriger wird es, den Überblick über die physikalische Bedeutung der einzelnen Begriffe zu behalten. Es wird auch schwieriger, das Vorhandensein eines jeden Terms zu rechtfertigen. Ich bin sicher, dass jeder, der sich auf das Modell zur Vorhersage der Pendelzeit verlässt, einen Term für die Pendeldistanz akzeptieren würde, aber viel weniger einen Term für die Größe des Jupiters am Nachthimmel.
Wie kann dieses Modell erweitert werden?
Beachten Sie, dass dieses Modell nichts darüber aussagt, wie sich die Parameter gegenseitig beeinflussen könnten. Wenn man sich die Gleichung ansieht, gibt es keine Möglichkeit, dass es das könnte. Die verschiedenen Koeffizienten sind alle nur mit einem einzigen physikalischen Parameter verbunden. Wenn Sie glauben, dass zwei Terme miteinander verbunden sind, könnten Sie einen neuen Term erstellen, der auf der Kombination dieser beiden basiert. Zum Beispiel könnte die Anzahl der Ampeln auf dem Weg eine Funktion der Entfernung des Weges sein. Eine mögliche Gleichung dafür könnte sein:
Stoplights = C_1 * Distance + D
wobei C_1 und D Regressionskoeffizienten sind, ähnlich wie B und A in der Regressionsgleichung für die Pendelstrecke. Dieser Term für die Ampeln könnte dann in die Regressionsgleichung für die Pendeldistanz eingesetzt werden, so dass das Modell diese Beziehung erfassen kann.
Eine weitere mögliche Modifikation beinhaltet das Hinzufügen von nicht-linearen Eingaben. Das multiple Regressionsmodell selbst ist nur in der Lage, linear zu sein, was eine Einschränkung darstellt. Sie können jedoch nicht-lineare Terme in das Modell einfügen. Nehmen wir zum Beispiel an, dass eine Ampel, die sich rückwärts bewegt, den Verkehr daran hindert, durch eine vorherige Ampel zu fahren. Dies könnte zu einem exponentiellen Einfluss von Ampeln auf die Pendelzeit führen. Sie könnten einen neuen Term erstellen, um dies zu erfassen, und den Algorithmus für die Pendelstrecke entsprechend anpassen. Das würde etwa so aussehen:
Stoplights_Squared = Stoplights²
y = B_1 * Entfernung + B_2 * Stoplights + B_3 * Autos + B_4 * Stoplights_Squared + C
Diese beiden Gleichungen ergeben zusammen einen linearen Regressionsterm für Ihre nichtlineare Eingabe Stoplights_Squared.
Zusammenfassung
Die mehrfache Regression ist eine Erweiterung der linearen Regressionsmodelle, die Vorhersagen für Systeme mit mehreren unabhängigen Variablen ermöglicht. Dazu werden einfach weitere Terme zur linearen Regressionsgleichung hinzugefügt, wobei jeder Term die Auswirkung eines anderen physikalischen Parameters darstellt.
Es handelt sich dabei immer noch um ein lineares Modell, was bedeutet, dass die im Modell enthaltenen Terme nicht in der Lage sind, irgendwelche Beziehungen untereinander aufzuzeigen oder irgendeine Art von nicht-linearem Trend darzustellen. Diese Nachteile können überwunden werden, indem modifizierte Terme in die Gleichung aufgenommen werden. Ein neuer Parameter könnte durch eine andere Gleichung gesteuert werden, die die Beziehung zwischen oder Variablen verfolgt oder die einen nicht-linearen Trend auf die Variable anwendet. Auf diese Weise können die unabhängigen linearen Trends im multiplen Regressionsmodell gezwungen werden, Beziehungen zwischen den beiden und/oder nichtlineare Auswirkungen zu erfassen.
Da es mehr Parameter im Modell gibt als bei der einfachen linearen Regression, ist mehr Sorgfalt bei der Erstellung der Gleichung erforderlich. Wenn man mehr Terme hinzufügt, verbessert sich zwar die Anpassung an die Daten, aber die neuen Terme haben möglicherweise keine physikalische Bedeutung. Dies ist gefährlich, weil es zu einem Modell führt, das zwar zu den Daten passt, aber eigentlich nichts Nützliches bedeutet. Außerdem erhöhen mehr Terme die Wahrscheinlichkeit einer Überanpassung des Modells, was zu potenziell katastrophalen Ergebnissen bei der tatsächlichen Vorhersage von Werten führt.
Es gibt viele Techniken zur Begrenzung der Anzahl der Parameter und der damit verbundenen Nachteile in diesen Modellen. Zwei davon sind die Berechnung des Standardfehlers der einzelnen Koeffizienten und die Regularisierung. Durch die Berechnung des Standardfehlers können Sie sehen, welche Terme für das Modell am wenigsten wertvoll sind und dementsprechend überflüssige Terme löschen. Die Regularisierung geht noch einen Schritt weiter, indem sie einen Fehlerterm für erhöhte Terme im Modell hinzufügt, wodurch die Anpassungsgüte tatsächlich reduziert wird, wenn mehr Terme hinzugefügt werden. Diese Methode hilft Ihnen dabei, ein Gleichgewicht zwischen dem Entfernen von Termen zu finden, um die Nachteile zusätzlicher Terme zu reduzieren, und gleichzeitig genügend der wichtigsten Terme einzubeziehen, um eine gute Anpassung zu erzielen.