Kom igångKom igång gratis

Anpassade funktionstransformerare i pipelines

Du har fått information om att sensorerna kan prestera sämre för överviktiga individer. Tidigare hanterade du detta med vikter, men nu inser du att informationen även kan vara användbar för särdragskonstruktion. Du bestämmer dig därför för att ersätta den registrerade vikten för en individ med en indikator på om personen är överviktig. Du vill göra detta med hjälp av pipelines. Du har tillgång till numpy som np, RandomForestClassifier(), FunctionTransformer() och GridSearchCV().

Den här övningen är en del av kursen

Att designa maskininlärningsflöden i Python

Visa kurs

Övningsinstruktioner

  • Definiera en anpassad särdragsextraktor. Det är en funktion som returnerar en modifierad kopia av sin indata.
  • Ersätt varje värde i den första kolumnen med en indikator på om värdet överstiger ett tröskelvärde som definieras av en multipel av kolumnens medelvärde.
  • Konvertera särdragsextraktorn ovan till en transformerare och placera den i en pipeline tillsammans med en klassificerare baserad på slumpmässig skog.
  • Använd grid search CV för att prova värdena 1, 2 och 3 för multiplikationskonstanten multiplier i din särdragsextraktor.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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)
Redigera och kör kod