【机器学习】fit_transform和transform的区别和联系

在对模型数据进行特征工程的时候我们会遇到这种情况:

# 特征缩放
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

可能有人会疑惑为什么两批数据的标准化方式不一样。

这里这样做的主要原因是为了避免数据泄露。

数据泄漏(Data Leakage)是指在机器学习模型训练过程中,意外地将测试集或未来信息引入到模型的训练中,从而导致模型对未见数据的性能评估过于乐观。数据泄漏会使模型在训练时获得不真实的信号,进而影响其在实际应用中的效果和泛化能力。

上述代码在第一步中使用fit_transform对训练数据进行标准化,该函数在标准化的过程中会先计算出训练数据的统计信息(均值和标准差),利用这些统计信息将训练数据标准化,而这些统计信息会被保留在StandardScaler对象中。

在第二步使用transform对测试数据进行标准化的时候就不用fit了,直接使用保存下来的统计信息进行标准化,确保测试集的标准化过程与训练集一致,不会引入新的信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值