Polynomiale Regression von Grund auf in Python für Anfänger

Blog

Polynomiale Regression von Grund auf in Python für Anfänger

Polynomiale Regression in einer verbesserten Version der linearen Regression. Wenn Sie die lineare Regression kennen, wird es für Sie einfach sein. Wenn nicht, erkläre ich die Formeln hier in diesem Artikel. Es gibt andere fortschrittlichere und effizientere maschinelle Lernalgorithmen. Es ist jedoch eine gute Idee, lineare Regressionstechniken zu erlernen. Denn sie sind einfach, schnell und funktionieren mit sehr bekannten Formeln. Obwohl es mit einem komplexen Datensatz möglicherweise nicht funktioniert.

Polynomiale Regressionsformel

Die lineare Regression kann nur dann gut funktionieren, wenn eine lineare Korrelation zwischen den Eingabevariablen und der Ausgabevariablen besteht. Also kam die polynomiale Regressionstechnik heraus. Es könnte die Beziehung zwischen Eingabe-Features und der Ausgabevariable besser finden, selbst wenn die Beziehung nicht linear ist. Es verwendet die gleiche Formel wie die lineare Regression:

Y = BX + C

Ich bin sicher, wir haben diese Formel alle in der Schule gelernt. Für die lineare Regression verwenden wir Symbole wie diese:

Hier erhalten wir X und Y aus dem Datensatz. X ist das Eingabe-Feature und Y ist die Ausgabevariable. Theta-Werte werden zufällig initialisiert.

Für die polynomiale Regression lautet die Formel wie folgt:

Wir fügen hier weitere Begriffe hinzu. Wir verwenden dieselben Eingabefunktionen und verwenden verschiedene Exponentialfunktionen, um mehr Funktionen zu erstellen. Auf diese Weise kann unser Algorithmus die Daten besser kennenlernen.

telefonnummer validierung javascript

Die Potenzen müssen nicht 2, 3 oder 4 sein. Sie können auch 1/2, 1/3 oder 1/4 sein. Dann sieht die Formel so aus:

Kostenfunktion und Gradientenabstieg

Die Kostenfunktion gibt eine Vorstellung davon, wie weit die vorhergesagte Hypothese von den Werten entfernt ist. Die Formel lautet:

Diese Gleichung kann kompliziert aussehen. Es führt eine einfache Rechnung durch. Zuerst die Hypothese von der ursprünglichen Ausgabevariablen abziehen. Nehmen Sie ein Quadrat, um die negativen Werte zu eliminieren. Dann dividieren Sie diesen Wert durch das 2-fache der Anzahl der Trainingsbeispiele.

Was ist Gradientenabstieg? Es hilft bei der Feinabstimmung unserer zufällig initialisierten Theta-Werte. Ich gehe hier nicht auf die Differenzialrechnung ein. Wenn Sie das partielle Differential der Kostenfunktion für jedes Theta nehmen, können wir diese Formeln herleiten:

Alpha ist hier die Lernrate. Sie wählen den Wert von Alpha.

Python-Implementierung der polynomischen Regression

Hier ist die schrittweise Implementierung der polynomischen Regression.

  1. Für dieses Beispiel verwenden wir einen einfachen Dummy-Datensatz, der die Gehälter für Positionen enthält. Importieren Sie den Datensatz:
import pandas as pd import numpy as np df = pd.read_csv('position_salaries.csv') df.head()

2. Fügen Sie die Bias-Spalte für Theta 0 hinzu. Diese Bias-Spalte enthält nur 1. Denn wenn Sie 1 mit einer Zahl multiplizieren, ändert sie sich nicht.

df = pd.concat([pd.Series(1, index=df.index, name='00'), df], axis=1) df.head()

3. Löschen Sie die Spalte „Position“. Weil die Spalte „Position“ Strings enthält und Algorithmen keine Strings verstehen. Wir haben die Spalte „Level“, um die Positionen darzustellen.

df = df.drop(columns='Position')

4. Definieren Sie unsere Eingangsvariable X und die Ausgangsvariable y. In diesem Beispiel ist „Level“ das Eingabemerkmal und „Gehalt“ die Ausgabevariable. Wir wollen das Gehalt für die Stufen vorhersagen.

y = df['Salary'] X = df.drop(columns = 'Salary') X.head()

5. Nehmen Sie die Exponentialwerte der Spalte „Level“, um die Spalten „Level1“ und „Level2“ zu erstellen.

X['Level1'] = X['Level']**2 X['Level2'] = X['Level']**3 X.head()

6. Normalisieren Sie nun die Daten. Teilen Sie jede Spalte durch den Maximalwert dieser Spalte. Auf diese Weise erhalten wir die Werte jeder Spalte im Bereich von 0 bis 1. Der Algorithmus sollte auch ohne Normalisierung funktionieren. Aber es hilft, schneller zu konvergieren. Berechnen Sie auch den Wert von m, der die Länge des Datensatzes ist.

m = len(X) X = X/X.max()

#python #maschinelles Lernen #data science

zudatascience.com

Polynomiale Regression von Grund auf in Python für Anfänger

Erfahren Sie, wie Sie die polynomiale Regression von Grund auf mit einfachem Python-Code implementieren. Polynomiale Regression von Grund auf in Python für Anfänger