Makine Öğrenmesi
Özellik seçimi nedir?
Özellik seçimi, en bilgilendirici özellikleri seçerek modeli basitleştirir.
Özellik seçimi nedir?
Özellik seçimi, modelin başarısına katkı vermeyen sütunları atıp yararlı olanları tutar. PCA'dan farkı, sonucun özgün ve yorumlanabilir sütunlardan oluşmasıdır. Üç yaklaşım vardır:
- Filtre: model bağımsız istatistik (varyans, korelasyon, F testi).
- Sarmalayıcı (wrapper): bir modeli tekrar tekrar eğiterek alt küme arar (RFE).
- Gömülü: modelin kendi önemleri (Lasso katsayıları, ağaç önemleri).
Yapay deneme verisi
Seçim yöntemlerini sınamak için hangi sütunların yararlı olduğunu bildiğimiz veri idealdir. make_classification, shuffle=False ile yararlı sütunları başa koyar:
X, y = make_classification(n_samples=400, n_features=20, n_informative=4,
n_redundant=2, shuffle=False, random_state=0)
# sütun 0-3: bilgili, 4-5: bilgilinin doğrusal birleşimi, 6-19: gürültü
İyi bir seçim yöntemi ilk 6 sütunu seçmeli, kalan 14 gürültü sütununu atmalıdır.
Uygulama Gürültünün zararı
KNN (5 komşu, ölçekli) için yalnızca ilk 6 sütunla ve tüm 20 sütunla 5 katlı CV doğruluğunu hesapla. İki skoru round(..., 3) ile aynı satırda yazdır (önce 6 sütun).
Örnek çözümü göster
import numpy as np
from sklearn.datasets import make_classification
X, y = make_classification(n_samples=400, n_features=20, n_informative=4, n_redundant=2, shuffle=False, random_state=0)
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import cross_val_score
m = make_pipeline(StandardScaler(), KNeighborsClassifier(n_neighbors=5))
print(round(cross_val_score(m, X[:, :6], y, cv=5).mean(), 3), round(cross_val_score(m, X, y, cv=5).mean(), 3))
Kendini test et
-
Hangisi bir sarmalayıcı (wrapper) yöntemdir?
- Korelasyon filtresi
- PCA
- Recursive feature elimination
- Varyans eşiği
Cevabı göster
Recursive feature elimination — RFE seçim için modeli tekrar tekrar eğitir.
-
Bilgili özellik sayısını 4 yap.
X, y = make_classification(n_features=20, ____=4, random_state=0)
Cevabı göster
X, y = make_classification(n_features=20, n_informative=4, random_state=0)
-
Yaklaşımları eşleştir.
- filtre
- Model bağımsız istatistik
- sarmalayıcı
- Tekrarlı model eğitimi
- gömülü
- Modelin kendi önemi
- n_redundant
- Tekrar eden bilgi
Sıradaki ders: Variance threshold