如何解决如何使用在标准化输入上训练的模型标准化看不见的输入以进行预测?
我正在解决一个问题,我使用 3 个特征(3 列)使用弹性网络回归预测价格。如果没有标准化或缩放,即使只有 20 行训练数据,我也能得到不错的结果,但我已经通过标准化或缩放阅读过,你可以获得更好的结果。我见过很多这样做的方法,但它有点令人困惑。标准化输入的最佳方法是什么?如何标准化一组看不见的数据?下面是我到目前为止的一些代码。
设置培训和验证
X = array[:,0:3]
y = array[:,3]
X_train,X_validation,Y_train,Y_validation = train_test_split(X,y,test_size=0.20,random_state=1)
在弹性网络回归上拟合数据
elastic = ElasticNet()
elastic.fit(X_train,Y_train)
定义未见数据的预测函数
def predict(a,b,c):
input = [[a,c]]
input_df=pd.DataFrame(input,columns=('count','length','diverts'))
final_input = input_df.values
output=elastic.predict(final_input)
print(output)
我会像这样对看不见的输入进行预测:
predict (3,1188,80)
可能需要注意第一列,最小值为 2,最大值为 6。第二列的最小值为 509,最大值为 2688。第三列的最小值为 17,最大值为 212。输出列范围从 1,470,000 到 4,200,000。
我读过我只需要标准化输入(训练和验证)而不是输出。我该如何解决这个问题,以及如何标准化看不见的输入以进行现实世界的预测?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。