Zacznij terazZacznij za darmo

Łącząc wszystko w całość

Masz dwie wątpliwości dotyczące swojego potoku w startupie zajmującym się wykrywaniem arytmii:

  • Aplikacja była trenowana na pacjentach w różnym wieku, ale korzystają z niej głównie użytkownicy fitness, którzy zazwyczaj są młodzi. Podejrzewasz, że może to być przypadek przesunięcia dziedzinowego (domain shift), dlatego chcesz pominąć wszystkie przykłady dotyczące osób powyżej 50. roku życia.
  • Nadal martwisz się o przeuczenie, więc chcesz sprawdzić, czy zmniejszenie złożoności klasyfikatora lasu losowego i selekcja cech mogą w tym pomóc.

Stworzysz potok z krokiem selekcji cech SelectKBest() oraz klasyfikatorem RandomForestClassifier() – oba zostały już zaimportowane. Masz również dostęp do GridSearchCV(), Pipeline, numpy jako np oraz pickle. Dane są dostępne jako arrh.

To ćwiczenie jest częścią kursu

Projektowanie przepływów pracy uczenia maszynowego w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz potok z SelectKBest() jako krokiem ft oraz RandomForestClassifier() jako krokiem clf.
  • Utwórz siatkę parametrów do strojenia k w SelectKBest() oraz max_depth w RandomForestClassifier().
  • Użyj GridSearchCV(), aby zoptymalizować potok na podstawie tej siatki i danych zawierających tylko osoby poniżej 50. roku życia.
  • Zapisz zoptymalizowany potok do pliku pickle w celu wdrożenia na produkcję.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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)
Edytuj i uruchom kod