深度学爬坑记录 -- 在划分数据集之前还是之后标准化数据

深度学爬坑记录 – 在划分数据集之前还是之后标准化数据

提出一个问题:

  • 如果我想把我的数据划分成训练、验证集和测试集,我应该在划分之前或之后对数据进行归一化吗?在建立预测模型时有什么不同吗?

回答:

为什么要进行归一化?因为它解决了梯度爆炸和各种特性之间的比例差异等问题

这取决于你的数据是否有标签,或者说是否存在多个观测数据

  • 如果有标签,先划分数据集!

  • 如果没有标签,只有一种数据,无关紧要。

对于我的数据是存在标签的,所以

  • 应该先划分数据集!!

原因:

  • 首先,要明白:测试集我们是将其表示为现实师世界的真值。

对于数据变量的特征标准化(或数据标准化)是一种通过减去均值除以方差来使数据标准化的技术。

如果你在划分数据集之前进行归一化或者标准化,那么:

你将把未来的信息引入训练解释变量(即均值和方差)。!

换句话说,你在进行预测的时候可是不知道预测结果的均值和方差的。

因此,您应该先对训练集进行标准化,然后使用训练集的均值和方差应用到验证集合测试集。通过这种方式,我们可以测试和评估我们的模型是否能够很好地推广到新的、看不见的数据点。

下面给出一个具体的示例,使用最大最小标准化的方式:

from sklearn.preprocessing import MinMaxScaler, StandardScaler
scaler = MinMaxScaler()
scaler_X = MinMaxScaler()
scaler_Y = MinMaxScaler()
# fit_transform for training data:
X_train = scaler_X.fit_transform(x_train)
y_train = scaler_Y.fit_transform(y_train)
# only transform for test (unseen) data:
X_test = scaler_X.transform(x_test)
y_test = scaler_Y.transform(y_test)

反归一化:

preds = scaler_Y.inverse_transform(pred_data)

参考
https://stackoverflow.com/questions/49444262/normalize-data-before-or-after-split-of-training-and-testing-data
https://towardsdatascience.com/feature-scaling-and-normalisation-in-a-nutshell-5319af86f89b
https://stackoverflow.com/questions/66952880/how-can-i-unnormalize-minmaxscaler
https://datascience.stackexchange.com/questions/27615/should-we-apply-normalization-to-test-data-as-well

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

简朴-ocean

继续进步

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值