Maison  >  Article  >  développement back-end  >  Exemple d'algorithme de boosting de gradient (GBM) en Python

Exemple d'algorithme de boosting de gradient (GBM) en Python

WBOY
WBOYoriginal
2023-06-10 16:51:071747parcourir

Exemple d'algorithme de boosting de gradient (GBM) en Python

Le boosting de gradient (GBM) est une méthode d'apprentissage automatique qui réduit progressivement la fonction de perte en entraînant le modèle de manière itérative. Il donne de bons résultats d’application dans les problèmes de régression et de classification, et constitue un puissant algorithme d’apprentissage d’ensemble. Cet article utilisera Python comme exemple pour présenter comment utiliser l'algorithme GBM pour modéliser un problème de régression.

Nous devons d'abord importer certaines bibliothèques Python couramment utilisées, comme indiqué ci-dessous :

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

Dans ce cas, nous utiliserons l'ensemble de données Car Evaluation pour la modélisation, qui contient 6 attributs et 1 variable catégorielle. Nous utiliserons ces variables d'attribut pour prédire le prix du véhicule. Tout d'abord, nous devons lire le fichier CSV dans un Pandas DataFrame comme indiqué ci-dessous :

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

Ensuite, nous devons diviser les données d'origine en un ensemble d'entraînement et un ensemble de test. Nous utilisons 80 % des données comme ensemble de formation et 20 % des données comme ensemble de test.

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

Ensuite, nous devons effectuer une ingénierie des fonctionnalités pour encoder les variables catégorielles en variables factices. Ici, nous utilisons la fonction get_dummies de Pandas.

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

Maintenant, nous pouvons construire un modèle GBM. Tout d’abord, nous initialisons le modèle, puis définissons les paramètres. Ici, nous fixons le nombre d'itérations du modèle (n_estimators) à 100 et le paramètre de taux d'apprentissage (learning_rate) à 0,1.

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

Ensuite, nous ajustons le modèle à l'aide des données de l'ensemble d'entraînement :

model.fit(train_data,train_label)

Ensuite, nous évaluons les performances du modèle à l'aide des données de l'ensemble de test. Ici, nous utilisons l'erreur quadratique moyenne (MSE) pour évaluer les performances du modèle. Le code ressemble à ceci :

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

Enfin, nous pouvons explorer davantage l'importance des variables dans le modèle GBM. Nous pouvons utiliser la fonction feature_importances_ de sklearn pour l'obtenir.

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

En résumé, cet article montre comment implémenter l'algorithme GBM à l'aide de la bibliothèque sklearn de Python. Nous utilisons l'ensemble de données Car Evaluation pour prédire le prix des véhicules et évaluer les performances du modèle, et nous pouvons également obtenir les scores d'importance des variables. GBM a de bons effets d’application dans l’apprentissage automatique et constitue un puissant algorithme d’apprentissage d’ensemble.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn