Lineare Modelle in Scikit-Learn

Machine LearningMachine LearningIntermediate
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

In diesem Lab werden wir lineare Modelle in scikit-learn erkunden. Lineare Modelle sind eine Gruppe von Methoden, die für Regression- und Klassifizierungstasks verwendet werden. Sie gehen davon aus, dass die Zielvariable eine lineare Kombination der Merkmale ist. Diese Modelle werden aufgrund ihrer Einfachheit und Interpretierbarkeit in der Machine Learning weit verbreitet eingesetzt.

Wir werden die folgenden Themen behandeln:

  • Ordinary Least Squares
  • Ridge Regression
  • Lasso
  • Logistic Regression
  • Stochastic Gradient Descent
  • Perceptron

Wenn Sie keine Vorkenntnisse in Machine Learning haben, starten Sie sich mit Supervised Learning: Regression ein.

Tipps für die VM

Nachdem der VM-Start 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 Operationen kann aufgrund der 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, und wir werden das Problem für Sie prompt beheben.

Dies ist ein Guided Lab, das schrittweise Anweisungen bietet, um Ihnen beim Lernen und Üben zu helfen. Befolgen Sie die Anweisungen sorgfältig, um jeden Schritt abzuschließen und praktische Erfahrungen zu sammeln. Historische Daten zeigen, dass dies ein Labor der Stufe Fortgeschrittener mit einer Abschlussquote von 58% ist. Es hat eine positive Bewertungsrate von 95% von den Lernenden erhalten.

Ordinary Least Squares

Wenn Sie keine Vorkenntnisse in Machine Learning haben, starten Sie sich mit Supervised Learning: Regression ein.

Ordinary Least Squares (OLS) ist eine lineare Regressionsmethode, die die Summe der quadrierten Differenzen zwischen den beobachteten Zielwerten und den vorhergesagten Zielwerten minimiert. Mathematisch löst es ein Problem der Form:

\min_{w} || X w - y||_2^2

Lassen Sie uns beginnen, ein lineares Regressionsmodell mit OLS anzupassen.

from sklearn import linear_model

reg = linear_model.LinearRegression()
X = [[0, 0], [1, 1], [2, 2]]
y = [0, 1, 2]
reg.fit(X, y)

print(reg.coef_)
  • Wir importieren das Modul linear_model aus scikit-learn.
  • Wir erstellen eine Instanz von LinearRegression.
  • Wir verwenden die fit-Methode, um das Modell an die Trainingsdaten anzupassen.
  • Wir drucken die Koeffizienten des linearen Modells.

Ridge Regression

Ridge Regression ist eine lineare Regressionsmethode, die einem gewöhnlichen kleinsten Quadrate Zielfunktion einen Strafbegriff hinzufügt. Dieser Strafbegriff hilft dabei, das Overfitting zu reduzieren, indem die Koeffizienten gegen Null zusammenziehen. Die Komplexität des Modells kann durch den Regularisierungsparameter kontrolliert werden.

Lassen Sie uns ein Ridge-Regressionsmodell anpassen.

reg = linear_model.Ridge(alpha=0.5)
reg.fit([[0, 0], [0, 0], [1, 1]], [0, 0.1, 1])

print(reg.coef_)
  • Wir erstellen eine Instanz von Ridge mit dem Regularisierungsparameter alpha auf 0,5 gesetzt.
  • Wir verwenden die fit-Methode, um das Modell an die Trainingsdaten anzupassen.
  • Wir drucken die Koeffizienten des Ridge-Regressionsmodells.

Lasso

Lasso ist eine lineare Regressionsmethode, die einem gewöhnlichen kleinsten Quadrate Zielfunktion einen Strafbegriff hinzufügt. Der Strafbegriff hat die Wirkung, einige Koeffizienten genau auf Null zu setzen, wodurch eine Feature-Selektion durchgeführt wird. Lasso kann zur Schätzung von sparsen Modellen verwendet werden.

Lassen Sie uns ein Lasso-Modell anpassen.

reg = linear_model.Lasso(alpha=0.1)
reg.fit([[0, 0], [1, 1]], [0, 1])

print(reg.coef_)
  • Wir erstellen eine Instanz von Lasso mit dem Regularisierungsparameter alpha auf 0,1 gesetzt.
  • Wir verwenden die fit-Methode, um das Modell an die Trainingsdaten anzupassen.
  • Wir drucken die Koeffizienten des Lasso-Modells.

Logistische Regression

Logistische Regression ist eine Klassifizierungsmethode, die die Wahrscheinlichkeiten der möglichen Ergebnisse mit einer logistischen Funktion abschätzt. Sie wird häufig für binäre Klassifizierungstasks verwendet. Logistische Regression kann auch erweitert werden, um multi - klasse Klassifizierungsprobleme zu behandeln.

Lassen Sie uns ein logistisches Regressionsmodell anpassen.

clf = linear_model.LogisticRegression(random_state=0).fit(X, y)
print(clf.coef_)
  • Wir erstellen eine Instanz von LogisticRegression mit dem Parameter random_state auf 0 gesetzt.
  • Wir verwenden die fit-Methode, um das Modell an die Trainingsdaten anzupassen.
  • Wir drucken die Koeffizienten des logistischen Regressionsmodells.

Stochastic Gradient Descent (SGD)

Stochastic Gradient Descent (SGD) ist eine einfache, aber effiziente Methode zum Training von linearen Modellen. Es ist besonders nützlich, wenn die Anzahl der Samples und Merkmale sehr groß ist. SGD aktualisiert die Modellparameter bei jeder Iteration mit einem kleinen Teilsatz der Trainingsdaten, was es für das Online-Lernen und das Out-of-Core-Lernen geeignet macht.

Lassen Sie uns ein logistisches Regressionsmodell mit SGD anpassen.

clf = linear_model.SGDClassifier(loss="log_loss", max_iter=1000)
clf.fit(X, y)

print(clf.coef_)
  • Wir erstellen eine Instanz von SGDClassifier mit dem Parameter loss auf "log_loss" gesetzt, um logistische Regression durchzuführen.
  • Wir verwenden die fit-Methode, um das Modell an die Trainingsdaten anzupassen.
  • Wir drucken die Koeffizienten des logistischen Regressionsmodells, das mit SGD erhalten wurde.

Perzeptron

Das Perzeptron ist ein einfaches lineares Klassifizierungsalgorithmus, der für das 大规模学习 geeignet ist. Es aktualisiert sein Modell nur bei Fehlern, was es schneller zu trainieren macht als der stochastic gradient descent (SGD) mit Hinge - Verlust. Die resultierenden Modelle sind auch spärlicher.

Lassen Sie uns ein Perzeptronmodell anpassen.

clf = linear_model.Perceptron(alpha=0.1)
clf.fit(X, y)

print(clf.coef_)
  • Wir erstellen eine Instanz von Perceptron mit dem Regularisierungsparameter alpha auf 0,1 gesetzt.
  • Wir verwenden die fit-Methode, um das Modell an die Trainingsdaten anzupassen.
  • Wir drucken die Koeffizienten des Perzeptronmodells.

Zusammenfassung

In diesem Lab haben wir lineare Modelle in scikit - learn untersucht. Wir haben uns mit gewöhnlichen kleinsten Quadraten, Ridge Regression, Lasso, logistischer Regression, stochastic gradient descent und Perzeptron beschäftigt. Diese Modelle können sowohl für Regressions - als auch für Klassifizierungstasks verwendet werden. Wir haben auch gesehen, wie man diese Modelle mit verschiedenen Algorithmen und Techniken wie Online - Lernen und Feature - Selektion anpassen kann.