程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

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

发布于2019-11-11 14:18     阅读(1316)     评论(0)     点赞(7)     收藏(5)


我已经创建了如下管道(使用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),则(相信)我得到了标准化的预测。

我如何进行预测testXpredictedY使其与实际(未涉及)的比例相同testY(即,不是标准化的预测,而是实际值)?我看到有inverse_transform一种用于Pipeline方法,但是似乎仅用于还原转换后的方法X


解决方案


究竟。管道中的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的情况下拟合模型,但这可能会很危险,具体取决于您的数据,因为它可能导致模型过度拟合。您必须测试它;)



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/150186/43a73939630a599e23b6/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

7 0
收藏该文
已收藏

评论内容:(最多支持255个字符)