Пользовательская модель scikit-learn
В этом упражнении вы создадите пользовательскую модель с помощью флейвора pyfunc из MLflow. При работе с набором данных insurance_charges метки необходимо преобразовать: female → 0, male → 1 — для классификации во время обучения. При использовании модели вместо 0 и 1 должны возвращаться строки female и male.
Пользовательская модель представляет собой классификатор на основе LogisticRegression и использует класс CustomPredict. Класс CustomPredict добавляет дополнительный шаг в метод predict: при получении входных данных он преобразует метки 0 и 1 обратно в female и male. Для записи и загрузки модели вы будете использовать флейвор pyfunc.
Набор данных insurance_charges будет предобработан, а модель обучена с помощью:
lr_model = LogisticRegression().fit(X_train, y_train)
Модуль MLflow будет импортирован заранее.
Это упражнение является частью курса
Введение в MLflow
Инструкции к упражнению
- Используйте флейвор
pyfuncиз MLflow для записи пользовательской модели. - Задайте аргумент
python_modelфлейвораpyfunc, указав пользовательский классCustomPredict(). - Загрузите пользовательскую модель с помощью
pyfunc.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Log the pyfunc model
____.____.____(
artifact_path="lr_pyfunc",
# Set model to use CustomPredict Class
python_model=____,
artifacts={"lr_model": "lr_model"}
)
run = mlflow.last_active_run()
run_id = run.info.run_id
# Load the model in python_function format
loaded_model = ____.____.____(f"runs:/{run_id}/lr_pyfunc")