ÎncepețiÎncepe gratuit

Transformatoare cu funcții personalizate în pipeline-uri

La un moment dat, ai aflat că senzorii ar putea funcționa mai slab în cazul persoanelor obeze. Anterior, ai rezolvat această problemă folosind ponderi, dar acum te gândești că această informație ar putea fi utilă și pentru ingineria caracteristicilor — așa că decizi să înlocuiești greutatea înregistrată a unei persoane cu un indicator care arată dacă aceasta este obeză. Vrei să faci acest lucru folosind pipeline-uri. Ai la dispoziție numpy ca np, RandomForestClassifier(), FunctionTransformer() și GridSearchCV().

Acest exercițiu face parte din cursul

Proiectarea fluxurilor de lucru pentru Machine Learning în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Definește un extractor de caracteristici personalizat. Acesta este o funcție care va returna o copie modificată a intrării sale.
  • Înlocuiește fiecare valoare din prima coloană cu indicatorul care arată dacă acea valoare depășește un prag dat de un multiplu al mediei coloanei.
  • Convertește extractorul de caracteristici de mai sus într-un transformator și plasează-l într-un pipeline împreună cu un clasificator de tip random forest.
  • Folosește grid search CV pentru a testa valorile 1, 2 și 3 pentru constanta de multiplicare multiplier din extractorul tău de caracteristici.

Exercițiu interactiv practic

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

# Define a feature extractor to flag very large values
def more_than_average(X, multiplier=1.0):
  Z = ____
  Z[:,1] = ____ > multiplier*np.mean(Z[:,1])
  return Z

# Convert your function so that it can be used in a pipeline
pipe = Pipeline([
  ('ft', ____(____)),
  ('clf', RandomForestClassifier(random_state=2))])

# Optimize the parameter multiplier using GridSearchCV
params = ____
grid_search = GridSearchCV(pipe, param_grid=params)
Editează și rulează codul