Začněte nyníZačněte zdarma

Vlastní funkce jako transformátory v pipeline

Dozvěděl/a ses, že senzory mohou podávat horší výsledky u obézních jedinců. Dříve jsi to řešil/a pomocí vah, ale teď tě napadlo, že by tato informace mohla být užitečná i pro feature engineering – proto se rozhodneš nahradit naměřenou hmotnost jedince indikátorem toho, zda jde o obézní osobu. Chceš to udělat pomocí pipeline. K dispozici máš numpy jako np, RandomForestClassifier(), FunctionTransformer() a GridSearchCV().

Toto cvičení je součástí kurzu

Designing Machine Learning Workflows in Python

Zobrazit kurz

Pokyny k cvičení

  • Definuj vlastní feature extraktor – funkci, která vrátí upravenou kopii svého vstupu.
  • Nahraď každou hodnotu prvního sloupce indikátorem toho, zda je daná hodnota nad prahem definovaným jako násobek průměru tohoto sloupce.
  • Převeď feature extraktor na transformátor a vlož ho do pipeline spolu s klasifikátorem random forest.
  • Pomocí grid search CV vyzkoušej hodnoty 1, 2 a 3 pro multiplikační konstantu multiplier ve svém feature extraktoru.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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)
Upravit a spustit kód