XGBoost'ta düzenlileştirme ve temel öğreniciler

XGBoost ile Aşırı Gradyan Artırma

Sergey Fogelson

Head of Data Science, TelevisaUnivision

XGBoost'ta düzenlileştirme

  • Düzenlileştirme, model karmaşıklığını kontrol eder
  • Hem doğru hem de olabildiğince basit modeller isteriz
  • XGBoost'taki düzenlileştirme parametreleri:
    • gamma - bir bölünmenin gerçekleşmesi için izin verilen minimum kayıp azalımı
    • alpha - yaprak ağırlıklarında l1 düzenlileştirme; değer büyüdükçe düzenlileştirme artar
    • lambda - yaprak ağırlıklarında l2 düzenlileştirme
XGBoost ile Aşırı Gradyan Artırma

XGBoost'ta L1 düzenlileştirme örneği

import xgboost as xgb
import pandas as pd
boston_data = pd.read_csv("boston_data.csv")
X,y = boston_data.iloc[:,:-1],boston_data.iloc[:,-1]

boston_dmatrix = xgb.DMatrix(data=X,label=y) params={"objective":"reg:squarederror","max_depth":4}
l1_params = [1,10,100] rmses_l1=[]
for reg in l1_params: params["alpha"] = reg cv_results = xgb.cv(dtrain=boston_dmatrix, params=params,nfold=4, num_boost_round=10,metrics="rmse",as_pandas=True,seed=123) rmses_l1.append(cv_results["test-rmse-mean"].tail(1).values[0])
print("Best rmse as a function of l1:") print(pd.DataFrame(list(zip(l1_params,rmses_l1)), columns=["l1","rmse"]))
Best rmse as a function of l1:
        l1          rmse
    0    1  69572.517742
    1   10  73721.967141
    2  100  82312.312413
XGBoost ile Aşırı Gradyan Artırma

XGBoost'ta temel öğreniciler

  • Lineer Temel Öğrenici:
    • Lineer terimlerin toplamı
    • Güçlendirilmiş model, lineer modellerin ağırlıklı toplamıdır (dolayısıyla kendisi de lineerdir)
    • Nadir kullanılır
  • Ağaç Temel Öğrenici:
    • Karar ağacı
    • Güçlendirilmiş model, karar ağaçlarının ağırlıklı toplamıdır (doğrusal olmayan)
    • XGBoost'ta neredeyse tek başına kullanılır
XGBoost ile Aşırı Gradyan Artırma

Eş uzunluktaki birden çok listeden DataFrame oluşturma

  • pd.DataFrame(list(zip(list1,list2)),columns=["list1","list2"]))
  • zip paralel değerlerden bir generator oluşturur:
    • zip([1,2,3],["a","b""c"]) = [1,"a"],[2,"b"],[3,"c"]
    • generatorlar DataFrame nesnelerinde kullanılmadan önce tamamen somutlaştırılmalıdır
  • list() tüm generator'ı somutlaştırır ve bunu DataFramee vermek tüm ifadeyi dönüştürür
XGBoost ile Aşırı Gradyan Artırma

Hadi pratik yapalım!

XGBoost ile Aşırı Gradyan Artırma

Preparing Video For Download...