認識 XGBoost

使用 XGBoost 的極端梯度提升

Sergey Fogelson

Head of Data Science, TelevisaUnivision

什麼是 XGBoost?

  • 最佳化的梯度提升機器學習函式庫
  • 最初以 C++ 撰寫
  • 提供多種語言的 API:
    • Python
    • R
    • Scala
    • Julia
    • Java
使用 XGBoost 的極端梯度提升

為何 XGBoost 如此受歡迎?

  • 速度快、效能佳
  • 核心演算法可並行化
  • 穩定勝過單一演算法方法
  • 在多種 ML 任務中達到 SOTA 表現
使用 XGBoost 的極端梯度提升

使用 XGBoost:快速範例

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

class_data = pd.read_csv("classification_data.csv") X, y = class_data.iloc[:,:-1], class_data.iloc[:,-1]
X_train, X_test, y_train, y_test= train_test_split(X, y, test_size=0.2, random_state=123)
xg_cl = xgb.XGBClassifier(objective='binary:logistic', n_estimators=10, seed=123)
xg_cl.fit(X_train, y_train) preds = xg_cl.predict(X_test)
accuracy = float(np.sum(preds==y_test))/y_test.shape[0] print("accuracy: %f" % (accuracy))
accuracy: 0.78333
使用 XGBoost 的極端梯度提升

開始使用 XGBoost!

使用 XGBoost 的極端梯度提升

Preparing Video For Download...