[PYTHON] Regression mit einem linearen Modell

Hallo zusammen. Ich bin jetzt [Maschinelles Lernen beginnend mit Python](https://www.amazon.co.jp/Python%E3%81%A7%E3%81%AF%E3%81%98%E3%82%81%E3 % 82% 8B% E6% A9% 9F% E6% A2% B0% E5% AD% A6% E7% BF% 92-% E2% 80% 95scikit-learn% E3% 81% A7% E5% AD% A6% E3% 81% B6% E7% 89% B9% E5% BE% B4% E9% 87% 8F% E3% 82% A8% E3% 83% B3% E3% 82% B8% E3% 83% 8B% E3% 82% A2% E3% 83% AA% E3% 83% B3% E3% 82% B0% E3% 81% A8% E6% A9% 9F% E6% A2% B0% E5% AD% A6% E7% BF% Ich studiere bei 92% E3% 81% AE% E5% 9F% BA% E7% A4% 8E-Andreas-C-Müller / dp / 4873117984).

Ein interessantes Konzept namens lineare Regression ist entstanden, daher sollte ich es ein wenig zusammenfassen.

Was ist überhaupt Rückkehr?

Regression (Kaiki, Englisch: Regression) dient dazu, das Modell Y = f (X) auf die Daten anzuwenden, wenn Y ein kontinuierlicher Wert in der Statistik ist. Mit anderen Worten, passen Sie das Modell zwischen der abhängigen Variablen (Zielvariable) Y und der unabhängigen Variablen (erklärende Variable) X der kontinuierlichen Skala an. Wenn X eindimensional ist, wird es als einfache Regression bezeichnet, und wenn X zweidimensional oder mehr ist, wird es als multiple Regression bezeichnet. Wikipedia

Mit anderen Worten, der Zweck der Regression besteht darin, auf der ** Vorhersage kontinuierlicher Werte ** zu landen. Zum Beispiel ... Vorhersage des ** Jahreseinkommens einer Person (Zielvariable) ** aus akademischem Hintergrund, Alter und Adresse (erklärende Variable). Prognostizieren Sie den ** Ertrag (Zielvariable) ** eines Maisbauern aus dem Ertrag, dem Wetter und der Anzahl der Beschäftigten des Vorjahres (erklärende Variable).

Was ist Regression mit einem linearen Modell?

Die Regression mit einem linearen Modell verwendet buchstäblich eine lineare Funktion, um die Zielvariable vorherzusagen.

Die allgemeine Vorhersageformel des linearen Modells im Regressionsproblem lautet

y = w[0] \times x[0] + w[1] \times x[1] + \dots + w[p] \times x[p] + b

Kann ausgedrückt werden als.

Hier gibt x [0] ... x [p] die ** Merkmalsmenge ** eines Datenpunkts an, w und b sind die ** Parameter ** des trainierten Modells und y ist * aus dem Modell. * Prognose **.

Mit anderen Worten, wenn das optimierte w und b aus den Trainingsdaten erhalten (gelernt) werden und ein neues x [0] ... x [p] eingegeben wird, Es kommt darauf an, ** y ** so genau wie möglich auszugeben.

Hier gibt es verschiedene Algorithmen zur Regression unter Verwendung eines linearen Modells. Der Unterschied zwischen diesen Modellen liegt in der Methode des Findens (Lernens) ** w, b ** und der Methode, die Komplexität des Modells zu leben.

Heute möchte ich auf die einfachste und klassischste lineare Regressionsmethode ** eingehen, normalerweise die Methode der kleinsten Quadrate (OLS) **.

Normalerweise kleinstes Quadrat (OLS)

Betrachten wir der Einfachheit halber eine erklärende Variable. Mit anderen Worten lautet die Formel

y = wx + b

Bei dieser linearen Regression werden w und b so berechnet, dass der mittlere quadratische Fehler zwischen y und dem vorhergesagten Wert in den Trainingsdaten minimiert wird. Da es in Sätzen schwer zu verstehen ist, ist es wie folgt, wenn man es mit einem Bild betrachtet.

IMG_2226.jpeg Mit anderen Worten, finden Sie ** w ** und ** b **, damit die Summe der Quadrate der Länge der blauen Linie (Fehler) so klein wie möglich ist und das Ergebnis eine rote gerade Linie ist.

Wenn Sie in einer mathematischen Formel schreiben

Durchschnittlicher quadratischer Fehler=\frac{1}{n}\sum_{i=1}^{n} (y_i - y'_i)^2,  (y_i:Wert in i-ten Trainingsdaten, y'_i:i-ter vorhergesagter Wert)

Wählen Sie w und b, damit dieser durchschnittliche quadratische Fehler klein wird. Das ist OLS. Es ist einfach und schön.

Beispielcode

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression

import mglearn

X, y =mglearn.datasets.make_wave(n_samples=60)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)

lr = LinearRegression().fit(X_train, y_train)

print("lr.coef_(Neigung ODER Gewicht) : {}".format(lr.coef_))
print("lr.intercept_(Sektion) : {}".format(lr.intercept_))

print("Training set score: {:.2f}".format(lr.score(X_train, y_train)))
print("test set score: {:.2f}".format(lr.score(X_test, y_test)))

Klicken Sie hier für Ergebnisse

lr.coef_(Neigung ODER Gewicht) : [0.39390555]
lr.intercept_(Sektion) : -0.031804343026759746
Training set score: 0.67
test set score: 0.66

Zeichnen wir diese gerade Linie. Figure_1.png

Die Vorhersage ist jedoch mit 66% nicht so gut. Vielleicht ist das unterpassend.

Nächstes Mal werden wir über verschiedene Regressionsmodelle sprechen, Ridge und Lasso. Habt alle eine schöne Nacht. Gute Nacht.

Recommended Posts

Regression mit einem linearen Modell
Lineare Regression mit Statistikmodellen
Vorhersage des heißen Sommers mit linearem Regressionsmodell
Lineare Regression
[Python] Lineare Regression mit Scicit-Learn
Robuste lineare Regression mit Scikit-Learn
Lineare Regression mit Student's t-Verteilung
<Kurs> Maschinelles Lernen Kapitel 1: Lineares Regressionsmodell
Mit OR-Tools erlernte Optimierung [Lineare Planung: Mehrstufiges Modell]
Modellbefestigung mit lmfit
Lineare Regression des maschinellen Lernens
Implementieren Sie mit stan ein zeitdiskretes logistisches Regressionsmodell
Lineare Programmierung mit PuLP
Führen Sie eine Regressionsanalyse mit NumPy durch
Versuchen Sie eine Regression mit TensorFlow
Multivariables Regressionsmodell mit Scikit-Learn - Ich habe versucht, SVR zu vergleichen und zu verifizieren
Einführung in die Tensorflow-About-Hypothese und die Kosten der linearen Regression
Maschinelles Lernen: Überwacht - Lineare Regression
Multiple Regressionsanalyse mit Keras
Ridge kehrt mit Mllib im Pyspark zurück
Lineare Regressionsmethode mit Numpy
Kalibrieren Sie das Modell mit PyCaret
Online lineare Regression in Python
Implementierung der logistischen Regression mit NumPy
Für diejenigen, die in der Atmosphäre analysieren (lineares Regressionsmodell 1)
Versuchen Sie, eine lineare Regression mit Pytorch mit Google Colaboratory zu implementieren
Verwenden Sie MLflow mit Databricks ④ - Anrufmodell -
Passen Sie Modell / Ebene / Metrik mit TensorFlow an
Anfänger des maschinellen Lernens versuchen eine lineare Regression
Linke äußere Verbindung im Django-Modell
Einfaches Klassifizierungsmodell mit neuronalem Netz
Generieren Sie automatisch ein Modellbeziehungsdiagramm mit Django
Einführung in die Bayes'sche statistische Modellierung mit Python ~ Versuch einer linearen Regression mit MCMC ~
Multi-Input / Multi-Output-Modell mit funktionaler API
Vergleich von Regressionsmodellen - ARMA vs. Random Forest Regression
[Python] Gemischtes Gaußsches Modell mit Pyro
Katzenerkennung mit OpenCV (Modellverteilung)
Erstellen Sie mit PySide einen Modelliterator
Validieren Sie das Trainingsmodell mit Pylearn2
Logistische Regressionsanalyse Selbst erstellt mit Python
Lineare Regression (für Anfänger) -Code Edition-
Seq2Seq (2) ~ Achtung Model Edition ~ mit Chainer
Invertiertes Pendel mit modellprädiktiver Steuerung
Sinuswellenvorhersage (Rückkehr) mit Pytorch
Versuchen Sie mit einem linearen Regressionsmodell auf Android [PyTorch Mobile] zu schließen
(Maschinelles Lernen) Ich habe versucht, die Bayes'sche lineare Regression bei der Implementierung sorgfältig zu verstehen
Erster TensorFlow (überarbeitete Ausgabe) - Lineare und logistische Regression
Ich habe eine multiple Regressionsanalyse mit Polypoly-Regression versucht
Algorithmus für maschinelles Lernen (Verallgemeinerung der linearen Regression)
Lineare Regression in Python (Statmodelle, Scikit-Learn, PyMC3)
Lassen Sie uns die Hyperparameter des Modells mit scikit-learn abstimmen!
Online lineare Regression in Python (Robuste Schätzung)
Maschinelles Lernen mit Python (2) Einfache Regressionsanalyse
PRML-Implementierung Kapitel 3 Lineares Basisfunktionsmodell
Achtung Seq2 Führen Sie das Dialogmodell mit Seq aus
Unterschied zwischen linearer Regression, Ridge-Regression und Lasso-Regression
Plattenreproduktion der Bayes'schen linearen Regression (PRML §3.3)
Regressionsmodell mit Scikit-Learn und dessen Visualisierung