Читать книгу 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.

Praxiseinstieg Machine Learning mit Scikit-Learn, Keras und TensorFlow

Подняться наверх