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