当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《scikit-learn-将管道预测转换为原始值/比例》经验,为你挑选了1个好方法。

我按如下方式创建了一个管道(使用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方法用于管道,但似乎只是为了恢复转换X.



1> diogoncalves..:

究竟。管道中的StandardScaler()仅映射pipe.fit(trainX,trainY)的输入(trainX)。

因此,如果您将模型拟合为近似trainY,并且还需要对其进行标准化,则应将trainY映射为

scalerY = StandardScaler().fit(trainY)  # fit y scaler
pipeline.fit(trainX, scalerY.transform(trainY))  # fit your pipeline to scaled Y
testY = scalerY.inverse_transform(pipeline.predict(testX))  # predict and rescale

inverse_transform()函数考虑标准偏差和在StandardScaler()。fit()中计算出的均值来映射其值。

正如您所提到的,您始终可以在不缩放Y的情况下拟合模型,但这可能会很危险,具体取决于您的数据,因为它可能导致模型过度拟合。您必须测试它;)

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有