ÎncepețiÎncepe gratuit

Totul laolaltă

Ai două îngrijorări legate de pipeline-ul tău la startup-ul de detectare a aritmiei:

  • Aplicația a fost antrenată pe pacienți de toate vârstele, însă este folosită în principal de utilizatori de fitness, care tind să fie tineri. Suspectezi că ar putea fi un caz de schimbare de domeniu (domain shift) și, prin urmare, vrei să ignori toate exemplele de la pacienți cu vârsta peste 50 de ani.
  • Ești în continuare îngrijorat de supraajustare (overfitting), așa că vrei să verifici dacă reducerea complexității clasificatorului de tip pădure aleatorie și selectarea unor caracteristici ar putea ajuta.

Vei crea un pipeline cu un pas de selecție a caracteristicilor SelectKBest() și un RandomForestClassifier, ambele deja importate. Ai acces și la GridSearchCV(), Pipeline, numpy ca np și pickle. Datele sunt disponibile ca arrh.

Acest exercițiu face parte din cursul

Proiectarea fluxurilor de lucru pentru Machine Learning în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Creează un pipeline cu SelectKBest() ca pas ft și RandomForestClassifier() ca pas clf.
  • Creează o grilă de parametri pentru a ajusta k în SelectKBest() și max_depth în RandomForestClassifier().
  • Folosește GridSearchCV() pentru a optimiza pipeline-ul față de acea grilă și față de datele care conțin doar pacienți cu vârsta sub 50 de ani.
  • Salvează pipeline-ul optimizat într-un fișier pickle pentru utilizare în producție.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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)
Editează și rulează codul