Niestandardowy model scikit-learn
W tym ćwiczeniu stworzysz niestandardowy model przy użyciu smaku pyfunc biblioteki MLflow. Korzystając ze zbioru danych insurance_charges, etykiety muszą zostać zmienione z female na 0 oraz z male na 1 na potrzeby klasyfikacji podczas treningu. Gdy korzystasz z modelu, zamiast wartości 0 i 1 powinny być zwracane ciągi znaków female lub male.
Niestandardowy model to model klasyfikacji oparty na LogisticRegression, który wykorzystuje klasę CustomPredict. Klasa CustomPredict dodaje dodatkowy krok w metodzie predict – przekształca etykiety 0 i 1 z powrotem na female i male, gdy model otrzymuje dane wejściowe. Do rejestrowania i ładowania modelu użyjesz smaku pyfunc.
Zbiór danych insurance_charges zostanie wstępnie przetworzony, a model wytrenowany przy użyciu:
lr_model = LogisticRegression().fit(X_train, y_train)
Moduł MLflow zostanie zaimportowany.
To ćwiczenie jest częścią kursu
Wprowadzenie do MLflow
Instrukcje do ćwiczenia
- Użyj smaku
pyfuncbiblioteki MLflow, aby zarejestrować niestandardowy model. - Ustaw argument
python_modelsmakupyfunctak, aby korzystał z niestandardowej klasyCustomPredict(). - Załaduj niestandardowy model przy użyciu
pyfunc.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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")