Makine Öğrenmesi - II. Doğrusal Olmayan İlişkiler (Non-Linear Relationships)

Extreme Gradient Boosting (XGBoost)

Yayın tarihi :11-Oca-22
Bölüm kodlarını ve/veya veri setlerini indir.

Extreme Gradient Boosting (XGBoost), Gradient Boosting algoritmasının verimli ve etkili bir şekilde uygulanmasını sağlayan bir kitaplıktır. Hem regresyon hem de sınıflandırma modellerini eğitmek için kullanılabilir.  XGBoost, çok iyi bir performans sağladığından dolayı en çok kullanulan makine öğrenmesi kütüphanelerinden biridir. 

Kullanım için ilk olarak xgboost'un indirilmesi ve içe aktarılması gerekmektedir.

pip install xgboost
from xgboost import XGBRegressor

Söz dizimi: XGBRegressor(base_score=0.5, booster='gbtree', colsample_bylevel=1, colsample_bynode=1, colsample_bytree=1, enable_categorical=False, gamma=0, gpu_id=-1, importance_type=None, interaction_constraints='', learning_rate=0.300000012,max_delta_step=0, max_depth=6, min_child_weight=1, missing=nan,monotone_constraints='()', n_estimators=100, n_jobs=8,num_parallel_tree=1, predictor='auto', random_state=0, reg_alpha=0,reg_lambda=1, scale_pos_weight=1, subsample=1, tree_method='exact',validate_parameters=1, verbosity=None)

  • n_estimators, ağaç sayısını temsil eder.
  • max_depth, regresyon tahminleyicilerinin maksiumum derinliğini temsil eder.
  • learning_rate, kullanılan öğrenme oranını temsil eder.

Örnek-1:  Regresyon işlemi için veri seti oluşturalım ve "XGBoost" regresyon modeli kullanalarak tahminleme işlemi yapalım.

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
import warnings
warnings.filterwarnings("ignore")

from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error,r2_score,mean_absolute_error
from sklearn import datasets

from xgboost import XGBRegressor
from sklearn.datasets import make_regression
#5000 satırlık 50 sütunluk x değeri ve 1 sütunluk y (hedef) değeri.
x,y=make_regression(n_samples=5000,n_features=50,n_targets=1)
print("1. satır x değerleri: {}".format(x[0:1]))
print("1. satır y değeri {}".format(y[0:1]))

Çıktı:

1. satır x değerleri: [[-0.68438751  0.41514017 -0.91979658  0.33173918  0.37668997 -0.21061145
  -0.96562325 -0.54180896 -0.04422741 -0.09642151  0.77373484  1.30112735
   0.62436852 -0.19278128  1.94623226  1.41157306  0.26331206 -0.77584273
   0.73075878 -1.89205091 -0.61577875 -1.09490668 -0.56252587  1.49378492
  -1.08326811  0.15000532  0.24159922 -0.42582254  0.1507333   1.23869851
   0.25003929  1.20574012 -2.08819832  1.28014823 -0.07751587 -2.48489497
   1.12906844 -1.67467638 -0.24105304  0.06524454  0.34903882 -0.75867101
   0.76958533 -0.36227806 -1.93294208  0.52009285 -1.54537904 -0.61849953
  -0.96995021 -0.67856552]]
1. satır y değeri [-284.14040498]
#Train ve test işlemlerinde kullanılacak değerleri ayıralım
x_train,x_test,y_train,y_test=train_test_split(x,y,random_state=13,test_size=.2)
x_train.shape,x_test.shape,y_train.shape,y_test.shape

Çıktı:

((4000, 50), (1000, 50), (4000,), (1000,))
XG=XGBRegressor()
#Öğrenme işlemi
XG.fit(x_train,y_train)
#Tahminleme işlemi
predict_XG=XG.predict(x_test)
#MSE değeri
mean_squared_error(y_test, predict_XG)

Çıktı:

3607.6264759016894
#Doğruluk yüzdesi
r2_score(y_test,predict_XG)*100

Çıktı:

91.66410620689953

Rasgele bir regresyon veri seti oluşturuldu ve tahminin doğruluk yüzdesi %91.6 oranında gayet yüksek bir değer elde edilmiş oldu.

Paylaş:

Yorum Yap (*Yorumunuza kod eklemek isterseniz Kod Parçacığı Ekle butonuna tıklayarak ekleyebilirsiniz.)

Yorumlar

Henüz hiç yorum yapılmamış, ilk yorum yapan sen ol.