Makine Öğrenmesi - II. Doğrusal Olmayan İlişkiler (Non-Linear Relationships)
LightGBM (Hafif Gradyan Artırma Makinesi)
LightGBM (Light Gradient Boosted Machine - Hafif Gradyan Artırma Makinesi), modelin verimliğini artırmak ve bellek kullanımını azaltmak için kullanılan XGBoost ile birlikte popülerliği artan bir kütüphanedir.
Kullanım için ilk olarak lightgbm'in indirilmesi ve içe aktarılması gerekmektedir.
pip install lightgbm
from lightgbm import LGBMRegressor
Söz dizimi: LGBMRegressor(boosting_type='gbdt', class_weight=None, colsample_bytree=1.0, importance_type='split', learning_rate=0.1, max_depth: -1, min_child_samples=20, min_child_weight=0.001, min_split_gain=0.0, n_estimators=100, n_jobs=-1, num_leaves=31, objective=None, random_state=None, reg_alpha=0.0, reg_lambda=0.0, silent='warn', subsample=1.0, subsample_for_bin= 200000, subsample_freq= 0)
Örnek-1: Sklearn paketi altında bulunan diabets veri setine LightGBM algoritması uygulayalı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 import datasets
from sklearn.metrics import mean_squared_error,r2_score,mean_absolute_error
from lightgbm import LGBMRegressor
dataset=datasets.load_diabetes()
x,y=dataset.data,dataset.target
print("x'in 1. satırı={}".format(x[0:1]))
print("y'in 1. satırı={}".format(y[0:1]))
Çıktı:
x'in 1. satırı=[[ 0.03807591 0.05068012 0.06169621 0.02187235 -0.0442235 -0.03482076 -0.04340085 -0.00259226 0.01990842 -0.01764613]] y'in 1. satırı=[151.]
#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ı:
((353, 10), (89, 10), (353,), (89,))
LGBM=LGBMRegressor()
#Model Eğitimi
LGBM.fit(x_train,y_train)
#Model Tahminleme
predict_LGBM=LGBM.predict(x_test)
#MSE değeri
mean_squared_error(y_test, predict_LGBM)
Çıktı:
3755.0548053748344
#Doğruluk yüzdesi
r2_score(y_test,predict_LGBM)*100
Çıktı:
23.42935851714365