Bilişim dünyasına kaliteli, özgün ve Türkçe içerikler kazandırmayı hedefleyen bir platform..

friends friends friends

Backward Elimination-Geri Eleme

Backward Elimination-Geri Eleme, modelimizin başarısında değişkenlerin önemini anlamak, en önemli değişkenleri seçmek için yapılan bir yöntemdir. Değişkenlerin hangisinin sisteme daha fazla etkisi olduğunu anlamak için kullanılır. Bu yöntem, çoklu doğrusal regresyon gibi modellerde sıklıkla kullanılır. Bir dizi oluşturulur ve etkisi ölçüldükten sonra sırasıyla değişkenler elenerek etkiye bakılır.

Backward Elimination, modeldeki tüm bağımsız değişkenleri dahil ederek başlar ve ardından, modelin anlamlılığını etkilemeden en az etkili değişkenleri birer birer çıkarır. Bu işlem, modelin açıklama gücünü azaltmadan daha basit ve daha az değişkenli bir model oluşturmak için kullanılır.

Backward Elimination yöntemi, aşağıdaki adımlarla gerçekleştirilir:

  1. Tüm bağımsız değişkenleri içeren bir model oluşturun.
  2. Her bir bağımsız değişkenin katsayısının p değerini kontrol edin.
  3. En yüksek p değerine sahip olan bağımsız değişkeni modelden çıkarın.
  4. Yeni model için kalan bağımsız değişkenlerin katsayılarının p değerlerini kontrol edin.
  5. Eğer kalan değişkenlerin p değerleri kabul edilebilir düzeyde ise, modele yeni değişken eklemeden önce modeli kabul edin. Eğer kabul edilebilir değilse, en yüksek p değerine sahip olan bir başka bağımsız değişkeni modelden çıkarın ve adımları tekrarlayın.

Bu işlem, p değerleri tüm bağımsız değişkenler kabul edilebilir düzeyde olana kadar tekrarlanır. Sonuç olarak, geriye kalan değişkenler, modele en fazla katkıda bulunan değişkenlerdir ve modelin açıklama gücünü en iyi şekilde sağlayan değişkenlerdir.

Hangi değişken sistemi bozuyorsa, p-value değeri yüksekse bu değişken elenir.

Backward Elimination-Geri Eleme
Veri Kümesi: veriler.csv (indirmek için tıklayınız)

#1. kutuphaneler
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

#2.1. Veri Yukleme
veriler = pd.read_csv('veriler.csv')

#3.1 Veri Ön İşleme

boy_kilo_yas = veriler.iloc[:,1:4].values

#encoder:  Kategorik -> Numeric
ulke = veriler.iloc[:,0:1].values
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
ulke[:,0] = le.fit_transform(ulke[:,0])

from sklearn.preprocessing import OneHotEncoder
ohe = OneHotEncoder(categorical_features='all')
ulke=ohe.fit_transform(ulke).toarray()

cinsiyet = veriler.iloc[:,-1:].values
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
cinsiyet[:,0] = le.fit_transform(cinsiyet[:,0])

from sklearn.preprocessing import OneHotEncoder
ohe = OneHotEncoder(categorical_features='all')
cinsiyet=ohe.fit_transform(cinsiyet).toarray()

#4.1numpy dizileri dataframe donusumu
#Eğitim test işleminden önce DataFrame birleştirme-Concat
ulke_df = pd.DataFrame(data = ulke, index = range(22), columns=['fr','tr','us'] )

boy_kilo_yas_df =pd.DataFrame(data = boy_kilo_yas, index = range(22), columns = ['boy','kilo','yas'])

cinsiyet_df = pd.DataFrame(data = cinsiyet[:,:1] , index=range(22), columns=['cinsiyet'])

#dataframe birlestirme islemi
ilk_birlestirme=pd.concat([ulke_df,boy_kilo_yas_df],axis=1)
son_birlestirme= pd.concat([ilk_birlestirme,cinsiyet_df],axis=1)

#5.1 Boy tahmini yapacağımız için kolonları tekrar ayır
boy = son_birlestirme.iloc[:,3:4].values
sol = son_birlestirme.iloc[:,:3]
sag = son_birlestirme.iloc[:,4:]

#boy kolonu hariç diğer kolonları birleştir
veri = pd.concat([sol,sag],axis=1)

#verilerin egitim ve test icin bolunmesi
from sklearn.model_selection import train_test_split
x_train, x_test,y_train,y_test = train_test_split(veri,boy,test_size=0.33, random_state=0)

from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(x_train,y_train)


y_pred = regressor.predict(x_test)

#BACKWARD ELIMINATION
import statsmodels.api as sm
X=np.append(arr=np.ones((22,1)).astype(int), values=veri, axis=1)
X_opt=veri.iloc[:,[0,1,2,3,4,5]].values


regressor_OLS = sm.OLS(endog = boy, exog = X_opt).fit()
print(regressor_OLS.summary())

Burada bizim için önemli olan değer p-value değeri, bu değer 0,05 değerinden büyük çıkarsa bu değişken verilerin içinden çıkarılabilir.

Interpreting the results of Linear Regression using OLS Summary
Backward Elimination Geri Eleme p-value değeri
0 Beğeni
Veri Makine Öğrenmesi
Önceki Yazı

Eğitim ve Test Verisi Hazırlama

12 Nis. 2020 tarihinde yayınlandı.
Sonraki Yazı

Veri Ölçekleme(Feature Scaling)

12 Nis. 2020 tarihinde yayınlandı.
arrow