CodeBlanks Logo Icon CodeBlanks

Özet - Özellik seçimi

Bu grupta variance threshold, SelectKBest ve RFE'yi öğrendin.

Özet: özellik seçimi

Bu grupta:

  • Seçim özgün sütunları tutar; gürültü sütunları özellikle mesafe tabanlı modelleri bozar.
  • Filtreler: VarianceThreshold (hedefe bakmaz), SelectKBest (f_classif, mutual_info).
  • Sarmalayıcılar: RFE, RFECV; özellikleri birlikte değerlendirir, pahalıdır.
  • Gömülü: SelectFromModel ile ağaç önemleri ya da Lasso katsayıları.
  • Hedefe bakan her seçim pipeline içinde yapılmalı; k bir hiperparametredir.

Uygulama k'yı CV ile seç

make_pipeline(StandardScaler(), SelectKBest(f_classif), KNeighborsClassifier()) için selectkbest__k değerlerini [2, 4, 6, 10, 20] arasında GridSearchCV(..., cv=5) ile ara. best_params_ ve best_score_'u (round(..., 3)) alt alta yazdır.

Başlangıç kodu

model.py
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.feature_selection import SelectKBest, f_classif
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import GridSearchCV

# buraya yaz

Örnek çözüm

model.py
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.feature_selection import SelectKBest, f_classif
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import GridSearchCV

pipe = make_pipeline(StandardScaler(), SelectKBest(f_classif), KNeighborsClassifier())
gs = GridSearchCV(pipe, {"selectkbest__k": [2, 4, 6, 10, 20]}, cv=5).fit(X, y)
print(gs.best_params_)
print(round(gs.best_score_, 3))

Beklenen çıktı

{'selectkbest__k': 4}
0.758

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Hangisi hedefe bakmadığı için pipeline dışında güvenle kullanılabilir?

  • SelectFromModel
  • VarianceThreshold Doğru cevap
  • SelectKBest
  • RFE

Açıklama: Varyans yalnızca X'ten hesaplanır; diğerleri y'yi kullanır.

2 Seçim sayısını ızgarada ara.

Soru
gs = GridSearchCV(pipe, {"____": [2, 4, 6, 10]}, cv=5)
Cevap
gs = GridSearchCV(pipe, {"selectkbest__k": [2, 4, 6, 10]}, cv=5)

Açıklama: make_pipeline'da SelectKBest adımının adı "selectkbest"tir.

3 Araçları yaklaşımlarla eşleştir.

Kavram Anlamı
VarianceThreshold Filtre (hedefsiz)
SelectKBest Filtre (hedefli)
RFE Sarmalayıcı
SelectFromModel Gömülü

Orta seviye bölümündeki tüm dersler