首页 > 其他分享 >fit、transform、fit_transform的区别和联系

fit、transform、fit_transform的区别和联系

时间:2023-06-10 16:25:40浏览次数:33  
标签:fit 训练 区别 transform API 归一化 testData

1.来源

fit和transform没有任何关系,仅仅是数据处理的两个不同环节,之所以出来fit_transform这个函数名,仅仅是为了写代码方便,会高效一点。
sklearn里的封装好的各种算法使用前都要fit,fit相对于整个代码而言,为后续API服务。fit之后,然后调用各种API方法,transform只是其中一个API方法,所以当你调用transform之外的方法,也必须要先fit。
fit原义指的是安装、使适合的意思,其实有点train的含义,但是和train不同的是,它并不是一个训练的过程,而是一个适配的过程,过程都是确定的,最后得到一个可用于转换的有价值的信息。

2.区别和联系

1、fit(): fit的作用就是求得训练集的均值、方差、最大值、最小值等这些训练集X固有的属性这套指标不仅用在训练集上,也用在测试集上,保证train、test的处理方式相同。

2、transform(): transform的作用是在fit的基础上,进行标准化,降维,归一化等操作

3、fit_transform(): 是fit和transform的结合,既包括了训练又包含了转换

3.为什么训练集fit_transform(),测试集只使用tranform()

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

因为先fit_transfrom像是定下了某种算法或者标准,如果在测试集上再进行fit(),由于两次的数据不一样,导致得到不同的指标,会使预测发生偏差,因为模型是针对之前的数据fit()出来的标准来训练的,而现在的数据是新的标准,会导致预测的不准确。
fit_transform()干了两件事:fit找到数据转换规则,并将数据标准化。transform:是将数据进行转换,比如数据的归一化和标准化,训练集和测试集必须要在一个规则下进行比较才有效。

标签:fit,训练,区别,transform,API,归一化,testData
From: https://www.cnblogs.com/lipu123/p/17471417.html

相关文章

  • 【论文阅读】CvT:Introducing Convolutions to Vision Transformers
    ......
  • 值传递与地址传递的区别
    值传递与地址传递的区别#include<stdio.h>intArrayCopy(char*ori,char*cop,charLength){charloop;for(loop=0;loop<Length;loop++){*cop++=*ori++;}return0;}intmain(){charoriginal[10]={1,2,3,4,......
  • Python中直接查看对象值和使用print()输出的区别
    直接用代码来描述这个问题的现象:>>>x=r'C:\windows\notepad.exe'>>>x'C:\\windows\\notepad.exe'>>>print(x)C:\windows\notepad.exe>>>x='''Tomsaid,"Let'sgo."'......
  • Python运算符is与==的区别
    在Python中,关系运算符==用来测试两个对象的值是否相等,而同一性测试运算符is用来测试两个对象是否是同一个对象,如果两个变量是同一个对象,那么它们的内存地址是一样的,当然它们的值肯定也是一样的。并且,如果两个变量是同一个列表或其他类型的可变序列,在某些操作中通过一个变量可以影响......
  • 解析隧道代理IP与API代理IP的区别
    隧道代理IP和API代理IP是两种常见的代理IP类型,它们在实现方式和使用场景上有一些区别。第一部分:隧道代理IP的特点和用途隧道代理IP:隧道代理IP(TunnelProxyIP)是通过在客户端和目标服务器之间建立一个隧道连接来实现代理的。具体来说,隧道代理IP会在客户端和目标服务器之间扮演中间人......
  • JDK 动态代理 和 CGLIB 动态代理 的区别【SpringAOP】
    一、原理区别(版本一)Java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。而cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。1、如果目标对象实现了接口,默认......
  • Jtti:香港服务器IP段4c和8c的区别,SEO如何选
    香港服务器的IP段中的4c和8c表示不同的IP地址范围,其中:4c:表示IPv4地址段,范围为以"4c"开头的IPv4地址。例如,4c开头的IP地址可以是如下形式:4c.01.02.03、4c.11.22.33等。8c:表示IPv6地址段,范围为以"8c"开头的IPv6地址。IPv6地址是下一代互联网协议,用于替代IPv4地址空间不足的问题。关于......
  • 浏览器存储和浏览器缓存的区别?
    浏览器存储和浏览器缓存是两个不同的概念,其主要区别如下:数据类型不同浏览器存储可以用来存储各种类型的数据,包括字符串、数字、布尔值、对象、数组等等。而浏览器缓存则主要用于缓存已经访问过的资源文件,例如HTML、CSS、JavaScript、图片、音视频等。存储位置不同浏览器......
  • BS与CS的区别
    1、BS:浏览器服务器架构模式优点:客户端不需要安装;维护成本低缺点:所有计算和存储任务都放到服务器端,服务器的负荷较重,在服务器端计算完成的数据传输给客户端,这种频繁的数据通信,网络负荷也较重。例如:百度、淘宝,遇到活动或者节日,他们会添加特色装饰,而我们无需去升级,就可以感受到,维......
  • ai问答:Vue3中使用computed和watch监听pinia数据的区别
    在Vue3中,通过computed来监听pinia中的state数据:import{defineStore}from'pinia'import{useStore}from'pinia'import{computed}from'vue'conststore=defineStore('store',{/*...*/})exportdefault{setup(){......