【机器学习】为什么训练集用fit_transform而测试集只用transform?

一、解释

fit(): Method calculates the parameters μ and σ and saves them as internal objects.

解释:简单来说,就是求得训练集X的均值,方差,最大值,最小值,这些训练集X固有的属性。

transform(): Method using these calculated parameters apply the transformation to a particular dataset.

解释:在fit的基础上,进行标准化,降维,归一化等操作(看具体用的是哪个工具,如PCA,StandardScaler等)。作用是通过找中心和缩放等实现标准化

fit_transform(): joins the fit() and transform() method for transformation of dataset.

解释:fit_transformfittransform的组合,既包括了训练又包含了转换。对部分数据先拟合fit,找到该part的整体指标,如均值、方差、最大值、最小值等等(根据具体转换的目的),然后对该trainData进行转换transform,从而实现数据的标准化、归一化等等。

transform()fit_transform()二者的功能都是对数据进行某种统一处理(比如标准化~N(0,1),将数据缩放(映射)到某个固定区间,归一化等)

二、归一化(Normalization)

归一化的目的:

对数值类型的特征做归一化可以将所有的特征都统一到一个大致相同的数值区间内,使其具有可比性。

归一化之后等高线变得不再崎岖, x 1 x_1 x1 x 2 x_2 x2的更新速度变得更为一致,容易更快地通过梯度下降找到最优解。迭代次数变少,减小梯度下降算法的过程,从而加速模型的生成。

在这里插入图片描述

从上图中不难看出,归一化后的数据迭代次数更少!

三、为什么只对训练集做fit_transform,对测试集只做transform?

机器学习假设:

训练集和测试集的每个样本都是从同一分布中抽样得到的,所以在训练集中fit之后在测试集就不能再fit了,要不然二者可能不是同一分布模型,预测效果会很糟糕。

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

旅途中的宽~

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值