Feature Scaling Nedir?

Nehir Gunce Dasci
3 min readSep 17, 2020

Merhaba

Türkçesi özellik ölçekleme olarak geçen feature scaling ile değişkenleri makine öğrenmesi algoritmalarına sokmadan önce belirlediğimiz aralıklara indirgiyoruz.

Bu yazımda,

  • Hangi algoritmalarda özellikle feature scaling kullanılması gerektiğini,
  • Feature scaling e neden ihtiyaç duyduğumuzu,
  • En sık kullanılan feature scaling yöntemlerini,
  • Feature scaling ile değişen ortalama ve standart sapmaları örneklerle açıklamaya çalışacağım.

Hazırsanız başlayalım…

Veri ön işleme basamağında ele alınan feature scaling, bazı algoritmalarda verileri modele hazırlarken oldukça kritik öneme sahip.

1) Hangi Algoritmalarda Feature Scaling Kullanılması Gerekir?

Özellikle uzaklık temelli algoritmaların sonucunu etkilerken, gradient descent kullanan algoritmaların hızını etkilemektedir.

  • KNN,
  • SVM,
  • K_Means
  • Yapay Sinir Ağları
  • Gradient Descent kullanan algoritmalar

2) Feature Scaling’e Neden İhtiyaç Duyarız?

  • Birinci maddede belirttiğim uzaklık temelli makine öğrenmesi algoritmaları(KNN-SVM-KMeans), büyük aralıklı değişkenlerin küçük aralıklı değişkenlerden daha önemli olduğunu düşünüyor!

Örneğin boy ve günlük tüketilen meyve adedi diye iki değişken olsun. Veri setinde boy 150 cm ile 190 cm arasında değişirken, meyve adedi de 0–6 arasında değişsin. Model bu durumda, boy değişkeninin meyve adedi değişkeninden daha önemli olduğu düşüncesiyle kurulmuş oluyor.
Bu duruma istatistikte yanlılık deniyor, biased.. Bu nedenle biz bu aralıkları tüm değişkenlerdeki değerler için aynı aralıklara çekiyoruz. Örneğin -1 ile 1 arasına ya da 0 ile 1 arasına vs.

  • YSA ve gradient descent temelli algoritmalarda ise global noktaya daha hızlı converge etmesini sağlıyor.
Andrew NG bu vidyosunda, 0–2000 ve 1–5 aralığına(range) sahip iki değişkeni 0–1 aralığına çektiğinde algoritmanın hızının ne kadar artacağından bahsediyor. Sol tarafta global min noktasına ulaşmak için en az 20 adım gerekliyken, sağ tarafta ölçeklendirilmiş değişkenler için bu işlem 3 adımda tamamlanıyor.

3) En Çok Kullanılan Feature Scaling Türleri

  • Standard Scaler

Değişkenleri, ortalaması 0 std sapması 1 olan bir dağılıma çeviriyor . Veri setindeki tüm verilerden ilgili sütun ortalaması çıkartılıp yine sütun std sapmasına bölünerek bulunuyor. Böylelikle veri setindeki tüm gözlem birimleri -1 ile 1 arasında değer almış oluyor. z = (x — u) / s

Değerler (0,10) aralığından (-1,1) aralığına, ortalama 5'ten 0'a, std sapma 5'ten 1' çekilmiş oluyor.
  • Normalization

Veri setindeki her bir değeri, ilgili sütundaki min max değerlere göre scale ediyor. (X- Xmin) / (Xmax-Xmin). Verileri 0–1 arasına çeker.

Değer aralığını (0,1) arasına çekti.

Not: Normalization, outlier olan bir veri setinde outlier ayıklaması yapılmadan önce yapılırsa outlierların yok olmasına sebep olabilir.

  • Robust Scaler

Outlierlara karşı robust olan IQR istatistiğine göre veri seti scale ediliyor. (yine sütun bazında IQR’lara göre her bir değişken kendi içinde scale ediliyor, std scaler daki gibi)

Not: IQR= Q3-Q1 (algoritmadaki default değeri: veriler küçükten büyüğe sıralandığında %75. değer-%25.değer)

Aynı veri setine robust scaler yapıldığında, değerler (-0.5,0.5) arasına çekilirken ortalama 0, std sapma 0.5 oluyor.

Yukarıda belirtilen feature scaling yöntemleri dışında MinMax Scaler da çok kullanılmaktadır. MinMax Scaler ile hangi değer aralığına çekileceğini biz kendimiz belirleyebiliyoruz.

https://unsplash.com/

--

--