Читать книгу Praxiseinstieg Machine Learning mit Scikit-Learn, Keras und TensorFlow - Aurélien Géron - Страница 35
Beispiel 1-1: Trainieren und Ausführen eines linearen Modells mit Scikit-Learn
Оглавлениеimport matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import sklearn.linear_model
# Laden der Daten
oecd_bli = pd.read_csv("oecd_bli_2015.csv", thousands=',')
gdp_per_capita = pd.read_csv("gdp_per_capita.csv",thousands=',',delimiter='\t',
encoding='latin1', na_values="n/a")
# Vorbereiten der Daten
country_stats = prepare_country_stats(oecd_bli, gdp_per_capita)
X = np.c_[country_stats["GDP per capita"]]
y = np.c_[country_stats["Life satisfaction"]]
# Visualisieren der Daten
country_stats.plot(kind='scatter', x="Pro-Kopf-BIP", y='Zufriedenheit')
plt.show()
# Auswahl eines linearen Modells
model = sklearn.linear_model.LinearRegression()
# Trainieren des Modells
model.fit(X, y)
# Treffen einer Vorhersage für Zypern
X_new = [[22587]] # Pro-Kopf-BIP für Zypern
print(model.predict(X_new)) # Ausgabe [[ 5.96242338]]
Hätten Sie einen instanzbasierten Lernalgorithmus verwendet, würden Sie herausbekommen, dass Slowenien das zu Zypern ähnlichste Pro-Kopf-BIP hat (20732 USD). Da uns die OECD-Daten die Zufriedenheit mit 5,7 angeben, hätten Sie für Zypern eine Zufriedenheit von 5,7 vorhergesagt. Wenn Sie ein wenig herauszoomen und sich die nächstgelegenen Länder ansehen, finden Sie Portugal und Spanien mit Zufriedenheitswerten von jeweils 5,1 und 6,5. Der Mittelwert dieser drei Werte ist 5,77, was sehr nah an Ihrer modellbasierten Vorhersage liegt. Dieses einfache Verfahren nennt man k-nächste-Nachbarn-Regression (in diesem Beispiel mit k = 3). | |
Das Ersetzen des linearen Regressionsmodells durch k-nächste-Nachbarn-Regression im obigen Code erfordert lediglich das Ersetzen dieser beiden Zeilen: | |
import sklearn.linear_model model = sklearn.linear_model.LinearRegression() | |
durch diese zwei: | |
import sklearn.neighbors model = sklearn.neighbors.KNeighborsRegressor(n_neighbors=3) |
Wenn alles gut gegangen ist, wird Ihr Modell gute Vorhersagen treffen. Wenn nicht, müssen Sie weitere Merkmale heranziehen (Beschäftigungsquote, Gesundheit, Luftverschmutzung und Ähnliches), sich mehr oder hochwertigere Trainingsdaten beschaffen oder ein mächtigeres Modell auswählen (z.B. ein polynomielles Regressionsmodell).
Zusammengefasst:
Sie haben die Daten untersucht.
Sie haben ein Modell ausgewählt.
Sie haben es auf Trainingsdaten trainiert (d.h., der Trainingsalgorithmus hat nach den Modellparametern gesucht, die eine Kostenfunktion minimieren).
Schließlich haben Sie das Modell verwendet, um für neue Fälle Vorhersagen zu treffen (dies nennt man Inferenz), und hoffen, dass das Modell gut verallgemeinert.
So sieht ein typisches Machine-Learning-Projekt aus. In Kapitel 2 können Sie dies selbst erfahren, indem Sie ein Projekt vom Anfang bis zum Ende durcharbeiten. Wir haben bisher ein weites Feld beschritten: Sie wissen bereits, worum es beim Machine Learning wirklich geht, warum es nützlich ist, welche Arten von ML-Systemen verbreitet sind und wie ein typischer Arbeitsablauf aussieht. Nun werden wir uns anschauen, was beim Lernen schiefgehen kann und präzise Vorhersagen verhindert.