Feature Engineering (Öznitelik / Özellik Mühendisliği)

Özellik Mühendisliği (Feature Engineering), ham veriyi alıp, makine öğrenimi algoritmalarının veri içindeki gizli kalıpları (paternleri) daha kolay ve yüksek doğrulukla öğrenebilmesi için anlamlı, dönüştürülmüş ve yeni matematiksel girdilere (features) çevirme sanatı ve sürecidir.

Özellik Mühendisliği (Feature Engineering), ham veriyi alıp, makine öğrenimi algoritmalarının veri içindeki gizli kalıpları (paternleri) daha kolay ve yüksek doğrulukla öğrenebilmesi için anlamlı, dönüştürülmüş ve yeni matematiksel girdilere (features) çevirme sanatı ve sürecidir. Veri biliminde başarının %80'i sayılır.

build Ham Veriden Özelliğe

Modele bir evin fiyatını tahmin etmesini söyleyeceksiniz. Elinizde 'Ev Yapım Yılı = 1990' verisi var. Modele doğrudan '1990' sayısını verirseniz model zorlanır. Ancak siz bu veriyi işleyip, bugünün yılından çıkartarak yeni bir 'Evin Yaşı = 36' özelliği (feature) oluşturup verirseniz, algoritma evin yaşlandıkça fiyatının düştüğünü anında kavrar.

Yaygın Teknikler

grid_goldenratio One-Hot Encoding

Metin bazlı kategorik verileri (Kırmızı, Mavi, Yeşil), algoritmanın anlayabileceği 1 ve 0'lara dönüştürmek.

format_line_spacing Ölçeklendirme (Scaling)

Modelin kafasının karışmaması için evin 150000 dolarlık fiyatı ile 3 olan oda sayısını matematiksel olarak 0 ile 1 aralığında dengelemek.

calendar_month Tarih Parçalama

'24.05.2023' tarihini modele vermek yerine bunu 'Yıl: 2023', 'Ay: Mayıs', 'Gün: Çarşamba', 'Hafta sonu mu?: Hayır' şeklinde böldüğünüzde modelin inanılmaz detaylar (hafta sonu satışları artar gibi) yakalamasını sağlarsınız.

Özellik Seçimi ve Önem Değerlendirmesi

  • check_circle Filtre Yöntemleri (Filter Methods): Özellikler modelden bağımsız istatistiksel ölçütlerle seçilir: korelasyon, chi-kare testi, karşılıklı bilgi (mutual information). Hızlıdır ve model bağımsız çalışır; ancak özellikler arasındaki etkileşimleri yakalamaz.
  • check_circle Sarmalayıcı Yöntemler (Wrapper Methods): Özellik alt kümeleri denenerek her alt kümenin modele katkısı ölçülür. Öne doğru seçim (forward selection) ve geri doğru eleme (backward elimination) en yaygın sarmalayıcı yöntemlerdir. Hesaplama maliyeti yüksek olmakla birlikte genellikle daha iyi özellik kombinasyonları bulur.
  • check_circle Gömülü Yöntemler (Embedded Methods): Özellik seçimi model eğitimi sürecine entegre edilir. LASSO (L1 düzenlemesi) kullanılmayan özelliklerin ağırlığını sıfıra çeker; karar ağacı ve rastgele orman modelleri feature importance skorları üretir. Bu yöntemler verimlidir ve yorumlanabilirlik sağlar.
  • check_circle Boyut İndirgeme (Dimensionality Reduction): PCA (Temel Bileşen Analizi) ve t-SNE gibi yöntemler yüksek boyutlu özellik uzayını daha düşük boyutlu temsile sıkıştırır. Bu hem eğitim hızını artırır hem de boyut lanetini (curse of dimensionality) azaltır.

Otomatik Özellik Mühendisliği: AutoML ve Özellik Öğrenimi

Derin öğrenme, özellik mühendisliğinin önemli bir bölümünü otomatikleştirdi: CNN görüntüden kenar ve şekil gibi özellikleri kendisi öğrenir, transformer metin bağlamını gömülü vektörlere (embedding) çevirir. Bu 'özellik öğrenimi' (feature learning / representation learning) geleneksel el tasarımı özelliklerin yerini büyük ölçüde almıştır. AutoML araçları (Featuretools, AutoFeat) yapılandırılmış tablo verisi için otomatik özellik türetimi sunar: varolandan yeni özellikler kombinasyonları oluşturur. Ne var ki alan bilgisi hâlâ kritik: hangi ham verilerin toplanacağı ve hangi dönüşümlerin anlamlı olduğu uzmanlık gerektirir. Bu nedenle özellik mühendisliği makine öğrenmesi boru hatlarında en fazla zaman harcanan aşama olmaya devam etmektedir.

Temel Özellik Mühendisliği Teknikleri

  • check_circle Sayısal Dönüşümler: Normalleştirme (min-max scaling): tüm değerleri [0,1] aralığına sıkıştırır; sinir ağı ve KNN için kritiktir. Standartlaştırma (z-score): ortalama 0, standart sapma 1; SVM ve doğrusal modeller için uygun. Log dönüşümü: çarpık (skewed) dağılımı normalleştirir; gelir, fiyat gibi uzun kuyruklu değişkenlerde etkili.
  • check_circle Kategorik Kodlama: One-hot encoding: her kategori için ikili sütun oluşturur; yüksek kardinalitede 'boyutların laneti' sorunu. Label encoding: kategorilere sayı atar; sıralı (ordinal) kategoriler için uygun. Target encoding: kategorinin hedef değişken ortalamasıyla kodlanması; sızıntıya (data leakage) dikkat edilmeli.
  • check_circle Zaman Serisi Özellik Üretimi: Geri dönem (lag) özellikleri: t-1, t-7, t-30 değerleri yeni sütunlara eklenir. Hareketli ortalama ve standart sapma: pencere tabanlı istatistikler. Takvim özellikleri: gün, ay, hafta, çeyrek, tatil bayrağı. Fourier dönüşümü: mevsimselliği yakalamak için frekans bileşenleri.
  • check_circle Özellik Seçimi: Filter yöntemleri: korelasyon, chi-kare, bilgi kazancı ile bağımsız ön eleme. Wrapper yöntemleri: Recursive Feature Elimination (RFE) — model performansına göre tekrarlı eleme. Gömülü yöntemler: L1 (Lasso) regresyon sıfır katsayılı özellikleri eler; ağaç modelleri feature importance sağlar.

Otomatik Özellik Mühendisliği (AutoFE)

Manuel özellik mühendisliği uzmanlık ve zaman gerektirir. AutoFE araçları bu süreci otomatize eder. Featuretools: zaman serisi ve ilişkisel veriler için otomatik özellik sentezi; varlıklar arasındaki ilişkilerden bileşik özellikler türetir. TPOT ve AutoSklearn: özellik seçimi + model seçimini birleştirir (AutoML). Deep Learning yaklaşımı: ham veriden özellik öğrenme; CNN görüntüden, transformer metinden otomatik temsilciler çıkarır. AutoFE sınırları: alan bilgisi gerektiren iş mantığı kuralları hâlâ insan uzmanlığı ister; yorumlanabilirlik azalır.

Sıkça Sorulan Sorular

  • check_circle Feature engineering nedir?: Özellik mühendisliği (feature engineering), ham veriden makine öğrenmesi modellerinin daha iyi öğrenebileceği anlamlı giriş değişkenleri (özellik) oluşturma sürecidir. Örnek: tarih sütunundan 'haftanın günü', 'ay' ve 'yıl çeyreği' özellikleri türetmek. Model performansına etkisi algoritma seçiminden daha büyük olabilir.
  • check_circle Derin öğrenme ile feature engineering artık gerekli mi?: Derin öğrenme görüntü, ses ve metin gibi ham veriden kendisi özellik öğrenebilir. Bu nedenle bu modaliteler için manual özellik mühendisliği büyük ölçüde azaldı. Ancak tablo (tabular) verisi, zaman serisi ve az veri durumlarında alan uzmanlığına dayalı özellik mühendisliği hâlâ kritik başarı faktörüdür.
  • check_circle Özellik mühendisliği ile özellik seçimi arasındaki fark nedir?: Özellik mühendisliği (feature engineering): ham veriden yeni özellikler yaratır. Özellik seçimi (feature selection): mevcut özellikler arasından en bilgilendirici olanları seçer, gereksizleri eler. İkisi birbirini tamamlar; önce özellik mühendisliği yapılır, ardından seçim ile model için en iyi subset belirlenir.
  • check_circle Özellik mühendisliği nedir?: Ham veriden modelin öğrenmesi için anlamlı giriş değişkenleri (özellik) oluşturma sürecidir. Doğru özellikler modelin performansını, basit mimari değişikliklerden çok daha fazla artırabilir.
  • check_circle Özellik mühendisliği neden önemlidir?: 'Çöp girse çöp çıkar' (garbage in, garbage out) ilkesi: ne kadar güçlü algoritma kullanılırsa kullanılsın, zayıf özelliklerle güçlü model kurulamaz. İyi özellikler hem doğruluğu artırır hem eğitim süresini kısaltır.
  • check_circle Derin öğrenmede özellik mühendisliğine gerek var mı?: Büyük veri ve yeterli hesaplama gücüyle derin öğrenme modelleri ham veriden özellik öğrenebilir (end-to-end learning). Ancak küçük veri setlerinde, tablo verilerinde ve yorumlanabilirlik gereken alanlarda manuel özellik mühendisliği hâlâ kritik önem taşır.