sklearn——fit_transform、transform、fit之间的关系

fit_transform、transform、fit之间的关系
  • fit和transform没有任何关系,仅仅是数据处理的两个不同环节,fit_transform这个函数名,是将fit与transform两个操作结合起来,这样写代码会高效一点。
  • sklearn里的封装好的各种算法使用前都要fit,fit相对于整个代码而言,为后续API服务。fit之后,然后调用各种API方法,transform只是其中一个API方法,所以当你调用transform之外的方法,也必须要先fit。
  1. fit():简单来说,就是求得训练集X的均值,方差,最大值,最小值,这些训练集X固有的属性。

  2. transform(): 在fit的基础上,进行标准化,降维,归一化等操作(看具体用的是哪个工具,如PCA,StandardScaler等)。

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

问题:为什么只在训练集上面使用fit(),而不在测试集或者测试集上fit()。

你的算法不应该知道关于任何测试集的信息,所以测试集的方差与均值都应该来自训练集的先验数据,即我们在训练集上fit得到平均数,方差等信息,使用在测试集以及验证集上。当然,这也需要你的数据集划分足够合理,使你在训练集上训练出来的模型有足够的泛化能力(当然模型的设计更关键)。再引申一句,验证集的归一化也要和训练集一样,在调整参数的时候,我们面对的是验证集的结果。在验证集上得到最佳的参数设置,最终在测试集上进行实验。

以上部分引用:
https://www.zhihu.com/question/60490799/answer/388715802
https://blog.csdn.net/weixin_38278334/article/details/82971752

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值