通过归一化浅析transform和fit_transform的区别

文章通过实例探讨了在机器学习中,transform和fit_transform在数据预处理中的作用,特别是在归一化过程中的区别。fit_transform会先拟合数据再转换,可能导致不同数据集之间的不一致性;而transform则是使用已训练的模型对新数据进行转换,确保一致性。
摘要由CSDN通过智能技术生成

在介绍transform和fit_transform的区别之前,我们先来看一个机器学习的例子,通过归一化来分析transform和fit_transform的区别。

一、数据导入和导出

from sklearn import datasets
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import MinMaxScaler
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import r2_score

data = datasets.load_diabetes() #导入sklern中自带的糖尿病数据

二、数据训练

1、不进行归一化

首先对原始数据不做任何处理,来进行预测,我们最后的得分是0.06319025025089964

size = int(0.8*len(data['data']))

X_train = data['data'][:size]
X_test = data['data'][size:]
Y_train = data['target'][:size]
Y_test = data['target'][size:]
model = LinearRegression()
model.fit(X_train,Y_train)
Y_pred = model.predict(X_test)
print(r2_score(Y_pred,Y_test))
0.06319025025089964

2  对所有数据进行归一化

加入归一化,用MinMaxScaler对X做归一化,对Y不做处理,因为我们这里的Y需要输出原始尺寸大小的数,所以不做处理。我们可以看到最后的结果是0.06319025025090108,和上面不做任何处理得到的结果差别很细微,这里可以很好理解,就理解为对原来整体数据的尺寸大小做了同比例的变化,所以最后预测的Y也没发生多大变化。

scaler = MinMaxScaler()
data['data'] = scaler.fit_transform(data['data'])
0.06319025025090108

3  通过归一化来发现transform()和fit_transform()的区别

(一)fit_transform

对X_train和X_test分别进行fit_transform(),最后我们可以看到最后的结果是0.21261440026923184。相较于上面得到的结果发生了很大改变。纠其原因,是因为我们对X_train和X_test都做了fit_transform()

X_train = data['data'][:size]
X_test = data['data'][size:]
# 注意,这里将X_train和X_test都重新进行fit_transform,即将两组数据分别进行归一化,互不影响
X_train = scaler.fit_transform(X_train)
X_test = scaler.fit_transform(X_test)
0.21261440026923106

我们来看一下fit_transform()的官方解释:fit_transform() 的作用就是先拟合数据,然后转化它将其转化为标准形式。说明这里是对X_train和X_test分别先拟合各自的数据然后再做归一化处理,两者互不相干,如果X_train和X_test的数据分布相差很大,将会对我们的结果造成很大影响,这里使我们最后的拟合效果变好了。

(二)transform

先对X_train进行fit_transform(),然后用训练的归一化模型来transform(X_test)。最后我们可以看到最后的结果是0.0631902502508992。

X_train = data['data'][:size]
X_test = data['data'][size:]
# 注意,这里将X_train先fit_transform,再来transform(X_test)
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
0.0631902502508992

和我们前两次得到的结果相差不大。这里是因为我们对X_test做的归一化处理是沿用了已经对X_train训练好的归一化模型,即X_test是根据X_train数据大小做同比例的缩放,所以其实和我们对X_train和X_test整体进行归一化得到的结果差不多。我们再来看看transform()的官方解释:tranform() 的作用是通过找中心和缩放等实现标准化。

我们再来看看一个例子可以进一步发现fit_transform()和transform()的不同之处

import numpy as np
s = np.array([1,3,5,2,3,9,7,6,5,8,
              4,5,12])
s = s.reshape(-1,1)
mm = MinMaxScaler()

print("对所有数据归一化后的后3个数据")
print(mm.fit_transform(s)[10:])

s10 = mm.fit_transform(s[:10])
s3 = mm.transform(s[10:])
print("先对前10个数据训练,再拟合最后3个数据")
print(s3)

print("直接对最后3个数据进行归一化")
print(mm.fit_transform(s[10:]))
对所有数据归一化后的后3个数据
[[0.27272727]
 [0.36363636]
 [1.        ]]
先对前10个数据训练,再拟合最后3个数据
[[0.375]
 [0.5  ]
 [1.375]]
直接对最后3个数据进行归一化
[[0.   ]
 [0.125]
 [1.   ]]

通过上面例子我们应该可以理解fit_transform()和transform()的区别之处了吧!

xlb123___
关注 关注
  • 19
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
sklearn库中fit_transform()和transform()的区别
jobs010的博客
01-11 2118
fit_transform()和transform()是sklearn库中常用的数据预处理函数,在《Python机器学习及实践》一书中,涉及到这两个函数的代码如下: # 从sklearn.preprocessing导入StandardScaler from sklearn.preprocessing import StandardScaler # 标准化数据,保证每个维度的特征数据方差为1,
sklearn中的归一化方法StandardScaler中的fittransformfit_transform
weixin_48018951的博客
03-14 2682
sklearn中的归一化方法StandardScaler中的fittransformfit_transform介绍
深入理解 Scikit-Learn 中的 fit, transformfit_transform
最新发布
jjqhj的博客
08-04 2062
## fit- 作用:计算并存储模型参数(如均值、标准差)。- 适用对象:估计器、转换器。- 主要使用场景:参数计算。- 作用:使用 `fit` 方法计算得到的参数对数据进行转换。- 适用对象:转换器。- 主要使用场景:数据转换。- 作用:先 `fit`(计算并存储参数),再 `transform`(转换数据)。- 适用对象:转换器。- 主要使用场景:数据预处理时一步完成参数计算和数据转换。
Python: sklearn库中数据预处理函数fit_transform()和transform()的区别
cicilover的专栏
08-18 1万+
原文链接 对于数据预处理中涉及到的fit_transform()函数和transform()函数之间的区别很模糊,查阅了很多资料,这里整理一下: 涉及到这两个函数的代码如下: [python]view plaincopy #从sklearn.preprocessing导入StandardScaler fromsklearn.preprocessingimp...
fit_transformtransform
weixin_51736722的博客
01-09 1521
1、二者区别 fit(),用来求得训练集X的均值,方差,最大值,最小值,这些训练集X固有的属性。 transform(),在fit的基础上,进行标准化,降维,归一化等操作。 fit_transform(),包含上述两个功能。 2、为什么训练集用fit_transform而测试集用transform 训练集已经通过fit_transform求出了一些固有属性,测试集可沿用上述属性直接标准化,不必重新再求 x_train=std_x.fit_transform(x_train) x_test=std_x.t.
fit_transform transform有什么不一样
weixin_44943389的博客
06-14 1378
来对训练集进行拟合和转换。拟合过程会根据训练集数据计算并保存所需的转换参数,然后将训练集数据应用这些参数进行转换。这样做的目的是确保在后续对测试集或新数据进行转换时使用相同的转换参数。它会根据输入的数据计算所需的转换参数(例如均值、标准差等),然后将数据应用这些参数进行转换。得到的转换参数,将这些参数应用于新的数据,使其按照相同的转换方式进行处理。: 该方法仅对数据进行转换,不进行拟合过程。方法仅用于将数据按照已经拟合的转换器进行转换。方法用于拟合转换器并将数据进行转换,而。方法对测试集或新数据进行转换。
fit_transformtransform区别
知识搬运工的博客
03-03 1856
1. fit_transformfittransform的组合。 2. fit(x,y)传两个参数的是有监督学习的算法,fit(x)传一个参数的是无监督学习的算法,比如降维、特征提取、标准化。 3. fittransform没有任何关系,之所以出来这么个函数名,仅仅是为了写代码方便,所以会发现transform()和fit_transform()的运行结果是一样的。 注意:运行结果一模...
通俗地讲清楚fit_transform()和transform()的区别
微电子学与固体电子学-俞驰
06-20 6万+
网上抄来抄去都是一个意思, fit_transformfittransform的组合。 我们知道fit(x,y)在新手入门的例子中比较多,但是这里的fit_transform(x)的括号中只有一个参数,这是为什么呢? fit(x,y)传两个参数的是有监督学习的算法,fit(x)传一个参数的是无监督学习的算法,比如降维、特征提取、标准化 然后解释为什么出来fit_trans...
有关StandardScaler的transformfit_transform方法
gulie8的博客
09-24 3505
背景: StandardScaler类是一个用来讲数据进行归一化和标准化的类。 所谓归一化和标准化,即应用下列公式: 使得新的X数据集方差为1,均值为0 问题一: StandardScaler类中transformfit_transform方法有什么区别? 答:fit_transform方法是fittransform的结合,fit_transform(X_train) ...
GUiyihua.zip_归一化_归一化程序_标准化_矩阵归一化
07-14
用来求标准化结果的归一化程序,输入矩阵即可得到归一化的结果
123.rar_matlab 归一化_naturalizationon_归一化_归一化处理_数据 归一化
07-15
关于神经网络归一化方法的整理 由于采集的各数据单位不一致,因而须对数据进行[-1,1]归一化处理,归一化方法主要有如下几种,供大家参考:
通俗理解 fit,transform,fit_transform,以及训练集用fit_transform且测试集用transform的原因
qq_34604224的博客
06-17 2232
简单介绍 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的基础上,.
fit_transform,fit,transform区别和作用详解!!!!!!
热门推荐
欢迎光临啊噗不是阿婆主的酒馆
10-08 17万+
1. 写在前面 fittransform没有任何关系,仅仅是数据处理的两个不同环节,之所以出来这么个函数名,仅仅是为了写代码方便。所以会发现transform()和fit_transform()的运行结果是一样的。 注意:运行结果一模一样不代表这两个函数可以互相替换,绝对不可以!!! transform函数是一定可以替换为fit_transform函数的,fit_transform函数不能替换为...
sklearn】有关数据归一化小结---fit_transformfittransform区别及其简单使用
胡侃有料的博客
05-27 7898
every blog every motto: The shortest answer is doing. 0. 前言 之前有过这方面小结的打算,后来有事耽误了,正好这次又遇到坑了,遂填之。话不多说,下面进入正文。 本节主要是有关fit_transformtransformfit区别及其使用的相关小结。要注意使用过程中的reshape 说明: 这方面依然没有进行深入探究,有问题欢迎指正,后续有待完善。 1. 正文 1.1 基本概念 fit(): 简单来说,求得训练集的均值、方差、最大值、最小值等属
fit_transformtransform区别
厚积薄发的博客
12-29 368
transform 转化数据以前 先进行 fit_transform .
fit_transform
mmddz3的博客
11-20 115
fit_transform()函数说明 函数说明 函数说明,fit,transform,fit_transform
transformfit_transform
10-18
`transform`和`fit_transform`都是机器学习中常用的方法,用于对数据进行预处理或特征提取。其中,`fit_transform`是`fit`和`transform`的组合,即先对数据进行拟合(fit),再进行转换(transform)。 具体来说,`fit`方法用于对数据进行拟合,即计算出一些统计量(如均值、方差等),并保存在模型中。而`transform`方法则是根据这些统计量对数据进行转换,如标准化、归一化等。 举个例子,如果我们要对一个数据集进行标准化处理,可以先使用`fit`方法计算出该数据集的均值和标准差,然后再使用`transform`方法将数据集标准化。而如果我们想要同时进行拟合和转换,可以直接使用`fit_transform`方法。
写文章

热门文章

  • 通过归一化浅析transform和fit_transform的区别 1121

最新评论

  • 通过归一化浅析transform和fit_transform的区别

    CSDN-Ada助手: Python入门 技能树或许可以帮到你:https://edu.csdn.net/skill/python?utm_source=AI_act_python

  • 通过归一化浅析transform和fit_transform的区别

    王哪跑nn: 写的很清晰,涨知识了表情包

  • 通过归一化浅析transform和fit_transform的区别

    CSDN-Ada助手: 恭喜你这篇博客进入【CSDN每天最佳新人】榜单,全部的排名请看 https://bbs.csdn.net/topics/618101497。

大家在看

  • C++:set和map的使用指南 318
  • 全面提升工作效率:实用AI工具推荐 170
  • 最新华为od机试E卷刷题建议 1614
  • IEC104规约的秘密之十五----文件传输慢的原因 405
  • Java应用程序的测试覆盖率之设计与实现(一)-- 总体设计 123

最新文章

2024年1篇

目录

目录

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家玻璃钢仿真热气球雕塑玻璃钢雕塑头像简约玻璃钢公园雕塑找哪家上海玻璃钢雕塑定制价格玻璃钢雕塑修复裂痕西安玻璃钢雕塑工厂武汉小区玻璃钢雕塑厂家瑞金玻璃钢卡通雕塑厂奥特曼玻璃钢雕塑商场圣诞节美陈方案河北商场美陈哪里买做玻璃钢雕塑平台气球商场美陈哪家质量好吉安玻璃钢热气球雕塑潜江玻璃钢雕塑造型贴金动物玻璃钢雕塑的意义玻璃钢蜻蜓雕塑烟台玻璃钢人物雕塑价格陕西知名校园玻璃钢雕塑周口校园玻璃钢景观雕塑加工开远玻璃钢牛雕塑苏州玻璃钢人物雕塑制作鹤壁玻璃钢动物雕塑制作厂家玻璃钢公仔雕塑生产武汉湛江玻璃钢动物雕塑大丰玻璃钢人物雕塑鹤壁玻璃钢雕塑吉林动物玻璃钢雕塑生产厂家河北节庆商场美陈怎么样甘肃动物玻璃钢雕塑多少钱香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化