Pipeline
- Makine Öğrenmesi kursu
- Başlangıç
- Ders 79/112
- 5 dk
Ölçeklendirme ve model Pipeline ile birleştirilir.
Pipeline
Pipeline, ön işleme ve modeli tek nesnede sıralar. Her adım bir ad ve bir nesneden oluşur; son adım model, öncekiler dönüştürücüdür:
from sklearn.pipeline import Pipeline
pipe = Pipeline([
("olcek", StandardScaler()),
("model", KNeighborsClassifier(n_neighbors=5)),
])
pipe.fit(X_train, y_train)
print(pipe.score(X_test, y_test))make_pipeline aynısını adları otomatik vererek yapar: "standardscaler", "kneighborsclassifier".
Adımlara erişmek
Adımlara named_steps ile, parametrelere adım__parametre yazımıyla ulaşılır. Bu, ızgara aramasında pipeline içindeki modeli ayarlamanın yoludur:
print(pipe.named_steps["olcek"].mean_)
pipe.set_params(model__n_neighbors=7)
print(pipe.get_params()["model__n_neighbors"]) # 7Çift alt çizgi (__), adım adını parametre adından ayırır.
Uygulama Adlı pipeline
Iris'te ("olcek", StandardScaler()) ve ("model", KNeighborsClassifier(n_neighbors=3)) adımlarından bir Pipeline kur ve eğit. Test doğruluğunu round(..., 3) ile yazdır; ardından named_steps["olcek"].mean_ değerinin uzunluğunu yazdır.
Başlangıç kodu
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
X, y = load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=2, stratify=y)
# buraya yazÖrnek çözüm
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
X, y = load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=2, stratify=y)
pipe = Pipeline([("olcek", StandardScaler()), ("model", KNeighborsClassifier(n_neighbors=3))])
pipe.fit(X_train, y_train)
print(round(pipe.score(X_test, y_test), 3))
print(len(pipe.named_steps["olcek"].mean_))Beklenen çıktı
0.978 4
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Pipeline'da <code>fit</code> çağrıldığında dönüştürücü adımlar ne yapar?
- Yalnızca transform yapar
- Atlanır
- Modelden sonra çalışır
- fit_transform yapıp sonucu sonraki adıma verir Doğru cevap
Açıklama: Her dönüştürücü eğitim verisinde öğrenir ve dönüştürür; model dönüşmüş veriyle eğitilir.
2 Pipeline'daki modelin komşu sayısını 9 yap.
pipe.set_params(____=9)
pipe.set_params(model__n_neighbors=9)
Açıklama: adım__parametre yazımı iç içe parametrelere ulaşır.
3 İfadeleri eşleştir.
| Kavram | Anlamı |
|---|---|
Pipeline([...]) |
Adlı adımlar |
make_pipeline |
Otomatik adlar |
named_steps |
Adıma erişim |
model__C |
İç içe parametre |