| 3 dk okuma | 33 okunma

Feature Engineering: modeli değil veriyi güçlendirmek

En iyi modelleri kullanan değil, en doğru feature’ları üreten kazanır.

Feature Engineering: modeli değil veriyi güçlendirmek

Makine öğrenmesi dünyasında yeni başlayanların en sık yaptığı hatalardan biri, daha iyi sonuç almak için sürekli model değiştirmeye çalışmaktır; oysa deneyimli mühendisler bilir ki çoğu durumda performans artışı modelden değil, veriden gelir. İşte bu noktada devreye feature engineering girer: yani mevcut veriden daha anlamlı, daha açıklayıcı ve modelin öğrenmesini kolaylaştıracak yeni özellikler üretme süreci.

Feature engineering, aslında veriye “zeka katma” işidir. Çünkü ham veri çoğu zaman modelin doğrudan anlayabileceği formda değildir ve çoğu zaman gerçek sinyal, verinin içinde saklıdır. Örneğin bir kullanıcının doğum tarihi tek başına çok anlamlı olmayabilir, ancak bu bilgiden türetilen yaş değişkeni model için çok daha güçlü bir sinyal haline gelir. Benzer şekilde bir tarih verisinden “hafta sonu mu?” bilgisi üretmek, kullanıcı davranışlarını anlamada oldukça etkili olabilir.

Bu süreci daha somut görmek için basit bir örnek üzerinden ilerleyelim. Diyelim ki elimizde kullanıcıların doğum yılı ve satın alma bilgisi var; doğrudan doğum yılı ile model kurmak yerine, bundan yaş bilgisi üretmek çok daha anlamlı olacaktır:

Örnek: Yeni feature üretimi

import pandas as pd

df = pd.DataFrame({
"dogum_yili": [1990, 1985, 2000],
"harcama": [200, 350, 150]
})

df["yas"] = 2025 - df["dogum_yili"]

print(df)


Bu küçük dönüşüm, modelin öğrenmesini ciddi şekilde kolaylaştırabilir çünkü artık veri daha yorumlanabilir bir hale gelmiştir.

Feature engineering sadece yeni değişken üretmekle sınırlı değildir; aynı zamanda mevcut veriyi dönüştürmeyi de içerir. Özellikle sayısal verilerin ölçeklenmesi (scaling), birçok model için kritik bir adımdır. Örneğin bazı algoritmalar, farklı büyüklükteki sayılardan olumsuz etkilenebilir ve bu durumda veriyi normalize etmek gerekir.

Örnek: Veri ölçekleme

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()

df["harcama_scaled"] = scaler.fit_transform(df[["harcama"]])

print(df)


Bunun yanı sıra kategorik verilerin dönüştürülmesi de feature engineering’in önemli bir parçasıdır. Daha önce gördüğümüz gibi, metinsel veriler sayısal hale getirilmeden modele verilemez ve bu dönüşümün nasıl yapıldığı model performansını doğrudan etkiler.

Gerçek dünyada güçlü feature’lar üretmek, genellikle domain bilgisi gerektirir. Örneğin finans alanında çalışan bir mühendis, gelir-gider oranı gibi türetilmiş bir değişkenin tek başına ham veriden daha anlamlı olduğunu bilir. Aynı şekilde bir e-ticaret sisteminde “son 30 günde yapılan alışveriş sayısı” gibi bir feature, kullanıcı davranışını tahmin etmede kritik rol oynayabilir.

Bu yüzden feature engineering, sadece teknik bir işlem değil, aynı zamanda problemi anlama ve doğru soruları sorma sürecidir. İyi bir model çoğu zaman iyi hazırlanmış feature’ların doğal sonucudur.

Gerçek Hayat

Bir kredi değerlendirme sistemi düşün; kullanıcının sadece geliri değil, borç/gelir oranı gibi türetilmiş bir feature, riski çok daha doğru tahmin etmeyi sağlar.


Modeli değiştirmek kolaydır, ama doğru feature üretmek gerçek mühendisliktir.

Ertan Dağdelen

Yazan

Ertan Dağdelen

Brain & Youth Information Worker, Author, .Net, Flutter, AJAX, Arduino & Esp32, Pcb, 3D, Galatasaray, Gemini

Bu yazıyı paylaş

Yorumlar (0)

Bu yazı için yorumlar kapalı.