• Sklearn中fit、fit_transform、transform的区别


      在学习Sklearn的时候,有时会看到fit_tranform(),有时也会遇到fit()或transform(),需要整理一下它们的关系和用法,理清思路。

    fit:

      其实有点train的感觉,但是和train不同,它并不是一个训练的过程,而是一个适配的过程,适配的方法都是确定的,最后从训练集中得到一些参数,如归一化时用到的均值,标准偏差等。

    transform:

      根据所调用的函数的规则将数据进行转换,一般用于特征抽取和转换,如数据的归一化和标准化,或者将测试数据按照训练数据同样的模型进行转换,得到特征向量。transform函数必须在fit函数之后调用否则会报错。

    fit_transform:

      可以看做是fit和transform的结合,相当于先调用fit再调用transform,fit和transform没有任何关系,仅仅是数据处理的两个不同环节。训练样本先做fit,得到均值、标准偏差,然后将这些参数用于transform(归一化训练数据),使得到的训练数据是归一化的,而测试数据只需要在原先得到的均值、标准偏差上来做归一化就行,所以如果训练阶段使用fit_transform,则在测试阶段只需要对测试样本进行transform就行。Sklearn库源码中有句话“This is equivalent to fit followed by transform, but more efficiently implemented.”,所以更推荐这种方法。

    总结:

      Sklearn里的封装好的各种算法都要先fit,然后调用各种API方法,transform只是其中一个API方法,fit是为后续的API函数服务的。

  • 相关阅读:
    POJ3928 Pingpong(统计比 K 小的个数 + 树状数组)
    C++ Primer Plus读书笔记
    HDU1698Just a Hook(线段树 + 区间修改 + 求和)
    POJ3468A Simple Problem with Integers(区间加数求和 + 线段树)
    POJ2528Mayor's posters(离散化 + 线段树)
    约瑟夫环
    编写一个JavaWeb项目
    四则运算在线答题系统
    JAVA项目中的常用的异常处理情况
    第八周动手动脑
  • 原文地址:https://www.cnblogs.com/kongzimengzixiaozhuzi/p/13262421.html
Copyright © 2020-2023  润新知