Fonctions objectif (de perte) et apprenants de base

Amorçage de gradient avancé avec XGBoost

Sergey Fogelson

Head of Data Science, TelevisaUnivision

Fonctions objectif et pourquoi les utiliser

  • Quantifie l'écart entre une prédiction et le résultat réel
  • Mesure la différence entre valeurs estimées et réelles pour un ensemble de données
  • But : trouver le modèle qui minimise la fonction de perte
Amorçage de gradient avancé avec XGBoost

Fonctions de perte courantes et XGBoost

  • Noms de fonctions de perte dans xgboost :
    • reg:squarederror : à utiliser pour les problèmes de régression
    • reg:logistic : à utiliser pour la classification quand vous voulez seulement la décision, pas la probabilité
    • binary:logistic : à utiliser quand vous voulez une probabilité plutôt que seulement la décision
Amorçage de gradient avancé avec XGBoost

Apprenants de base : pourquoi et lesquels

  • XGBoost crée un méta-modèle composé de nombreux modèles individuels combinés pour produire la prédiction finale
  • Modèles individuels = apprenants de base
  • On veut des apprenants de base qui, combinés, donnent une prédiction finale non linéaire
  • Chaque apprenant de base devrait bien distinguer ou prédire différentes parties du jeu de données
  • Deux types d'apprenants de base : arborescents et linéaires
Amorçage de gradient avancé avec XGBoost

Arbres comme apprenants de base : API Scikit-learn

import xgboost as xgb
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split

boston_data = pd.read_csv("boston_housing.csv")

X, y = boston_data.iloc[:,:-1],boston_data.iloc[:,-1] X_train, X_test, y_train, y_test= train_test_split(X, y, test_size=0.2, random_state=123)
xg_reg = xgb.XGBRegressor(objective='reg:squarederror', n_estimators=10, seed=123) xg_reg.fit(X_train, y_train) preds = xg_reg.predict(X_test)
Amorçage de gradient avancé avec XGBoost

Arbres comme apprenants de base : API Scikit-learn

rmse = np.sqrt(mean_squared_error(y_test,preds))

print("RMSE: %f" % (rmse))
RMSE: 129043.2314
Amorçage de gradient avancé avec XGBoost

Apprenants linéaires : exemple avec l'API d'apprentissage seulement

import xgboost as xgb
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split

boston_data = pd.read_csv("boston_housing.csv")

X, y = boston_data.iloc[:,:-1],boston_data.iloc[:,-1]

X_train, X_test, y_train, y_test= train_test_split(X, y, test_size=0.2, 
                                                         random_state=123)

DM_train = xgb.DMatrix(data=X_train,label=y_train) DM_test = xgb.DMatrix(data=X_test,label=y_test)
params = {"booster":"gblinear","objective":"reg:squarederror"}
xg_reg = xgb.train(params = params, dtrain=DM_train, num_boost_round=10) preds = xg_reg.predict(DM_test)
Amorçage de gradient avancé avec XGBoost

Apprenants linéaires : exemple avec l'API d'apprentissage seulement

rmse = np.sqrt(mean_squared_error(y_test,preds))

print("RMSE: %f" % (rmse))
RMSE: 124326.24465
Amorçage de gradient avancé avec XGBoost

Au travail !

Amorçage de gradient avancé avec XGBoost

Preparing Video For Download...