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.
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).
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) **.
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.
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.
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.
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