我创建了一个scikit-learn管道,并通过提交培训工作将模型版本上传到ml-engine。当我从模型中请求局部预测时,与请求在线预测时获得的概率不同,但是我使用的是相同的输入文件。在我的管道中,我创建了一个ColumnTransformer,它包含用于分类数据的OneHotEncoder()和用于数字数据的StandardScaler()。培训工作期间发生了什么事情正在更改管道,或者调用gcloud ml-engine predict
时我的本地环境有问题吗?
transformer = ColumnTransformer(transformers=[('numerical', StandardScaler(
), [0, 1]), ("categorical", OneHotEncoder(categories=[array1, array2]), [2, 3])])
transformer.fit(X)
logClf = LogisticRegression(random_state=42, solver='liblinear')
logClf.predict = logClf.predict_proba
pipeline = Pipeline([
('transformer', transformer),
('classifier', logClf)])
pipeline.fit(X_train, y_train)
模型版本使用scikit-learn 0.20.0和python版本3.5。