楚暮天流 2019-06-12 14:59 采纳率: 0%
浏览 3412

为什么Python归一化或者标准化后,还原数据集与原数据集不一样?

标准化代码:

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]

请教这是怎么回事?

  • 写回答

3条回答

  • threenewbee 2019-06-12 18:29
    关注

    看下你有没有打乱或者拆分过数据

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog