用python对训练集和测试集进行特征规范化处理

2023-11-18

这里的规范化处理指对提取后的特征集进行处理,不是对原始的数据信号进行处理,包括归一化标准化。

规范化的原因:不同特征具有不同量级时会导致:a.数量级的差异将导致量级较大的特征占据主导地位;b.数量级的差异将导致迭代收敛速度减慢;c.依赖于样本距离的算法对于数据的数量级非常敏感。

归一化:X_{norm}=\frac{X-X_{min}}{X_{max}-X_{min}},也就是原数据减去该特征列最小值,再除以该特征列的极差,将属性缩放到[0,1]之间。

标准化:X_{norm}=\frac{X-\mu }{\sqrt{\sigma ^{2}}},也就是原数据减去该特征列的均值,再除以该特征列的标准差。

注意:

1.所谓规范化是对特征列的规范化,不是对样本的特征向量规范化(如将一个人身高、年龄、体重等属性规范化没有意义);

2.应将训练集和测试集分开后再规范化处理,测试集使用的是训练集保留下的参数(归一化的max、min,标准化的mean、std),也就是训练集规范化时使用自己的最大值最小值、均值方差,测试集规范化计算时仍使用训练集的最大值最小值、均值方差。

【例】

训练集两个样本,含三个特征,x_{train}=\begin{bmatrix} 1 &2 &3 \\ 2&3 &4 \end{bmatrix},测试集也是两个样本,三个特征,x_{test}=\begin{bmatrix} 1 &1 &1 \\ 2&2 &2 \end{bmatrix}

归一化:由训练集得到参数 min=(1,2,3),max=(2,3,4),则

 训练集第一维特征的第一个数据1的计算为x=\frac{1-1}{2-1}=0,测试集第二维特征的第一个数据1的计算为x=\frac{1-2}{3-2}=-1.

标准化:由训练集得到参数 mean=(3/2, 5/2, 7/2), std=(1/2, 1/2, 1/2),则

训练集第一维特征的第一个数据1的计算为x=\frac{1-3/2}{1/2}=-1,测试集第二维特征的第一个数据1的计算为x=\frac{1-5/2}{1/2}=-3.

python实现:

可由 sklearn.preprocessing.MinMaxScaler 和 sklearn.preprocessing.StandardScaler 实现,训练集使用函数 fit_transform(),测试集使用函数 transform()。示例如下:

import numpy as np
from sklearn.preprocessing import MinMaxScaler   #归一化:最值
from sklearn.preprocessing import StandardScaler #标准化:均值方差

#训练集,两行三列,两个样本、三个特征
x_train = np.array([[1.0,2.0,3.0],
                   [2.0,3.0,4.0]])

#测试集,两行三列,两个样本、三个特征
x_test = np.array([[1.0,1.0,1.0],
                   [2.0,2.0,2.0]])

# 特征缩放:归一化
mms = MinMaxScaler()
x_train_norm = mms.fit_transform(x_train)
x_test_norm = mms.transform(x_test)
print('\n归一化:\n')
print('x_train_norm:\n',x_train_norm)
print('\nx_test_norm:\n',x_test_norm, "\n")

# 特征缩放:标准化
stdsc = StandardScaler()
x_train_std = stdsc.fit_transform(x_train)
x_test_std = stdsc.transform(x_test)
print('\n标准化:\n')
print('x_train_std:\n',x_train_std)
print('x_test_std:\n',x_test_std)

运行结果:

                  

参考

1.[机器学习] 数据特征 标准化和归一化_特征化和归一化_奇思闻影的舒克与贝克的博客-CSDN博客

2.https://www.cnblogs.com/dearL/p/9532288.html

3.scikit-learn数据预处理fit_transform()与transform()的区别_scikit fit transform_小白沉淀的博客-CSDN博客

4.https://www.cnblogs.com/dan-baishucaizi/p/9107858.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用python对训练集和测试集进行特征规范化处理 的相关文章

  • Django 中的 Rpy2 错误 - 未为“”类型的对象定义转换“py2rpy”

    我以前从未使用过 R 并且正在尝试使用 rpy2 从 python 调用 R 函数 它可以在独立的 python 终端上运行 但不能在 Django 中运行 但rpy2似乎无法将python字符串转换为r对象 我正在使用同事提供的自定义库
  • 组和平均 NumPy 矩阵

    假设我有一个任意的 numpy 矩阵 如下所示 arr 6 0 12 0 1 0 7 0 9 0 1 0 8 0 7 0 1 0 4 0 3 0 2 0 6 0 1 0 2 0 2 0 5 0 2 0 9 0 4 0 3 0 2 0 1 0
  • 将一维数组转换为下三角矩阵

    我想将一维数组转换为较低的零对角矩阵 同时保留所有数字 我知道numpy tril函数 但它用零替换了一些元素 我需要扩展矩阵以包含所有原始数字 例如 10 20 40 46 33 14 12 46 52 30 59 18 11 22 30
  • Python——捕获异常的效率[重复]

    这个问题在这里已经有答案了 可能的重复 Python 常见问题解答 异常有多快 https stackoverflow com questions 8107695 python faq how fast are exceptions 我记得
  • 按多个键分组并对字典列表的值进行汇总/平均值

    在Python中按多个键进行分组并对字典列表进行汇总 平均值的最Pythonic方法是什么 假设我有一个字典列表 如下所示 input dept 001 sku foo transId uniqueId1 qty 100 dept 001
  • 如何使用 PyMongo 在重复键错误后继续插入

    如果我需要在 MongoDB 中插入尚不存在的文档 db stock update one document set document upsert True 将完成这项工作 如果我错了 请随时纠正我 但是 如果我有一个文档列表并想将它们全
  • 在 Linux 上的 Python 中使用受密码保护的 Excel 工作表

    问题很简单 我每周都会收到一堆受密码保护的 Excel 文件 我必须解析它们并使用 Python 将某些部分写入新文件 我得到了文件的密码 当在 Windows 上完成此操作时 处理起来很简单 我只需导入 win32com 并使用 clie
  • 如何将类添加到 LinkML 中的 SchemaDefinition?

    中的图表https linkml io linkml model docs SchemaDefinition https linkml io linkml model docs SchemaDefinition and https link
  • 在 iPython/pandas 中绘制多条线会生成多个图

    我试图了解 matplotlib 的状态机模型 但在尝试在单个图上绘制多条线时遇到错误 据我了解 以下代码应该生成包含两行的单个图 import pandas as pd import pandas io data as web aapl
  • Pandas groupby apply 执行缓慢

    我正在开发一个涉及大量数据的程序 我正在使用 python pandas 模块来查找数据中的错误 这通常工作得非常快 然而 我当前编写的这段代码似乎比应有的速度慢得多 我正在寻找一种方法来加快速度 为了让你们正确测试它 我上传了一段相当大的
  • 如何使用 Celery 多工作人员启用自动缩放?

    命令celery worker A proj autoscale 10 1 loglevel info启动具有自动缩放功能的工作人员 当创建多个工人时 me mypc projects x celery multi start mywork
  • 使用 WSGI 在 Windows XAMPP 中设置 Python 路径

    我正在 Webfaction 上设置实时服务器的开发版本 在本地计算机上的虚拟 Apache 服务器环境 运行没有任何错误 中运行 Django 应用程序 XP 使用 Python 2 6 运行 XAMPP Lite 我可以提交更改通过 G
  • PyArmor - 打包为一个可执行文件

    当我执行此命令时 您好 使用 PyArmor pyarmor pack main py 它将它打包到一个名为的文件夹中dist里面包含我的 exe 以及许多 Python 扩展文件 据我所知 PyArmor 使用 PyInstaller 来
  • 为什么 __instancecheck__ 没有被调用?

    我有以下 python3 代码 class BaseTypeClass type def new cls name bases namespace kwd result type new cls name bases namespace p
  • Django Rest Framework POST 更新(如果存在或创建)

    我是 DRF 的新手 我阅读了 API 文档 也许这是显而易见的 但我找不到一个方便的方法来做到这一点 我有一个Answer与 a 具有一对一关系的对象Question 在前端 我曾经使用 POST 方法来创建发送到的答案api answe
  • 在 Python 中访问 argparse 的参数值

    我正在尝试为我的程序设置一些简单的标志参数 但无法弄清楚如何访问它们 我有 argparser parser argparse ArgumentParser description Simple PostScript Interpreter
  • Python:无法使用 os.system() 打开文件

    我正在编写一个使用该应用程序的 Python 脚本pdftk http www pdflabs com tools pdftk the pdf toolkit 几次来执行某些操作 例如 我可以在 Windows 命令行 shell 中使用
  • Pip 无法在 Windows 上安装 Twisted

    我正在尝试在 Windows 8 计算机上安装 Twisted 在 Twisted 官方网站上 只有一个 Windows 版的 Wheel 文件 https twistedmatrix com trac wiki Downloads htt
  • 如何从 nltk 下载器中删除数据/模型?

    我在 python3 NLTK 中安装了一些 NLTK 包 通过nltk download 尝试过它们 但不需要它们 现在想删除它们 我怎样才能删除例如包large grammars来自我的 NLTK 安装 我不想删除完整的 NLTK 安装
  • Python 中的字符串slugification

    我正在寻找 slugify 字符串的最佳方法 蛞蝓 是什么 https stackoverflow com questions 427102 in django what is a slug 我当前的解决方案基于这个食谱 http code

随机推荐

  • 30多岁挨踢人要转行的焦虑,是真的吗

    30多岁挨踢人要转行的焦虑 是真的吗 从菜鸟到高级都在焦虑的一个问题 到了30多岁还没有做出点成就的话 就只能转行了 诸如做管理 创业开饭馆等等 我一直对此观点持保留态度 粗略看国内挨踢的发展历程 2000年出现第一次泡沫 往前推的话 有规
  • 2023,DaaS驶入“AI大航海时代”

    2023 制胜 已然成为所有行业 企业的共同命题 随着数字化行至中程 数据壁垒逐渐被打破 DaaS作为企业增长问题的解法 再次被看到 作者 斗斗 编辑 皮爷 出品 产业家 2002年 在竞争激烈的美国职业棒球联盟 奥克兰运动家队无论在人员和
  • 关于C的预编译 宏定义 的一些使用[不断积累中]

    头文件 防止重复包含 根据 define 和条件编译 ifdef ifndef else endif 最经常的使用是 头文件 防止重复包含 但是 使用 pragma once 更好 现在 gcc cl exe 都支持 它不但代码更少 而且不
  • 点云分割介绍

    PCL之点云的分割 参考博客 https www yuque com huangzhongqing pcl kg7wvi peMqz https blog csdn net lizhengze1117 article details 890
  • 股权投资模型-CAPM模型和PEG模型(内附示例数据)

    一 CAPM模型 1 数据来源 示例数据附在分享文件中 2 数据年份 2000 2019年 3 数据指标 资本资产定价模型 Capital Asset Pricing Model 简称CAPM 是由美国学者威廉 夏普 William Sha
  • @JsonView的使用

    看到一个新的注解以前没有用过 记录一下使用方法 注意是 com fasterxml jackson annotation JsonView JsonView可以过滤pojo的属性 使Controller在返回json时候 pojo某些属性不
  • Spring MVC基本操作

    Spring MVC 一 Spring MVC概述 1 1 Spring MVC 简介 MVC是一种常见的用户界面设计模式 设计套路 其实现方案有很多 Struts2 SpringMVC等等 MVC Model 数据模型 View 视图 C
  • Delete `␍`eslint(prettier/prettier) Expected linebreaks to be ‘LF‘ but found ‘CRLF‘错误的解决方案

    Delete eslint prettier prettier Expected linebreaks to be LF but found CRLF 错误的解决方案 执行 git config global core autocrlf f
  • 蓝桥杯备赛:贪心

    例题1 最少砝码 问题描述 你有一架天平 现在你要设计一套砝码 使得利用这些砝码可以称出任意 小于等于 NN 的正整数重量 那么这套砝码最少需要包含多少个砝码 注意砝码可以放在天平两边 输入格式 输入包含一个正整数 N 输出格式 输出一个整
  • 【Java---数据结构】顺序表

    目录 一 线性表 二 顺序表 概念及结构 接口实现 打印顺序表 gt 遍历数组 在pos位置添加一个元素 插入 判断是否包含某个元素与查找某个元素对应的位置 获取pos位置的元素与给 pos 位置的元素设为 value 删除第一次出现的元素
  • 简单的小程序聊天对话窗口界面

    一个简单的微信小程序聊天对话窗口界面 包括发送文本功能 直接上代码 js代码 简单版 Page data content 当前登录者信息 login id 2023 user 大猪蹄子 avatar https img2 baidu com
  • 按钮 java_java如何创建并设置一个按钮

    java如何创建并设置一个按钮 AWT 抽象窗口工具包 是java提供用来建立和设置java的图形用户界面的基本工具 Swing 轻量级的图形界面组件 是以AWT平台为基础构建起来的新组件与AWT相比 Swing组件在实现时不包括任何依赖特
  • WebService 客户端获取别的服务器端传递xml或者json中文乱码

    最近在对接某行的网站后台WebService接口 对接过程中出现的乱码做下记录 使用WebService对接方式是 JAX WS 方式 开发工具 myeclipse 新建客户端 依次按照步骤 生成java文件 编写测试类 以上能与对方接口进
  • ZLMediaKit尝试解决GB28181(UDP方式)的视频花屏问题

    问题现象 视频出现大量花屏 无法观看 日志中出现大量的丢包输出 排查ZLMediaKit 的解决方案 https github com ZLMediaKit ZLMediaKit issues 1221 已尝试的方案 try1 服务器调优
  • 关于Form表单中action参数传值的问题

    form中get方法时action属性后面传递参数获取不到原因 浏览器会将表单数据封装为字符串 如controller message method search 然后直接附在表单的 action URL 之后 这两者之间用问号 进行分隔度
  • Spark大数据分析与实战笔记(第一章 Scala语言基础-3)

    文章目录 1 3 Scala的数据结构 1 3 1 数组 数组的遍历 数组转换 1 3 2 元组 创建元组 获取元组中的值 拉链操作 1 3 3 集合 List Set Map 1 3 Scala的数据结构 对于每一门编程语言来说 数组 A
  • Linux下使用system函数获取命令执行返回结果

    在Linux C语言中 需要获取设备挂载和空间容量信息 这时候最简单的方式就是使用命令工具进行查询 但是system函数调用之能返回进行执行的状态 不能返回执行的结果 所以这里自己实现system函数返回命令执行的结果 以获取设备挂载信息和
  • 第1周编程题-表示分数类的Fraction

    题目内容 设计一个表示分数的类Fraction 这个类用两个int类型的变量分别表示分子和分母 这个类的构造函数是 Fraction int a int b 构造一个a b的分数 这个类要提供以下的功能 double toDouble 将分
  • R语言数据拆分

    博主的话 大家好 这里是bio 先赞后看养成习惯 还没关注的小伙伴点点关注不迷路 今天是南方的小年 祝福大家小年快乐 目录 博主的话 前言 一 split 函数 二 subset 函数 总结 前言 今天继续学习R语言 我们之前已经介绍过了数
  • 用python对训练集和测试集进行特征规范化处理

    这里的规范化处理指对提取后的特征集进行处理 不是对原始的数据信号进行处理 包括归一化和标准化 规范化的原因 不同特征具有不同量级时会导致 a 数量级的差异将导致量级较大的特征占据主导地位 b 数量级的差异将导致迭代收敛速度减慢 c 依赖于样