当前位置: 首页 > news >正文

StandardScaler()进行0,1标准化时fit_transform与transform的区别

在使用 StandardScaler(标准化缩放器)标准化时,fit_transform 和 transform 是两个常用但含义不同的方法,主要区别如下:

1. fit_transform(X)

功能:同时完成「拟合」和「转换」两个操作
过程

  1. 先根据输入数据 X 计算出均值(mean)和标准差(std)
  2. 再使用这些计算出的均值和标准差对数据 X进行标准化处理(将数据转换为均值为 0、标准差为 1 的分布)

适用场景:对训练数据进行标准化时使用

2. transform(X)

功能:仅进行「转换」操作
过程

  1. 使用之前通过 fit 或 fit_transform 计算好的均值和标准差,对新数据 X 进行标准化
  2. 不会重新计算均值和标准差再标准化

适用场景:对测试数据或新数据进行标准化时使用

关键区别与注意事项
  • fit_transform 是 fit + transform 的组合,会改变缩放器内部的状态(存储计算出的均值和标准差)
  • transform 必须在 fit 或 fit_transform 之后使用,否则会报错
  • 核心原则:用训练数据的统计量(均值、标准差)来标准化测试数据,保证数据处理的一致性,保持一致性,确保模型能够正确评估和泛化。

代码示例

# -*- coding: utf-8 -*-
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler# 创建示例数据
x = [[1, 0],[2, 0],[3, 0],[4, 0],[5, 0],[6, 0]]
y = [0, 1, 0, 1, 0, 1]# 划分数据集
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.5, random_state=123)
print('x_train:', x_train)# 初始化标准化器
scaler = StandardScaler()# 对训练数据拟合并转换
x_train_scaled = scaler.fit_transform(x_train)
np.set_printoptions(precision=2, suppress=True)
print("\n train每列统计量:")
print(f"均值: {scaler.mean_}")
print(f"标准差: {np.sqrt(scaler.var_)}")
print("x_train_scaled:", x_train_scaled)# 对测试数据进行转换(使用训练数据的统计量)
x_test_scaled = scaler.transform(x_test)
print('x_test:', x_test)
print("\n test复用train均值和标准差后每列统计量:")
print("x_test_scaled:", x_test_scaled)# 对测试数据拟合并转换
x_test_scaled_2 = scaler.fit_transform(x_test)
print("\n test重新计算均值和标准差后每列统计量:")
print(f"均值: {scaler.mean_}")
print(f"标准差: {np.sqrt(scaler.var_)}")
print("x_test_scaled_2:", x_test_scaled_2)

结果展示

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

http://www.dtcms.com/a/351978.html

相关文章:

  • MIME类型与文件上传漏洞 - 网络安全视角
  • 【Jetson】基于llama.cpp部署gpt-oss-20b(推理与GUI交互)
  • 多地闭店上热搜,中产的白月光无印良品怎么了?
  • 项目管理进阶——项目经理任职资格评定聘任及考核管理办法
  • 支持向量机(SVM)核心概念总结
  • Tensor常见操作
  • vscode使用cmake tool进行项目管理安装
  • Elasticsearch映射:优化搜索性能的关键
  • 【无标题】计数组合学7.21(有界部分大小的平面分拆)
  • JVM模型
  • 微信小程序web-view嵌套H5,小程序与H5通信
  • 不安全的服务器,不支持 FTP over TLS
  • 服务器从0到1微服务所需的环境的安装
  • 数据结构(一):算法的时间复杂度和空间复杂度
  • 双坡阳光房光伏设计,精准实现降本增效
  • 【Python】QT(PySide2、PyQt5):列表数据保存到文件,文件数据加载到列表
  • QT(QTableWidget)
  • Matlab使用——开发上位机APP,通过串口显示来自单片机的电压电流曲线,实现光伏I-V特性监测的设计
  • 盲盒一番赏小程序:打造个性化潮玩购物天堂
  • vs2022 Nuget包缓存下载路径配置
  • 国产机安装caj 国产机没法打开caj文件,国产机如何看论文?
  • AIGC(生成式AI)试用 35 -- AI Agent开发及工作流,LangFlow
  • github拉取OpenSSL SSL_read: Connection was reset, errno 10054
  • Element中table组件(el-table)右侧滚动条空白占位gutter处理
  • window电脑使用OpenSSL创建Ed25519密钥
  • 由倍讯科技研制的CCLinkIE转ModbusTCP网关,可达成与脉冲计数器的连接
  • Tesseract OCR之单词识别与字符分类器
  • Docker:部署Redis
  • 常见flex布局思路:flex布局上下结构
  • 2025中国生物制造科技创新论坛为何“花落”常德?