Hepsini bir araya getirmek
Aritmi tespiti girişimindeki pipeline hakkında iki endişen var:
- Uygulama her yaştan hastalarla eğitildi, ancak ağırlıklı olarak genç olma eğilimindeki fitness kullanıcıları tarafından kullanılıyor. Bunun bir alan kayması (domain shift) olabileceğinden şüpheleniyorsun ve bu nedenle 50 yaş üzerindeki tüm örnekleri göz ardı etmek istiyorsun.
- Hâlâ aşırı uyumdan (overfitting) endişe ediyorsun; bu yüzden rastgele orman sınıflandırıcıyı (random forest classifier) daha az karmaşık hale getirmenin ve bazı özellikleri seçmenin buna yardımcı olup olmayacağını görmek istiyorsun.
Bir özellik seçimi adımı SelectKBest() ve bir RandomForestClassifier içeren bir pipeline oluşturacaksın; ikisi de içe aktarılmış durumda. Ayrıca GridSearchCV(), Pipeline, numpy (np olarak) ve pickle erişimin var. Veri arrh olarak mevcut.
Bu egzersiz
Python'da Machine Learning İş Akışları Tasarlama
kursunun bir parçasıdırEgzersiz talimatları
SelectKBest()adımıftveRandomForestClassifier()adımıclfolacak şekilde bir pipeline oluştur.SelectKBest()içindekikveRandomForestClassifier()içindekimax_depthiçin ayarlanacak bir parametre ızgarası oluştur.- Yalnızca 50 yaş altını içeren veriler üzerinde, pipeline'ını bu ızgaraya karşı optimize etmek için
GridSearchCV()kullan. - Üretimde kullanmak üzere en iyi hale getirilmiş pipeline'ı bir pickle dosyasına kaydet.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# Create a pipeline
pipe = Pipeline([
('ft', ____), ('clf', ____(random_state=2))])
# Create a parameter grid
grid = {'ft__k':[5, 10], '____':[10, 20]}
# Execute grid search CV on a dataset containing under 50s
grid_search = ____(pipe, param_grid=grid)
arrh = arrh.____[____(arrh['age'] < 50)]
____.____(arrh.drop('class', 1), arrh['class'])
# Push the fitted pipeline to production
with ____('pipe.pkl', ____) as file:
pickle.dump(____, file)