Klicken Sie hier bis gestern
Sie werden in 100 Tagen Ingenieur - Tag 76 - Programmierung - Über maschinelles Lernen
Sie werden Ingenieur in 100 Tagen - Tag 70 - Programmieren - Über Scraping
Sie werden in 100 Tagen Ingenieur - Tag 63 - Programmierung - Über Wahrscheinlichkeit 1
Sie werden in 100 Tagen Ingenieur - Tag 59 - Programmierung - Über Algorithmen
Sie werden in 100 Tagen Ingenieur --- Tag 53 - Git - Über Git
Sie werden in 100 Tagen Ingenieur - Tag 42 - Cloud - Über Cloud-Dienste
Sie werden in 100 Tagen Ingenieur - Tag 36 - Datenbank - Über die Datenbank
Sie werden Ingenieur in 100-Tage-24-Python-Grundlagen der Python-Sprache 1
Sie werden in 100 Tagen Ingenieur - Tag 18 - JavaScript - Grundlagen von JavaScript 1
Sie werden in 100 Tagen Ingenieur - 14. Tag - CSS - CSS-Grundlagen 1
Sie werden in 100 Tagen Ingenieur - Tag 6 - HTML - HTML-Grundlagen 1
Diese Zeit ist eine Fortsetzung der Geschichte über maschinelles Lernen.
Ich werde erklären, was Sie zum ersten Mal mit maschinellem Lernen tun können, aber was Sie mit maschinellem Lernen tun können Grundsätzlich gibt es drei.
· Rückkehr ・ Klassifizierung ・ Clustering
Grob gesagt wird es zu "Vorhersage", aber der Teil dessen, was "vorherzusagen" ist, ändert sich.
・ Return: Numerische Werte vorhersagen ・ Klassifizierung: Kategorien vorhersagen ・ Clustering: Fühlen Sie sich gut an
Das "Rückgabemodell" sagt den numerischen Wert voraus.
Die diesmal verwendeten Daten sind die Bostoner Hauspreisdaten, die an "scikit-learn" angehängt sind.
Säule | Erläuterung |
---|---|
CRIM | Pro-Kopf-Kriminalitätsrate nach Städten |
ZN | Die Wohngrundstücksquote beträgt 25,Pakete über 000 Quadratfuß |
INDUS | Prozentsatz der Nicht-Einzelhändler-Hektar pro Stadt |
CHAS | Charlie's River Dummy Variable (1 wenn an der Flussgrenze, 0 sonst) |
NOX | Stickstoffmonoxidkonzentration (1 von 10 Millionen) |
RM | Durchschnittliche Anzahl der Zimmer pro Wohneinheit |
AGE | Altersverhältnis der eigenen und besetzten Einheiten, die vor 1940 gebaut wurden |
DIS | Gewichtete Entfernung zu 5 Bostoner Beschäftigungszentren |
RAD | Indikator für die Zugänglichkeit zur radialen Autobahn |
TAX | 10,Voller Steuersatz pro 000 USD |
PTRATIO | Schüler-Lehrer-Verhältnis |
B | Prozentsatz der Schwarzen in der Stadt |
LSTAT | Niedrige Rate pro Kopf |
MEDV | Median Owner-Resident Homes bei 1000 $ |
Die "MEDV" ist die "Zielvariable", die Sie vorhersagen möchten, und die anderen sind die "erklärenden Variablen".
Lassen Sie uns zunächst sehen, um welche Art von Daten es sich handelt.
from sklearn.datasets import load_boston
#Daten lesen
boston = load_boston()
#Erstellen eines Datenrahmens
boston_df = pd.DataFrame(data=boston.data,columns=boston.feature_names)
boston_df['MEDV'] = boston.target
#Datenübersicht
print(boston_df.shape)
boston_df.head()
CRIM | ZN | INDUS | CHAS | NOX | RM | AGE | DIS | RAD | TAX | PTRATIO | B | LSTAT | MEDV | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0.00632 | 18 | 2.31 | 0 | 0.538 | 6.575 | 65.2 | 4.09 | 1 | 296 | 15.3 | 396.9 | 4.98 | 24 |
1 | 0.02731 | 0 | 7.07 | 0 | 0.469 | 6.421 | 78.9 | 4.9671 | 2 | 242 | 17.8 | 396.9 | 9.14 | 21.6 |
2 | 0.02729 | 0 | 7.07 | 0 | 0.469 | 7.185 | 61.1 | 4.9671 | 2 | 242 | 17.8 | 392.83 | 4.03 | 34.7 |
3 | 0.03237 | 0 | 2.18 | 0 | 0.458 | 6.998 | 45.8 | 6.0622 | 3 | 222 | 18.7 | 394.63 | 2.94 | 33.4 |
4 | 0.06905 | 0 | 2.18 | 0 | 0.458 | 7.147 | 54.2 | 6.0622 | 3 | 222 | 18.7 | 396.9 | 5.33 | 36.2 |
Es enthält numerische Daten.
Lassen Sie es uns visualisieren, um die Beziehung zwischen den einzelnen Spalten zu sehen.
sns.pairplot(data=boston_df[list(boston_df.columns[0:6])+['MEDV']])
plt.show()
sns.pairplot(data=boston_df[list(boston_df.columns[6:13])+['MEDV']])
plt.show()
Schauen wir uns auch die Korrelation jeder Spalte an.
boston_df.corr()
CRIM | ZN | INDUS | CHAS | NOX | RM | AGE | DIS | RAD | TAX | PTRATIO | B | LSTAT | MEDV | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
CRIM | 1 | -0.200469 | 0.406583 | -0.055892 | 0.420972 | -0.219247 | 0.352734 | -0.37967 | 0.625505 | 0.582764 | 0.289946 | -0.385064 | 0.455621 | -0.388305 |
ZN | -0.200469 | 1 | -0.533828 | -0.042697 | -0.516604 | 0.311991 | -0.569537 | 0.664408 | -0.311948 | -0.314563 | -0.391679 | 0.17552 | -0.412995 | 0.360445 |
INDUS | 0.406583 | -0.533828 | 1 | 0.062938 | 0.763651 | -0.391676 | 0.644779 | -0.708027 | 0.595129 | 0.72076 | 0.383248 | -0.356977 | 0.6038 | -0.483725 |
CHAS | -0.055892 | -0.042697 | 0.062938 | 1 | 0.091203 | 0.091251 | 0.086518 | -0.099176 | -0.007368 | -0.035587 | -0.121515 | 0.048788 | -0.053929 | 0.17526 |
NOX | 0.420972 | -0.516604 | 0.763651 | 0.091203 | 1 | -0.302188 | 0.73147 | -0.76923 | 0.611441 | 0.668023 | 0.188933 | -0.380051 | 0.590879 | -0.427321 |
RM | -0.219247 | 0.311991 | -0.391676 | 0.091251 | -0.302188 | 1 | -0.240265 | 0.205246 | -0.209847 | -0.292048 | -0.355501 | 0.128069 | -0.613808 | 0.69536 |
AGE | 0.352734 | -0.569537 | 0.644779 | 0.086518 | 0.73147 | -0.240265 | 1 | -0.747881 | 0.456022 | 0.506456 | 0.261515 | -0.273534 | 0.602339 | -0.376955 |
DIS | -0.37967 | 0.664408 | -0.708027 | -0.099176 | -0.76923 | 0.205246 | -0.747881 | 1 | -0.494588 | -0.534432 | -0.232471 | 0.291512 | -0.496996 | 0.249929 |
RAD | 0.625505 | -0.311948 | 0.595129 | -0.007368 | 0.611441 | -0.209847 | 0.456022 | -0.494588 | 1 | 0.910228 | 0.464741 | -0.444413 | 0.488676 | -0.381626 |
TAX | 0.582764 | -0.314563 | 0.72076 | -0.035587 | 0.668023 | -0.292048 | 0.506456 | -0.534432 | 0.910228 | 1 | 0.460853 | -0.441808 | 0.543993 | -0.468536 |
PTRATIO | 0.289946 | -0.391679 | 0.383248 | -0.121515 | 0.188933 | -0.355501 | 0.261515 | -0.232471 | 0.464741 | 0.460853 | 1 | -0.177383 | 0.374044 | -0.507787 |
B | -0.385064 | 0.17552 | -0.356977 | 0.048788 | -0.380051 | 0.128069 | -0.273534 | 0.291512 | -0.444413 | -0.441808 | -0.177383 | 1 | -0.366087 | 0.333461 |
LSTAT | 0.455621 | -0.412995 | 0.6038 | -0.053929 | 0.590879 | -0.613808 | 0.602339 | -0.496996 | 0.488676 | 0.543993 | 0.374044 | -0.366087 | 1 | -0.737663 |
MEDV | -0.388305 | 0.360445 | -0.483725 | 0.17526 | -0.427321 | 0.69536 | -0.376955 | 0.249929 | -0.381626 | -0.468536 | -0.507787 | 0.333461 | -0.737663 | 1 |
Mit Ausnahme einiger Spalten scheint die Korrelation zwischen den einzelnen Spalten nicht so hoch zu sein.
Das "Regressionsmodell" möchte sich anhand dieser Spalten auf den Wert einer "Zielvariablen" stützen.
** Datenaufteilung **
Teilen Sie zunächst die Daten für Training und Test auf. Diesmal teilen wir uns um 6: 4.
from sklearn.model_selection import train_test_split
#6 für Trainings- und Testdaten:Geteilt durch 4
X = boston_df.drop('MEDV',axis=1)
Y = boston_df['MEDV']
x_train, x_test, y_train, y_test = train_test_split(X, Y, test_size=0.4, random_state=0)
** Modellierung ** Erstellen Sie als Nächstes ein Vorhersagemodell.
Hier werden wir ein Regressionsmodell unter Verwendung des "linearen Regressionsmodells" mit der Zielvariablen als "MEDV" und den erklärenden Variablen als "CRIM ~ LSTAT" erstellen.
Grob gesagt ist Y = x1 * a + x2 * b + ... ϵ
Es ist ein Bild davon, einen solchen Ausdruck zu machen.
"a" und "b" heißen "Rückgabekoeffizient", und jede Variable ist Es zeigt, wie viel es zur Vorhersage der Zielvariablen beiträgt.
"ϵ" heißt "Residuum" und repräsentiert die "Abweichung" aller Daten und Ausdrücke. In dem "linearen Regressionsmodell" wird die Summe der "Restquadrate" jeder Daten addiert. Finden Sie jeden Koeffizienten, indem Sie ihn minimieren.
Die verwendete Bibliothek heißt "linear_model".
from sklearn import linear_model
#Lernen mit linearer Regression
model = linear_model.LinearRegression()
model.fit(x_train, y_train)
Die Modellierung erfolgt sofort, indem die Bibliothek aufgerufen und "fit" ausgeführt wird.
** Genauigkeitsüberprüfung **
Bei der Genauigkeitsüberprüfung des Regressionsmodells werden wir untersuchen, inwieweit sich die Vorhersage und die tatsächliche Messung unterscheiden.
Als häufig verwendeter Index
nean squared error (MSE)
und
Root Mean Squared Error (RMSE)
Es gibt einen R Quadratwert
$ R ^ 2 $.
Die `MSE ist der Durchschnittswert der Summe der Quadrate der Fehler, und wenn sowohl die Trainingsdaten als auch die Testdaten klein sind, wird die Leistung des Modells als gut beurteilt.
RMSE
ist der Wert der Quadratwurzel der durchschnittlichen Quadratsumme des Fehlers.
Der "R-Quadrat-Wert" $ R ^ 2 $ nimmt 1, wenn "MSE" 0 ist, und je besser die Leistung des Modells ist, desto näher an 1.
from sklearn.metrics import mean_squared_error
y_pred = model.predict(x_test)
print('MSE : {0} '.format(mean_squared_error(y_test, y_pred)))
print('RMSE : {0} '.format(np.sqrt(mean_squared_error(y_test, y_pred))))
print('R^2 : {0}'.format(model.score(x_test, y_test)))
MSE : 25.79036215070245 RMSE : 5.078421226198399 R^2 : 0.6882607142538019
Übrigens, wenn man die Genauigkeit betrachtet, ist der Wert von "RMSE" um ungefähr 5,0 niedriger. Es ist ein Fehler, dass die durchschnittliche Abweichung vom Hauspreis so groß ist.
** Restgrundstück **
Wie stark ist das Vorhersagemodell übrigens abgewichen? Lassen Sie uns das "Residuum" visualisieren.
#Residuen zeichnen
plt.scatter(y_pred, y_pred - y_test, c = 'red', marker = 's')
plt.xlabel('Predicted Values')
plt.ylabel('Residuals')
# y =Zeichnen Sie eine gerade Linie auf 0
plt.hlines(y = 0, xmin = -10, xmax = 50, lw = 2, color = 'blue')
plt.xlim([10, 50])
plt.show()
Durch Kombinieren der Testdaten und der Vorhersagedaten können Sie sehen, wie groß die Abweichung ist. Diejenigen, die nicht ausgerichtet sind, sind ziemlich nicht ausgerichtet.
Erstellen Sie mit dieser Art von Gefühl ein Modell, damit es weniger Abweichungen gibt, wählen Sie Daten aus, verarbeiten Sie sie vor, passen Sie die Modellparameterwerte an usw. Wir sind bestrebt, die Genauigkeit mit wenigen Fehlern zu verbessern.
Heute habe ich erklärt, wie das Regressionsmodell funktioniert. Es gibt viele andere Regressionsmodelle.
Beginnen wir zunächst mit der Regression und unterdrücken, wie modelliert und verifiziert wird.
19 Tage bis Sie Ingenieur werden
HP von Otsu py: http://www.otupy.net/
Youtube: https://www.youtube.com/channel/UCaT7xpeq8n1G_HcJKKSOXMw
Twitter: https://twitter.com/otupython