标准化代码:
X_train=standar_scaler.fit_transform(X_train)
X_test=standar_scaler.fit_transform(X_test)
X_yz=standar_scaler.fit_transform(X_yz)
y_train=standar_scaler.fit_transform(y_train)
y_test=standar_scaler.fit_transform(y_test)
y_yz=standar_scaler.fit_transform(y_yz)
反标准化代码:
X_train=standar_scaler.inverse_transform(X_train)
X_test=standar_scaler.inverse_transform(X_test)
X_yz=standar_scaler.inverse_transform(X_yz)
y_train=standar_scaler.inverse_transform(y_train.reshape(1,-1))
y_test=standar_scaler.inverse_transform(y_test.reshape(1,-1))
y_yz=standar_scaler.inverse_transform(y_yz.reshape(1,-1))
其中,X_test和y_test是事先从数据集中提取出来的测试。
train和yz是训练集和验证集,通过train_test_split函数得到。
分别打印y_test和y_yz标准化前,以及反标准化后(即还原数据集),y_yz是完全一致的,y_test反标准化后数据有较大出入。
还原后的前十列:
[40.32316205 39.60171329 40.69419283 40.32316205 41.35387819 37.87023625
37.84962336 37.76717211 38.30310548 39.33374656]
标准化前的前十列:
[44.74975586 45.0623703 45.07076263 44.53993988 45.26588821 45.00152588
45.24700546 44.7833252 45.26379013 44.65953064]
请教这是怎么回事?
看下你有没有打乱或者拆分过数据
我也遇到这种问题了,请问怎么解决啊
是用训练集进行拟合,然后对训练集、测试集都用拟合好的”模型“进行转换 ,可能是这个原因,你可以试试。
https://cloud.tencent.com/developer/article/1770568