One-hot encoding, embedding ve feature importance
Ham veri bir elmas madeni gibidir — değerli taşlar toprağın altında gizlidir. Özellik mühendisliği, bu ham cevheri parlatıp modelin anlayabileceği kristal berraklığında bilgiye dönüştürme sanatıdır. Doğru özelliklerle basit bir model bile karmaşık rakiplerini geride bırakabilir.
Kategorik değişkenler (şehir, renk, meslek) sayısal modellerin anlayamadığı metinlerdir. *…
Pandas ile one-hot encoding
| 1 | import pandas as pd |
| 2 | |
| 3 | df = pd.DataFrame({'renk': ['kırmızı', 'mavi', 'yeşil', 'kırmızı']}) |
| 4 | encoded = pd.get_dummies(df, columns=['renk'], prefix='renk') |
| 5 | print(encoded) |
| 6 | # renk_kırmızı renk_mavi renk_yeşil |
| 7 | # 1 0 0 |
| 8 | # 0 1 0 |
| 9 | # 0 0 1 |
| 10 | # 1 0 0 |
Farklı ölçeklerdeki özellikler (yaş: 0-100, gelir: 0-1M) gradyan tabanlı modelleri yanıltı…
x_std = (x - μ) / σStandardScaler formülü: her değerden ortalama (μ) çıkarılır, standart sapmaya (σ) bölünür. Sonuç: çan eğrisi dağılımı merkezlenir.
Sklearn pipeline ile ölçekleme
| 1 | from sklearn.preprocessing import StandardScaler |
| 2 | from sklearn.pipeline import Pipeline |
| 3 | from sklearn.linear_model import LogisticRegression |
| 4 | |
| 5 | pipeline = Pipeline([ |
| 6 | ('scaler', StandardScaler()), |
| 7 | ('classifier', LogisticRegression()) |
| 8 | ]) |
| 9 | |
| 10 | # pipeline.fit(X_train, y_train) |
| 11 | # Ölçekleme sadece train verisinden öğrenilir, test'e uygulanır |
⚠️Veri sızıntısı tehlikesi! Ölçeklemeyi tüm veri üzerinde yaparsanız test setinin istatistikleri modele sızar. Daima fit_transform(train) sonra transform(test) kullanın.
Hangi özellikler gerçekten önemli? **Random Forest** ve **Gradient Boosting** modelleri he…
Random Forest ile özellik önemi
| 1 | from sklearn.ensemble import RandomForestClassifier |
| 2 | import pandas as pd |
| 3 | |
| 4 | rf = RandomForestClassifier(n_estimators=100, random_state=42) |
| 5 | rf.fit(X_train, y_train) |
| 6 | |
| 7 | importance_df = pd.DataFrame({ |
| 8 | 'ozellik': X_train.columns, |
| 9 | 'onem': rf.feature_importances_ |
| 10 | }).sort_values('onem', ascending=False) |
| 11 | |
| 12 | print(importance_df.head(10)) # En önemli 10 özellik |
**Wrapper yöntemi**: Model eğit → en az önemli özelliği at → tekrarla.…
Filter Yöntemleri
Wrapper Yöntemleri (RFE)
Bazen iki özelliğin **çarpımı** tek başlarından daha anlamlıdır. Örnek: 'oda_sayısı × metr…
x_new = x₁ · x₂Etkileşim özelliği: iki özelliğin çarpımı. Doğrusal modellerin yakalayamadığı ilişkileri ortaya çıkarır.
1000 şehir için one-hot = 1000 sütun. **Embedding** ise her şehri 8-64 boyutlu yoğun vektö…
🗺️Embedding = Anlam Haritası
One-hot encoding şehirleri bağımsız adalar gibi görür — İstanbul ile Ankara arasında mesafe kavramı yoktur. Embedding ise bir harita çizer: büyük şehirler bir kümede, sahil kasabaları başka kümede. Model bu haritayı öğrenir ve genelleme gücü katlanır.
💡Başlangıç stratejisi: Önce basit feature importance ile eleme yap, sonra kalan özelliklerle etkileşim dene. Embedding'i yüksek kardinalite (>50 kategori) durumunda düşün.
✦ Quiz
Aykırı değerler (outliers) içeren bir veri setinde hangi ölçekleme yöntemi daha sağlamdır?
✦ Quiz
One-hot encoding yerine embedding kullanmak için minimum kaç benzersiz kategori olmalı?
Bağlantılı Konular