Einführung
Beim supervised learning möchten wir die Beziehung zwischen zwei Datensätzen lernen: den beobachteten Daten X und einer externen Variable y, die wir vorherzusagen wünschen.
Es gibt zwei Haupttypen von supervised learning-Problemen: Klassifikation und Regression. Bei der Klassifikation ist das Ziel, die Klasse oder Kategorie einer Beobachtung vorherzusagen, während bei der Regression das Ziel ist, eine kontinuierliche Zielfunktion vorherzusagen.
In diesem Lab werden wir die Konzepte des supervised learning erkunden und sehen, wie wir sie mit scikit-learn, einer beliebten Machine-Learning-Bibliothek in Python, implementieren können. Wir werden Themen wie die Klassifikation mit nächsten Nachbarn, lineare Regression und Support-Vector-Machines (SVMs) behandeln.
Tipps für die VM
Nachdem der Start der VM abgeschlossen ist, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu nutzen.
Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund von Einschränkungen in Jupyter Notebook nicht automatisiert werden.
Wenn Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback ab, und wir werden das Problem für Sie prompt beheben.
Klassifikation mit nächsten Nachbarn
In diesem Schritt werden wir das Konzept der Klassifikation mit nächsten Nachbarn erkunden und sehen, wie es mit scikit-learn implementiert werden kann. Wir werden den Iris-Datensatz verwenden, der aus Messungen verschiedener Iris-Blumen besteht.
Lade den Iris-Datensatz
import numpy as np
from sklearn import datasets
iris_X, iris_y = datasets.load_iris(return_X_y=True)
Teile die Daten in Trainings- und Testsets auf
np.random.seed(0)
indices = np.random.permutation(len(iris_X))
iris_X_train = iris_X[indices[:-10]]
iris_y_train = iris_y[indices[:-10]]
iris_X_test = iris_X[indices[-10:]]
iris_y_test = iris_y[indices[-10:]]
Erstelle und trainiere einen Klassifikator mit nächsten Nachbarn
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier()
knn.fit(iris_X_train, iris_y_train)
Mache Vorhersagen
predictions = knn.predict(iris_X_test)
Lineare Regression
In diesem Schritt werden wir das Konzept der linearen Regression erkunden und sehen, wie es mit scikit-learn implementiert werden kann. Wir werden den Diabetes-Datensatz verwenden, der aus physiologischen Variablen von Patienten und deren Krankheitsverlauf nach einem Jahr besteht.
Lade den Diabetes-Datensatz
diabetes_X, diabetes_y = datasets.load_diabetes(return_X_y=True)
diabetes_X_train = diabetes_X[:-20]
diabetes_X_test = diabetes_X[-20:]
diabetes_y_train = diabetes_y[:-20]
diabetes_y_test = diabetes_y[-20:]
Erstelle und trainiere ein lineares Regressionsmodell
from sklearn import linear_model
regr = linear_model.LinearRegression()
regr.fit(diabetes_X_train, diabetes_y_train)
Mache Vorhersagen und berechne Leistungsmesswerte
predictions = regr.predict(diabetes_X_test)
mse = np.mean((predictions - diabetes_y_test)**2)
variance_score = regr.score(diabetes_X_test, diabetes_y_test)
Support Vector Machines (SVMs)
In diesem Schritt werden wir das Konzept der Support Vector Machines (SVMs) erkunden und sehen, wie sie für Klassifizierungstasks verwendet werden können. SVMs versuchen, eine Hyperebene zu finden, die die Datenpunkte unterschiedlicher Klassen maximal trennt.
Erstelle und trainiere eine lineare SVM
from sklearn import svm
svc = svm.SVC(kernel='linear')
svc.fit(iris_X_train, iris_y_train)
Erstelle und trainiere SVMs mit verschiedenen Kernen
svc_poly = svm.SVC(kernel='poly', degree=3)
svc_rbf = svm.SVC(kernel='rbf')
svc_poly.fit(iris_X_train, iris_y_train)
svc_rbf.fit(iris_X_train, iris_y_train)
Zusammenfassung
In diesem Lab haben wir verschiedene supervised learning - Techniken kennengelernt und erfahren, wie man sie mit scikit - learn implementiert. Wir haben die Klassifikation mit nächsten Nachbarn, die lineare Regression und die Support Vector Machines (SVMs) behandelt. Diese Techniken ermöglichen es uns, Ausgabevariablen aus hochdimensionalen Beobachtungen vorherzusagen und Daten in verschiedene Kategorien zu klassifizieren. Indem wir diese Techniken auf reale Welt - Datensätze anwenden, können wir in verschiedenen Bereichen wie Gesundheitswesen, Finanzwesen und Sozialwissenschaften Erkenntnisse gewinnen und Vorhersagen treffen.