Supervised Learning mit Scikit-Learn

Machine LearningMachine LearningBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

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.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/neighbors("Nearest Neighbors") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/neighbors -.-> lab-71097{{"Supervised Learning mit Scikit-Learn"}} ml/sklearn -.-> lab-71097{{"Supervised Learning mit Scikit-Learn"}} end

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.