НачатьНачать бесплатно

Собираем всё вместе

У вас есть два опасения относительно вашего пайплайна в стартапе по обнаружению аритмии:

  • Приложение обучалось на пациентах всех возрастов, однако в основном им пользуются люди, следящие за здоровьем, — как правило, молодые. Возможно, это случай доменного сдвига, поэтому вы хотите исключить из рассмотрения все примеры с возрастом старше 50 лет.
  • Вас по-прежнему беспокоит переобучение, поэтому вы хотите проверить, поможет ли снижение сложности классификатора случайного леса и отбор признаков.

Вы создадите пайплайн с шагом отбора признаков SelectKBest() и классификатором RandomForestClassifier() — оба уже импортированы. Также вам доступны GridSearchCV(), Pipeline, numpy как np и pickle. Данные доступны в переменной arrh.

Это упражнение является частью курса

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

Посмотреть курс

Инструкции к упражнению

  • Создайте пайплайн, в котором SelectKBest() — шаг ft, а RandomForestClassifier() — шаг clf.
  • Создайте сетку параметров для настройки k в SelectKBest() и max_depth в RandomForestClassifier().
  • Используйте GridSearchCV(), чтобы оптимизировать пайплайн на основе этой сетки и данных, включающих только пациентов моложе 50 лет.
  • Сохраните оптимизированный пайплайн в файл pickle для использования в производственной среде.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

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