scikit-learn - 将管道预测转换为原始值/比例

时间:2017-01-24 19:53:27

标签: python machine-learning scikit-learn keras data-science

我按照以下方式创建了一个管道(使用Keras Scikit-Learn API

estimators = []
estimators.append(('standardize', StandardScaler()))
estimators.append(('mlp', KerasRegressor(build_fn=baseline_model, nb_epoch=50, batch_size=5, verbose=0)))
pipeline = Pipeline(estimators)

并适合

pipeline.fit(trainX,trainY)

如果我用pipline.predict(testX)预测,我(相信)我会得到标准化的预测。

如何预测testX以使predictedY与实际(未触及)testY的比例相同(即非标准化预测,而是实际值)?我看到有inverse_transform method for Pipeline,但似乎只是为了还原已转换的X

1 个答案:

答案 0 :(得分:5)

完全。管道中的StandardScaler()仅映射pipeline.fit(trainX,trainY)的输入(trainX)。

所以,如果你的模型适合于训练,你需要将它标准化,你应该将你的trainY映射为

{{1}}

inverse_transform()函数根据StandardScaler()。fit()中计算的标准差和平均值来映射其值。

如您所述,您可以随时调整模型而不缩放Y,但这可能很危险,具体取决于您的数据,因为它可能导致您的模型过度拟合。你必须测试它;)