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 pd
2import numpy as np
3from datetime import datetime
4
5# Ham veri
6df = 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})
11
12# Tarihten özellik çıkarma
13df['tarih'] = pd.to_datetime(df['tarih'])
14df['saat'] = df['tarih'].dt.hour
15df['gun'] = df['tarih'].dt.day
16df['hafta_sonu'] = df['tarih'].dt.dayofweek >= 5 # Cumartesi-Pazar
17
18# Kategoriden sayısal özellik (One-Hot Encoding)
19df = pd.concat([df, pd.get_dummies(df['kategori'], prefix='kat')], axis=1)
20
21# Fiyat bazlı yeni özellik
22df['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.codes
25
26print(df[['saat', 'hafta_sonu', 'fiyat_kategori', 'kat_Elektronik', 'kat_Giyim']])

Çıktı:

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası
1saat hafta_sonu fiyat_kategori kat_Elektronik kat_Giyim
20 14 False 2 1 0
31 20 False 1 0 1
42 9 False 2 1 0

Sayı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.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz