Feature Engineering: Ham Veriden Değerli Özellikleri Çıkarmak
# Feature Engineering: Ham Veriden Değerli Özellikleri Çıkarmak
Makine öğrenmesinde başarı, algoritmanın kalitesinden çok veri kalitesine bağlıdır. Feature engineering, ham veriden model için anlamlı özellikleri (features) tasarlama ve çıkarma sanatıdır. Doğru özellikler, model performansını dramatik şekilde artırır; yanlış veya gereksiz özellikler ise modeli kafa karıştırır.
Raw veri nadiren modele doğrudan verilir. Örneğin, müşteri satın alma tahmini yapacaksanız, "2024-01-15 14:30:00" şeklindeki tarih bilgisi olduğu gibi kullanılamaz. Bundan saat, gün, hafta sonu bilgisi çıkarmanız gerekir. Ya da adres bilgisinden bölge, şehir, coğrafi özellikleri ayıklamanız gerekebilir. bu işlem feature engineering'dir.
Bir e-ticaret veri setinden müşteri harcama tahmini yapacağımızı varsayalım. Tarih, ürün kategorisi ve fiyat bilgilerimiz var. Bunlardan anlamlı özellikler çıkaralım:
1import pandas as pd2import numpy as np3from datetime import datetime45# Ham veri6df = pd.DataFrame({7'tarih': ['2024-01-15 14:30:00', '2024-01-15 20:15:00', '2024-01-20 09:00:00'],8'kategori': ['Elektronik', 'Giyim', 'Elektronik'],9'fiyat': [1500, 250, 3000]10})1112# Tarihten özellik çıkarma13df['tarih'] = pd.to_datetime(df['tarih'])14df['saat'] = df['tarih'].dt.hour15df['gun'] = df['tarih'].dt.day16df['hafta_sonu'] = df['tarih'].dt.dayofweek >= 5 # Cumartesi-Pazar1718# Kategoriden sayısal özellik (One-Hot Encoding)19df = pd.concat([df, pd.get_dummies(df['kategori'], prefix='kat')], axis=1)2021# Fiyat bazlı yeni özellik22df['fiyat_kategori'] = pd.cut(df['fiyat'], bins=[0, 500, 2000, 5000], 23labels=['düşük', 'orta', 'yüksek'])24df['fiyat_kategori'] = df['fiyat_kategori'].astype('category').cat.codes2526print(df[['saat', 'hafta_sonu', 'fiyat_kategori', 'kat_Elektronik', 'kat_Giyim']])Çıktı:
1saat hafta_sonu fiyat_kategori kat_Elektronik kat_Giyim20 14 False 2 1 031 20 False 1 0 142 9 False 2 1 0Sayısallaştırma (Encoding): Kategorik veriler (renk, şehir) sayılara dönüştürülür.
Normalizasyon: Farklı ölçekteki sayılar 0-1 veya -1 ile 1 arasına getirilir.
Polinom Özellikleri: İki özelliğin çarpımı veya karesi yeni özellik olur.
Eksik Veri Doldurma: Boş değerler ortalama, medyan veya tahmin yöntemiyle doldurulur.
Etkili feature engineering, deneyim, alan bilgisi ve veri keşfi gerektiren iteratif bir süreçtir. Model performansını izleyerek hangi özelliklerin faydalı olduğunu test etmelisiniz.
0 yorum