10. С использованием библиотеки `sklearn` создать дополнительные признаки, обучить модель, залогировать ее.
11. (*) Сгенерировать новые признаки с использованием библиотект `autofeat`, обучить модель, залогировать ее.
12. С использованием библиотеки `mlxtend`отобрать N наиболее важных признаков. N выбирается с учетом количества признаков на предыдущем шаге, ориентировочный диапазон - от 20% до 70%. Обучить модель, залогировать ее.
13. (*) Повторите предыдущий пункт с помощью `sklearn`, проанализируйте, схожие ли признаки выбраны другим алгоритмом?
12. С использованием библиотеки `mlxtend` отобрать N наиболее важных признаков. N выбирается с учетом количества признаков на предыдущем шаге, ориентировочный диапазон - от 20% до 70%. Обучить модель, залогировать ее.
13. (*) Повторите предыдущий пункт, изменив направление отбора признаков и\или с помощью подхода `RFE`. Проанализируйте, схожие ли признаки выбраны другим алгоритмом?
14. С помощью `optuna` настроить оптимальные параметры для модели, показывающей лучший результат. Обучить модель, залогировать ее, зарегистрировать очередную версию.
15. (*) Обучить модель с помощью алгоритма [CatBoost](https://catboost.ai/) с выбранным вами набором признаков, залогировать ее, зарегистрировать очередную версию. Не забудьте воспользоваться оберткой (flavour) catboost.
-----
@ -200,7 +200,7 @@ mlflow.sklearn.log_model(...)
### 13 (*)
Повторите предыдущий пункт с `SequentialFeatureSelector` последовательно удаляя признаки (`forward=False`). И\или с помощью `RFE` из `sklearn`.
Повторите предыдущий пункт с `SequentialFeatureSelector` последовательно удаляя признаки (`forward=False`), и\или с помощью `RFE` из `sklearn`.
Проанализируйте, схожие ли признаки выбраны другим алгоритмом?
Используйте модель, которая показала лучший результат.
ИДалее используем модель, которая показала лучший результат.
У `Random Forest` будем настраивать параметры:
* количество деревьев от 1 до 20
* глубина дерева от 1 до 10
* max_features в интевале от 0.1 до 1
* количество деревьев
* глубина дерева
* max_features в интервале от 0.1 до 1.0
Проведите не менее 10 trails по подбору опитмальных гиперпараметров. Настраивать качество будем по метрике `mae` для регрессии и `f1` для классификации. Обратите внимание и явно укажите в коде на то, что нужно делать с метрикой - максимизировать или минимизировать.
@ -223,7 +223,7 @@ mlflow.sklearn.log_model(...)
### 15 (*)
Обучить модель с помощью алгоритма [CatBoost](https://catboost.ai/) с выбранным вами набором признаков. Пункт аналогичен предыдущему.
Залогируйте модель. Не забудьте воспользоваться оберткой (flavour) catboost.
Залогируйте модель. Не забудьте воспользоваться оберткой (flavour) `catboost`.
Зарегистрируйте данную модель как третью версию. Можно через интерфейс, можно с использованием API.
@ -239,7 +239,7 @@ mlflow.sklearn.log_model(...)
* файл `requirements.txt`
* список используемых столбцов
В реестре моделей установить ей тэг `Production`
Зарегистрируйте эту версию в реестре моделей и установите ей тэг `Production`
### 17
Сохранить в папке `research` и закоммитить два скриншота из интерфейса mlflow:
@ -258,7 +258,7 @@ mlflow.sklearn.log_model(...)
В `.gitignore` добавить в исключения папку с артефактами mlflow, и базу `mlruns.db`.
> Убедитесь, что скрипт по запуску **должен быть обязательно закоммичен!**
> Убедитесь, что скрипт по запуску mlflow **должен быть обязательно закоммичен!**
### 19
@ -272,7 +272,7 @@ mlflow.sklearn.log_model(...)
1. Для чего нужен этап feature extraction?
1. Для чего нужен этап feature selection?
1. Для чего используется фреймворл mlfow?
1. Для чего используется фреймворк mlflow?
1. Что такое "гиперпараметры модели" для чего и как их настраивать?
1. Как выглядит пайплайн работы модели, какие шаги в нем могут быть?