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.
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_modelaus 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
Ridgemit dem Regularisierungsparameteralphaauf 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
Lassomit dem Regularisierungsparameteralphaauf 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
LogisticRegressionmit dem Parameterrandom_stateauf 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
SGDClassifiermit dem Parameterlossauf "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
Perceptronmit dem Regularisierungsparameteralphaauf 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.