Makine Öğrenmesi
Pipeline
Ö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.
Örnek çözümü göster
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_))
Kendini test et
-
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
Cevabı göster
fit_transform yapıp sonucu sonraki adıma verir — Her dönüştürücü eğitim verisinde öğrenir ve dönüştürür; model dönüşmüş veriyle eğitilir.
-
Pipeline'daki modelin komşu sayısını 9 yap.
pipe.set_params(____=9)
Cevabı göster
pipe.set_params(model__n_neighbors=9)
-
İfadeleri eşleştir.
- Pipeline([...])
- Adlı adımlar
- make_pipeline
- Otomatik adlar
- named_steps
- Adıma erişim
- model__C
- İç içe parametre
Sıradaki ders: Özet - Ölçeklendirme