Cannot log pipeline object using mlflow

Viewed 313

I cannot log a pipeline object using mlflow and i am unsure why. Hyperclassifier search is a package which is just a wrapper around gridsearchcv

from HyperclassifierSearch import HyperclassifierSearch
import mlflow
import mlflow.sklearn
import mlflow.tracking
from mlflow.tracking import MlflowClient

models = {  'xgb': Pipeline(steps=[('preprocessor', preprocessor),('clf', OneVsRestClassifier(XGBClassifier(objective='binary:logistic',n_jobs=-1,random_state = 42)))])
                     
                         }


mlflow.sklearn.autolog()
with mlflow.start_run():
            
            search = HyperclassifierSearch(models, params)
            best_grid = search.train_model(X_train, y_train, cv=3, scoring='accuracy')
            results = search.evaluate_model()
            fitted_model = best_grid.best_estimator_
            mlflow.sklearn.log_model(fitted_model, "tester")

When i look at 'tester' it tells me how to read the model : loaded_model = mlflow.pyfunc.load_model(logged_model)

however i do not get the gridserch object back which is what i want. How can i save gridsearch object using mlflow

0 Answers
Related