Sklearn中的fit与fit_transform

Note:

  •     必须先用fit_transform(trainData),之后再transform(testData)
  •     如果直接transform(testData),程序会报错
  •     如果fit_transfrom(trainData)后,使用fit_transform(testData)而不是transform(testData),虽然也能归一化,但是两个结果不是在同一个“标准”下的,具有明显差异。(一定要避免这种情况)

    写在前面

        fit和transform没有任何关系,仅仅是数据处理的两个不同环节,之所以出来fit_transform是先fit再transform的简便写法。

        sklearn里的封装好的各种算法使用前都要fit,fit相对于整个代码而言,为后续API服务。fit之后,然后调用各种API方法,transform只是其中一个API方法,所以当你调用transform之外的方法,也必须要先fit。

        fit,拟合,原义指的是安装、使适合的意思,其实有点train的含义,但是和train不同的是,它并不是一个训练的过程,而是一个适配的过程,过程都是确定的,最后得到一个可用于转换的有价值的信息。

    fit,transform,fit_transform常用情况分为两大类
    1. 数据预处理中方法

        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_transform是fit和transform的组合,既包括了训练又包含了转换。
        transform()和fit_transform()二者的功能都是对数据进行某种统一处理(比如标准化~N(0,1),将数据缩放(映射)到某个固定区间,归一化,正则化等)

        fit_transform(trainData)对部分数据先拟合fit,找到该part的整体指标,如均值、方差、最大值最小值等等(根据具体转换的目的),然后对该trainData进行转换transform,从而实现数据的标准化、归一化等等。

    根据对之前部分trainData进行fit的整体指标,对剩余的数据(testData)使用同样的均值、方差、最大最小值等指标进行转换transform(testData),从而保证train、test处理方式相同。所以,一般都是这么用:

    from sklearn.preprocessing import StandardScaler
    sc = StandardScaler()
    sc.fit_tranform(X_train)
    sc.tranform(X_test)

    2. 各种算法的fit,transform方法

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值