Amaç (kayıp) fonksiyonları ve temel öğreniciler

XGBoost ile Aşırı Gradyan Artırma

Sergey Fogelson

Head of Data Science, TelevisaUnivision

Amaç Fonksiyonları ve Neden Kullanırız?

  • Bir tahminin gerçek sonuçtan ne kadar saptığını ölçer
  • Bazı veri kümelerinde tahmini ve gerçek değerler arasındaki farkı ölçer
  • Amaç: Kayıp fonksiyonunu en aza indiren modeli bulmak
XGBoost ile Aşırı Gradyan Artırma

Yaygın kayıp fonksiyonları ve XGBoost

  • xgboost'taki kayıp fonksiyonu adları:
    • reg:squarederror - regresyon problemleri için kullan
    • reg:logistic - olasılık değil, sadece karar istediğinde sınıflandırmada kullan
    • binary:logistic - sadece karar yerine olasılık istediğinde kullan
XGBoost ile Aşırı Gradyan Artırma

Temel öğreniciler ve neden gerekir

  • XGBoost, bir son tahmin üretmek için birleşen birçok bireysel modelden oluşan bir meta-model kurar
  • Bireysel modeller = temel öğreniciler
  • Birleşince doğrusal olmayan bir nihai tahmin üreten temel öğreniciler isteriz
  • Her temel öğrenici veri kümesinin farklı kısımlarını iyi ayırt etmeli ya da tahmin etmelidir
  • İki tür temel öğrenici vardır: ağaç ve doğrusal
XGBoost ile Aşırı Gradyan Artırma

Temel öğrenici olarak ağaçlar örneği: Scikit-learn API

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)
XGBoost ile Aşırı Gradyan Artırma

Temel öğrenici olarak ağaçlar örneği: Scikit-learn API

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

print("RMSE: %f" % (rmse))
RMSE: 129043.2314
XGBoost ile Aşırı Gradyan Artırma

Doğrusal temel öğreniciler örneği: yalnızca learning API

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)
XGBoost ile Aşırı Gradyan Artırma

Doğrusal temel öğreniciler örneği: yalnızca learning API

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

print("RMSE: %f" % (rmse))
RMSE: 124326.24465
XGBoost ile Aşırı Gradyan Artırma

Hadi çalışmaya başlayalım!

XGBoost ile Aşırı Gradyan Artırma

Preparing Video For Download...