Збираємо все докупи
У вас є дві турботи щодо вашого конвеєра в стартапі з виявлення аритмій:
- Додаток навчали на пацієнтах усіх вікових груп, але його переважно використовують фітнес-користувачі, які зазвичай молодші. Ви підозрюєте зсув домену, тому хочете відкинути всі приклади старше 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)