Heim  >  Artikel  >  Backend-Entwicklung  >  Beispiel für einen Gradient Boosting (GBM)-Algorithmus in Python

Beispiel für einen Gradient Boosting (GBM)-Algorithmus in Python

WBOY
WBOYOriginal
2023-06-10 16:51:071698Durchsuche

Beispiel für einen Gradient Boosting (GBM)-Algorithmus in Python

Gradient Boosting (GBM) ist eine Methode des maschinellen Lernens, die die Verlustfunktion schrittweise reduziert, indem das Modell iterativ trainiert wird. Es liefert gute Anwendungsergebnisse sowohl bei Regressions- als auch bei Klassifizierungsproblemen und ist ein leistungsstarker Ensemble-Lernalgorithmus. In diesem Artikel wird Python als Beispiel verwendet, um vorzustellen, wie der GBM-Algorithmus zur Modellierung eines Regressionsproblems verwendet wird.

Zuerst müssen wir einige häufig verwendete Python-Bibliotheken importieren, wie unten gezeigt:

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.metrics import mean_squared_error

In diesem Fall verwenden wir den Car Evaluation-Datensatz für die Modellierung, der 6 Attribute und 1 kategoriale Variable enthält. Wir werden diese Attributvariablen verwenden, um den Preis des Fahrzeugs vorherzusagen. Zuerst müssen wir die CSV-Datei wie unten gezeigt in einen Pandas DataFrame einlesen:

data=pd.read_csv("car_data_1.csv")

Als nächstes müssen wir die Originaldaten in einen Trainingssatz und einen Testsatz aufteilen. Wir verwenden 80 % der Daten als Trainingssatz und 20 % der Daten als Testsatz.

train_data, test_data, train_label, test_label = train_test_split(data.iloc[:,:-1], data.iloc[:,-1], test_size=0.2, random_state=1)

Dann müssen wir ein Feature-Engineering durchführen, um die kategorialen Variablen in Dummy-Variablen zu kodieren. Hier verwenden wir die get_dummies-Funktion von Pandas.

train_data = pd.get_dummies(train_data)
test_data = pd.get_dummies(test_data)

Jetzt können wir ein GBM-Modell erstellen. Zuerst initialisieren wir das Modell und legen dann die Parameter fest. Hier setzen wir die Anzahl der Iterationen des Modells (n_estimators) auf 100 und den Lernratenparameter (learning_rate) auf 0,1.

model = GradientBoostingRegressor(n_estimators=100, learning_rate=0.1, random_state=1)

Als nächstes passen wir das Modell mithilfe der Trainingssatzdaten an:

model.fit(train_data,train_label)

Als nächstes bewerten wir die Leistung des Modells mithilfe der Testsatzdaten. Hier verwenden wir den mittleren quadratischen Fehler (MSE), um die Leistung des Modells zu bewerten. Der Code sieht so aus:

pred=model.predict(test_data)
mse=mean_squared_error(test_label, pred)
print("MSE:",mse)

Abschließend können wir die Bedeutung von Variablen im GBM-Modell weiter untersuchen. Wir können die Funktion feature_importances_ von sklearn verwenden, um es abzurufen.

feat_imp = pd.Series(model.feature_importances_, index=train_data.columns).sort_values(ascending=False)
print(feat_imp)

Zusammenfassend zeigt dieser Artikel, wie der GBM-Algorithmus mithilfe der sklearn-Bibliothek von Python implementiert wird. Wir verwenden den Car Evaluation-Datensatz, um den Preis von Fahrzeugen vorherzusagen und die Leistung des Modells zu bewerten. Außerdem können wir die Wichtigkeitswerte der Variablen ermitteln. GBM hat gute Anwendungseffekte beim maschinellen Lernen und ist ein leistungsstarker Ensemble-Lernalgorithmus.

Das obige ist der detaillierte Inhalt vonBeispiel für einen Gradient Boosting (GBM)-Algorithmus in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn