我構建一個機器學習模型使用sklearn管道包括ColumnTransformer作為預處理器在實際模型。下麵是代碼管道是如何創建的。
變形金剛= []num_pipe =管道(步驟=[(“輸入”,SimpleImputer(策略=“中值”)),(“標量”,StandardScaler())))變壓器。追加((“數值”,num_pipe num_cols)) cat_pipe =管道(步驟=[(“輸入”,SimpleImputer(策略= ' most_frequent ')),(鹹寧,OneHotEncoder (handle_unknown =“忽略”))))變壓器。追加((“分類”,cat_pipe cat_cols))預處理= ColumnTransformer(變壓器、剩餘=“透傳”)模型=管道(((“預科”,預處理器),(clf, XGBClassifier ())))
我用Mlflow記錄模型工件sklearn模型在擬合訓練數據。
model.fit(X, y) mlflow.sklearn.log_model(model, model_uri)
當我試圖加載模型從mlflow得分,我得到了錯誤”這個ColumnTransformer實例還沒有安裝。稱之為“適應”以適當的參數之前使用這個估計量。”
run_model = mlflow.sklearn.load_model (model_uri) run_model.predict (X_pred)
我也跑check_is_fitted第二步的管道xgboost模型本身從mlflow加載後,它也是不合適的。
Mlflow不兼容sklearn管道與多個步驟?
直接回答你的問題:是的,MLFlow兼容sklearn管道,我們自己的AutoML玻璃牆發生器使用幾乎相同的管道xgboost培訓。
我附上了樣品的筆記本,我能夠運行的端到端來訓練你的確切的管道。收入數據集、日誌MLFlow,從MLFlow加載它,並使用它來預測價值。我還包括一些調用check_is_fitted看到
希望這可以幫助指導,讓我知道如果你有任何其他問題或問題。
直接回答你的問題:是的,MLFlow兼容sklearn管道,我們自己的AutoML玻璃牆發生器使用幾乎相同的管道xgboost培訓。
我附上了樣品的筆記本,我能夠運行的端到端來訓練你的確切的管道。收入數據集、日誌MLFlow,從MLFlow加載它,並使用它來預測價值。我還包括一些調用check_is_fitted看到
希望這可以幫助指導,讓我知道如果你有任何其他問題或問題。