Makine Öğrenmesi
SelectKBest
SelectKBest, en iyi k özelliği istatistiksel teste göre seçer.
SelectKBest
SelectKBest, her özelliği hedefle tek tek ilişkisine göre puanlar ve en iyi k tanesini tutar. Puan fonksiyonu probleme göre seçilir:
from sklearn.feature_selection import SelectKBest, f_classif, mutual_info_classif
sec = SelectKBest(score_func=f_classif, k=6).fit(X, y)
print(sec.get_support(indices=True))
print(sec.scores_.round(1))
f_classif (ANOVA F) doğrusal ayrılmayı, mutual_info_classif her tür bağımlılığı ölçer. Regresyonda f_regression ve mutual_info_regression kullanılır.
Pipeline ve k seçimi
SelectKBest hedefe baktığı için pipeline dışında kullanılırsa ciddi sızıntı yaratır (pipeline dersindeki rastgele veri örneğini hatırla). k de bir hiperparametredir:
pipe = make_pipeline(StandardScaler(), SelectKBest(f_classif), LogisticRegression())
gs = GridSearchCV(pipe, {"selectkbest__k": [2, 4, 6, 10, 20]}, cv=5).fit(X, y)
print(gs.best_params_)
Böylece her katmanda seçim yalnızca o katmanın eğitim verisiyle yapılır.
Uygulama En iyi 6 özellik
Yapay veride SelectKBest(f_classif, k=6) eğit; seçilen sütun indekslerini yazdır. Ardından seçilenlerden kaçının gerçekten ilk 6 sütunda olduğunu yazdır.
Ö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.feature_selection import SelectKBest, f_classif
sec = SelectKBest(f_classif, k=6).fit(X, y)
idx = sec.get_support(indices=True)
print(idx)
print((idx < 6).sum())
Kendini test et
-
Tek değişkenli filtrelerin zayıflığı nedir?
- Yalnızca birlikte bilgi taşıyan özellikleri kaçırabilirler
- Çok yavaştırlar
- Hedefe bakmazlar
- Sınıflandırmada çalışmazlar
Cevabı göster
Yalnızca birlikte bilgi taşıyan özellikleri kaçırabilirler — Her özellik ayrı puanlanır; XOR gibi etkileşimler görünmez.
-
Karşılıklı bilgiyle puanla.
sec = SelectKBest(score_func=____, k=5)
Cevabı göster
sec = SelectKBest(score_func=mutual_info_classif, k=5)
-
Puan fonksiyonlarını eşleştir.
- f_classif
- ANOVA F, sınıflandırma
- f_regression
- Korelasyon tabanlı, regresyon
- mutual_info_classif
- Her tür bağımlılık
- chi2
- Negatif olmayan sayımlar
Sıradaki ders: Recursive elimination