Makine Öğrenmesi
Avantajlar
Pipeline, veri sızıntısını önler ve kodu temiz tutar.
Pipeline'ın kazançları
Pipeline üç somut kazanç sağlar:
- Doğruluk: sızıntı yapısal olarak önlenir.
- Kolaylık: tek
fit, tek predict; ızgara aramasında tüm adımların ayarları birlikte aranır. - Taşınabilirlik: tüm hat tek nesne olarak kaydedilir ve üretime taşınır.
import joblib
joblib.dump(pipe, "model.joblib")
yuklu = joblib.load("model.joblib")
yuklu.predict(yeni_veri) # ham veri yeterli
Üretimde ham veri gelir; ön işleme modelle birlikte kaydedilmezse eğitimdekiyle aynı dönüşümü yeniden yazmak gerekir ve hata riski doğar.
Pipeline içinde ızgara
Izgara aramasında hem ön işleme hem model ayarları birlikte aranır; her kombinasyon her katmanda temiz biçimde yeniden eğitilir:
izgara = {
"olcek": [StandardScaler(), MinMaxScaler()],
"model__C": [0.1, 1, 10],
}
gs = GridSearchCV(pipe, izgara, cv=5).fit(X_train, y_train)
print(gs.best_params_)
Ölçekleyici seçimi de, C değeri de doğrulamayla belirlenmiş olur.
Uygulama Kaydet ve yükle
Eğitilmiş pipeline'ı joblib.dump ile "hat.joblib" dosyasına kaydet, joblib.load ile geri yükle. Yüklenen modelin test tahminlerinin özgün modelinkilerle aynı olduğunu (... == ...).all() ile ve yüklenen modelin test doğruluğunu round(..., 3) ile alt alta yazdır.
Örnek çözümü göster
import joblib
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
X, y = load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0, stratify=y)
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
pipe = make_pipeline(StandardScaler(), LogisticRegression()).fit(X_train, y_train)
joblib.dump(pipe, "hat.joblib")
yuklu = joblib.load("hat.joblib")
print((yuklu.predict(X_test) == pipe.predict(X_test)).all())
print(round(yuklu.score(X_test, y_test), 3))
Kendini test et
-
Modeli üretime taşırken ölçekleyiciyi ayrı kaydetmeyi unutmak neye yol açar?
- Model daha hızlı çalışır
- Hiçbir şey
- Model kendini yeniden eğitir
- Model ölçeklenmemiş veriyle yanlış tahmin yapar
Cevabı göster
Model ölçeklenmemiş veriyle yanlış tahmin yapar — Model ölçekli veriyle eğitildi; ham veri farklı bir uzaydadır.
-
Pipeline'ı dosyaya kaydet.
joblib.____(pipe, "model.joblib")
Cevabı göster
joblib.dump(pipe, "model.joblib")
-
Kazançları eşleştir.
- Sızıntı önleme
- Doğruluk
- Tek fit
- Kolaylık
- joblib.dump
- Taşınabilirlik
- "model__C"
- Birlikte arama
Sıradaki ders: ColumnTransformer