Einführung
In diesem Lab werden wir Ensemble-Methoden mit scikit-learn untersuchen. Ensemble-Methoden sind maschinelles Lernverfahren, die mehrere Modelle kombinieren, um eine bessere Leistung als ein einzelnes Modell zu erzielen. Wir werden uns speziell auf zwei beliebte Ensemble-Methoden konzentrieren: Bagging und Random Forests.
Tipps für die virtuelle Maschine (VM)
Nachdem die VM gestartet wurde, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und auf Jupyter Notebook für die Übung zuzugreifen.
Manchmal müssen Sie möglicherweise einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Operationen kann aufgrund der Einschränkungen von Jupyter Notebook nicht automatisiert werden.
Wenn Sie während des Lernens Probleme haben, können Sie sich gerne an Labby wenden. Geben Sie nach der Sitzung Feedback ab, und wir werden das Problem umgehend für Sie lösen.
Importieren der Abhängigkeiten
Beginnen wir damit, die erforderlichen Abhängigkeiten zu importieren.
import numpy as np
from sklearn.ensemble import BaggingClassifier, RandomForestClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split, cross_val_score
Laden der Daten
Als Nächstes laden wir den Iris-Datensatz aus scikit-learn mit der Funktion load_iris.
data = load_iris()
X, y = data.data, data.target
Aufteilen der Daten
Wir werden die Daten in Trainings- und Testdatensätze aufteilen, indem wir die Funktion train_test_split aus scikit-learn verwenden.
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
Anpassen eines Bagging-Klassifikators
Jetzt werden wir einen Bagging-Klassifikator an die Trainingsdaten anpassen. Der Bagging-Klassifikator ist eine Ensemble-Methode, die Bootstrapping-Sampling verwendet, um mehrere Basismodelle (häufig Entscheidungsbäume) zu erstellen und deren Vorhersagen mithilfe der Mehrheitsentscheidung zusammenzufassen.
bagging = BaggingClassifier(DecisionTreeClassifier(), n_estimators=10)
bagging.fit(X_train, y_train)
Bewertung des Bagging-Klassifikators
Lassen Sie uns den Bagging-Klassifikator bewerten, indem wir die Genauigkeit (Accuracy) auf den Testdaten mit der Methode score berechnen.
accuracy = bagging.score(X_test, y_test)
print(f"Bagging Classifier Accuracy: {accuracy}")
Anpassen eines Random Forest-Klassifikators
Als Nächstes werden wir einen Random Forest-Klassifikator an die Trainingsdaten anpassen. Der Random Forest-Klassifikator ist ebenfalls eine Ensemble-Methode, die Bootstrapping-Sampling verwendet, um mehrere Entscheidungsbäume zu erstellen. Darüber hinaus fügt es zusätzliche Zufälligkeit hinzu, indem es bei jedem Split nur eine Teilmenge der Merkmale (Features) berücksichtigt.
random_forest = RandomForestClassifier(n_estimators=10)
random_forest.fit(X_train, y_train)
Bewertung des Random Forest-Klassifikators
Lassen Sie uns den Random Forest-Klassifikator bewerten, indem wir die Genauigkeit (Accuracy) auf den Testdaten berechnen.
accuracy = random_forest.score(X_test, y_test)
print(f"Random Forest Classifier Accuracy: {accuracy}")
Zusammenfassung
In diesem Lab haben wir Ensemble-Methoden mit scikit-learn untersucht. Wir haben einen Bagging-Klassifikator und einen Random Forest-Klassifikator auf dem Iris-Datensatz angepasst und deren Leistung bewertet. Ensemble-Methoden wie Bagging und Random Forests können mächtige Werkzeuge zur Verbesserung der Vorhersageleistung von maschinellen Lernmodellen sein.