ПочатиПочніть безкоштовно

Власні перетворювачі функцій у pipeline

У певний момент вам повідомили, що датчики можуть працювати гірше для людей із ожирінням. Раніше ви враховували це вагами, але тепер думаєте, що ця інформація може бути корисною і для інженерії ознак, тож вирішуєте замінити зафіксовану вагу людини індикатором того, чи має вона ожиріння. Ви хочете зробити це за допомогою pipeline. У вашому розпорядженні є numpy як np, RandomForestClassifier(), FunctionTransformer() та GridSearchCV().

Ця вправа є частиною курсу

Проєктування робочих процесів машинного навчання в Python

Переглянути курс

Інструкції до вправи

  • Визначте власний екстрактор ознак. Це функція, яка повертатиме змінену копію свого вхідного масиву.
  • Замініть кожне значення першого стовпця індикатором того, чи перевищує це значення поріг, заданий як кратне середнього цього стовпця.
  • Перетворіть екстрактор ознак на трансформер і розмістіть його в pipeline разом із класифікатором випадкового лісу.
  • Використайте перехресну перевірку з пошуком по сітці, щоб випробувати значення 1, 2 і 3 для множника multiplier у вашому екстракторі ознак.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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)
Редагувати та запускати код