Makine Öğrenmesinde Değişken Seçimi (Feature Selection) Yazı Serisi: Gömülü (Embedded) Yöntemler ve Python Kodları

Yiğit Şener
3 min readNov 29, 2020

--

Makine öğrenmesi değişken seçimi (feature selection) serisinin bu dördüncü yazısında gömülü (embedded) yöntemlerden bahsetmekteyim.

Serinin Diğer Yazıları:

  1. Makine Öğrenmesinde Değişken Seçimi (Feature Selection) Yazı Serisi: Genel Bakış
  2. Makine Öğrenmesinde Değişken Seçimi (Feature Selection) Yazı Serisi: Filtreleme Yöntemleri ve Python Kodları
  3. Makine Öğrenmesinde Değişken Seçimi (Feature Selection) Yazı Serisi: Sarmal (Wrapper) Yöntemler ve Python Kodları
  4. Makine Öğrenmesinde Değişken Seçimi (Feature Selection) Yazı Serisi: Gömülü (Embedded) Yöntemler ve Python Kodları
  • Girdi değişken: Bağımsız değişken, öznitelik, input, predictor, yordayan, feature, attribute
  • Çıktı değişken: Bağımlı değişken, hedef değişken, output, target, yordanan

Filtreleme yöntemlerinde modelden bağımsız olarak çıktı değişkeni ile girdi değişkenleri arasında ilişki ölçümlenerek değişken seçimi yapılmaktadır. Sarmal (Wrapper) yöntemlerde ise model başarısına yönelik olarak alt girdi değişken kümeleri belirlenmektedir. Gömülü (embedded) yöntemler ise değişken seçiminde filtre ve sarmal (wrapper) yöntemlerin hem bir karışımı olarak hem de farklı bir yaklaşım tarzı olarak düşünülebilir.

Gömülü (Embedded) Yöntemi Nedir?

Bu yöntem öğrenme algoritmalarının bir parçası olduğundan gömülü kelimesi ile ifade edilir. Değişken seçimini algoritmanın kendisi yapar. Hem sınıflandırma için hem de regresyon için kullanılabilecek gömülü yöntemleri uygulayan algoritmalar yer almaktadır.

Gömülü Yöntemler Nasıl Çalışır?

Bu yöntem girdi değişkenler ve çıktı değişkeni için algoritma inşası aşamasında girdi değişkenlerin modele olan etkisini azaltarak ya da artırarak modelin değişken yapısını ortaya koyar. Böylece hangi değişkenlerin daha az değerli olduğunu görebiliriz. Bunun yanı sıra bu değişkenleri otomatik olarak belirlediği için ekstra bir efor harcamamıza gerek kalmayabilir.

Gömülü Yönteminin Avantajları

  • Sarmal yöntemlerde olduğu gibi en etkili girdi değişkenler dikkate alınır.
  • Filtreleme yöntemleri kadar hızlı çalışabilir.
  • Filtreleme yöntemlerinden daha fazla doğruluk oranı sağlayabilir.
  • Algoritma çalışırken girdi değişken alt kümesi belirlenir.
  • Overfitting (aşırı uyum) sorununa karşı daha duyarlıdır.

Gömülü (Embedded) Yöntemleri Nelerdir?

Bu yöntemler problemin türüne göre ikiye ayrılmaktadır. Sınıflandırma için karar ağacı tabanlı algoritmalar kullanılmaktadır. Regresyon için ise Regularization (düzenleme) yöntemleri uygulanmaktadır.

Karar Ağaçları İle Değişken Seçimi

Herhangi bir karar ağacı algoritması tercih edilebilir. Örneğin; Decision Tree, RandomForest, ExtraTree, XGBoost vb. Algoritma girdi değişkenin önemine göre ağacın dallarını budamaktadır. Sarmal yöntemde olduğu gibi modeli en iyi noktaya getiren değişken kümesi seçilir. Karar ağaçlarında yer alan Gini ölçütü ile değişkenlerin önem derecesi ortaya konur. Önem derecesinin sınırının belirlenmesi ile bu sınırın altında kalan değişkenler modele alınmayarak model başarı oranı artırılır.

Regularization (Düzenleme) Yöntemleri

Bu yöntemler temelde girdi değişkenlerinin cezalandırılması ile değişken seçimini sağlarlar. Algoritma maksimum doğruluğu yakalamak için çıktı değişken üzerinde etkisi en optimum olacak değişkenleri belirlerken onların katsayılarını azaltır ya da artırır. Yöntemler aşağıdaki şekilde sıralanabilir.

  1. LASSO (L1 Regularization): En güçlü düzenleme algotirmalarından birisidir. Girdi değişkenlerin katsayılarını cezalandırır. Cezalandırdığı değişkenlerin katsayılarını 0'a indirir. Böylece katsayısı sıfara yaklaşan değişkenlerin modele etkisinin olmayacağını belirlemiş olur. Burada cost ve lambda fonksiyonlarının değerleri algoritmanın performansı için önemli yer teşkil etmektedir.
  2. RIGDE (L2 Regularization): L1 yönteminden farklı olarak değişkenlerin katsayılarını sıfıra indirmeye çalışmaz. Bu yüzden kesinlikli bir değişken seçimi için kullanımı açısından tercih edilmez. Ancak çıktı değişkeni en çok niteleyen girdileri vermek konusunda L1 yöntemine göre daha başarılı olduğu söylenebilir.
  3. Elastic Nets (L1/L2 Regularization): Bu yöntem L1 ve L2 yöntemlerinin bir kombinasyonu olarak düşünülebilir. L1 yönteminde cezalandırma sonucu değişkenler tamamen sıfıra indirilirken L2 yönteminde ise en çok modeli niteleyen değişkenler ön plana çıkarılmaktadır. Dolayısıyla Elastic Nets yöntemi bu iki yöntemin çıkarımlarını bir arada kullanarak en doğru değişken kümesinin bulunmasına yardımcı olur.

Python Uygulama Kodları

Aşağıdaki kod ile karar ağaçları bazında değişkenlerin önem derecesine erişilebilir.

Regularization yönteminde kullanılabilecek Python kodları aşağıdaki gibidir.

Sonuç

Bu yöntemleri kullanarak farklı değişken kümelerini elde edebilirsiniz. Filter veya sarmal yöntemlere göre daha fazla hesaplama maliyete bulunsa da daha etkili bir değişken seçimi sunduğu söylenebilir. Burada seçilen yöntem her ne olursa olsun algoritmanın değerlendirme parametrelerini iyi bilmemeiz ve buna göre hareket etmemiz gerekmektedir.

Serinin Diğer Yazıları:

  1. Makine Öğrenmesinde Değişken Seçimi (Feature Selection) Yazı Serisi: Genel Bakış
  2. Makine Öğrenmesinde Değişken Seçimi (Feature Selection) Yazı Serisi: Filtreleme Yöntemleri ve Python Kodları
  3. Makine Öğrenmesinde Değişken Seçimi (Feature Selection) Yazı Serisi: Sarmal (Wrapper) Yöntemler ve Python Kodları
  4. Makine Öğrenmesinde Değişken Seçimi (Feature Selection) Yazı Serisi: Gömülü (Embedded) Yöntemler ve Python Kodları

--

--