python编程标准化_Python数据预处理:彻底理解标准化和归一化

2023-11-02

数据预处理

数据中不同特征的量纲可能不一致,数值间的差别可能很大,不进行处理可能会影响到数据分析的结果,因此,需要对数据按照一定比例进行缩放,使之落在一个特定的区域,便于进行综合分析。

常用的方法有两种:

最大 - 最小规范化:对原始数据进行线性变换,将数据映射到[0,1]区间

7ad1e3b3-ef14-4534-8209-34a0bdcbef64.png

Z-@R_502_182@标准化:将原始数据映射到均值为0、标准差为1的分布上

d03d6a91-bde4-43f9-b1f4-3c83f2c06537.png

为什么要标准化/归一化?

提升模型精度:标准化/归一化后,不同维度之间的特征在数值上有一定比较性,可以大大提高分类器的准确性。

加速模型收敛:标准化/归一化后,最优解的寻优过程明显会变得平缓,更容易正确的收敛到最优解。

如下图所示:

0d8c4426-332d-471d-962c-488620bdc6a2.png

36dfec3d-92cf-4849-8e3d-7c2a691261da.png

哪些机器学习算法需要标准化和归一化

1)需要使用梯度下降和计算距离的模型要做归一化,因为不做归一化会使收敛的路径程z字型下降,导致收敛路径太慢,而且不容易找到最优解,归一化之后加快了梯度下降求最优解的速度,并有可能提高精度。比如说线性回归、逻辑回归、adaboost、xgboost、GBDT、SVM、NeuralNetwork等。需要计算距离的模型需要做归一化,比如说KNN、KMeans等。

2)概率模型、树形结构模型不需要归一化,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率,如决策树、随机森林。

2dac94c3-3b44-4106-ab3a-abfa28774785.png

彻底理解标准化和归一化

765e47fb-0a7d-4bbb-a4a9-ee8cae21fdd3.png

示例数据集包含一个自变量(已购买)和三个因变量(国家,年龄和薪水),可以看出用薪水范围比年龄宽的多,如果直接将数据用于机器学习模型(比如KNN、KMeans),模型将完全有薪水主导。

#导入数据

import numpy as np

import matplotlib.pyplot as plt

import pandas as pd

df = pd.read_csv('Data.csv')

缺失值均值填充,处理字符型变量

df['Salary'].fillna((df['Salary'].mean()),inplace= True)

df['Age'].fillna((df['Age'].mean()),inplace= True)

df['Purchased'] = df['Purchased'].apply(lambda x: 0 if x=='No' else 1)

df=pd.get_dummies(data=df,columns=['Country'])

cbf4ff1a-61d2-4284-96df-7976b2f6b0db.png

最大 - 最小规范化

from sklearn.preprocessing import MinMaxScaler

scaler = MinMaxScaler()

scaler.fit(df)

scaled_features = scaler.transform(df)

df_MinMax = pd.DataFrame(data=scaled_features,columns=["Age","Salary","Purchased","Country_France","Country_Germany","Country_spain"])

d350617b-1c51-4b40-be21-8f5f4a41631c.png

Z-@R_502_182@标准化

from sklearn.preprocessing import StandardScaler

sc_X = StandardScaler()

sc_X = sc_X.fit_transform(df)

sc_X = pd.DataFrame(data=sc_X,"Country_spain"])

ebd911ed-e8f6-41af-9139-adaa8409f311.png

import seaborn as sns

import matplotlib.pyplot as plt

import statistics

plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']

fig,axes=plt.subplots(2,3,figsize=(18,12))

sns.distplot(df['Age'],ax=axes[0,0])

sns.distplot(df_MinMax['Age'],1])

axes[0,1].set_title('归一化方差:% s '% (statistics.stdev(df_MinMax['Age'])))

sns.distplot(sc_X['Age'],2])

axes[0,2].set_title('标准化方差:% s '% (statistics.stdev(sc_X['Age'])))

sns.distplot(df['Salary'],ax=axes[1,0])

sns.distplot(df_MinMax['Salary'],1])

axes[1,1].set_title('MinMax:Salary')

axes[1,1].set_title('归一化方差:% s '% (statistics.stdev(df_MinMax['Salary'])))

sns.distplot(sc_X['Salary'],2])

axes[1,2].set_title('StandardScaler:Salary')

axes[1,2].set_title('标准化方差:% s '% (statistics.stdev(sc_X['Salary'])))

可以看出归一化比标准化方法产生的标准差小,使用归一化来缩放数据,则数据将更集中在均值附近。这是由于归一化的缩放是“拍扁”统一到区间(仅由极值决定),而标准化的缩放是更加“弹性”和“动态”的,和整体样本的分布有很大的关系。所以归一化不能很好地处理离群值,而标准化对异常值的鲁棒性强,在许多情况下,它优于归一化。

846ddb7a-2e54-4dd0-9b30-4a51f4b78085.jpg

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

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

python编程标准化_Python数据预处理:彻底理解标准化和归一化 的相关文章

  • java ssh 访问linux,通过java使用ssh访问远程Linux

    需要做一个监控远程Linux磁盘空间的东西 绞尽脑汁终于发现一个东西 ch ethz ssh2 它可以通过用户名和密码登录可以ssh登录的机器 并且可以执行命令 并将命令显示的东西返回来 上代码了 Java代码 Connection con
  • 用jquery插件实现漂亮的日历效果

  • python爬虫时,将时间戳转换成北京时间、标准格式

    import time timestamp items get created 时间戳 time local time localtime int timestamp 注意 这里的整数不能超过11位数 pub date time strft
  • vue点击按钮次数

    显示点击次数
  • blender常用快捷键+动效制作

    文章目录 1 技术概述 2 技术详述 2 1常用快捷键 2 2镜像循环动画效果 3 遇到的难点和解决办法 难点 解决方法 4 总结 1 技术概述 Blender是一款免费的3D计算机图形软件 可用于创建动画 视觉效果 游戏开发和建筑设计等领
  • 分布式系统之Raft算法

    介绍 Raft是一种为了管理日志复制的分布式一致性算法 Raft 出现之前 Paxos 一直是分布式一致性算法的标准 Paxos 难以理解 更难以实现 Raft 的设计目标是简化 Paxos 使得算法既容易理解 也容易实现 Paxos 和
  • 【opencv学习之二十四】OpenCV滤波处理对比

    OpenCV的邻域滤波处理函数主要都通图像的卷积操作 有 1方框滤波boxFilter 属于线性滤波 其原理是用一个矩阵和一个核矩阵卷积操作 2均值滤波blur 也属于线性滤波 是方框滤波一种归一化后的方框滤波 3高斯滤波GaussianB
  • HTML+CSS+JavaScript+JQuery+Ajax

    HTML 1 DTD定义了HTML和XHTML的语义约束 包括HTML文档中可以出现哪些元素 各元素支持哪些属性等 2 基本的HTML文档 页面内容部分 不要在和之间插入任何内容 不要再和之间插入任何内容 不要在
  • Matlab模糊控制的模糊曲面构成怎么看?

    第一种方法 用matlab自带的模糊控制器 1 在MATLAB命令窗口输入fuzzy 然后在弹出框点 File Import From File 2 在Fuzzy Logic Designer 中点击 View Suface 但是 用这种方
  • VSCode用私钥连服务器

    以前一直用PyCharm 听说VSCode可以连接服务器直接修改文件什么的很方便 于是改用VSCode试试 记录一下自己的具体配置流程 1 安好VSCode后 打开左侧栏的扩展 搜索ssh 安装Remote SSH 2 安装后左侧栏出现远程
  • 【LlamaIndex 教程】一文看懂LlamaIndex用法,为LLMs学习私有知识

    城南 LlamaIndex 教程 一文看懂LlamaIndex用法 为LLMs学习私有知识 我是卷了又没卷 薛定谔的卷的AI算法工程师 陈城南 全网平台同名 担任某大厂的算法工程师 带来最新的前沿AI知识 分享 AI 有趣工具和实用玩法 包
  • vue3实现高德地图多点标注(so easy)

    vue3实现高德地图多点标注 so easy 前言 思路清晰 抽丝剥茧 必要的准备工作 最简单的部分 处理数据之前 最关键的思路 效果 完整代码 前言 非常感谢你能打开这篇博客 我想你一定是遇到了地图多点标注有关的问题 这些问题对你造成一些
  • 04 Java面试题之数组

    一 数组的类型可以为任意类型吗 答 可以是任意类型 二 数组中的元素的类型必须是相同的吗 数组中的元素是有序的吗 答 数组中元素的类型必须是相同的 数组中元素是有序的 索引的顺序 从零开始 三 数组的长度可变不 数组的长度使用哪个属性 答
  • 深度学习|卷积神经网络

    一 卷积神经网络简介 卷积神经网络 Convolutional Neural Network CNN 是一种深度学习神经网络结构 主要用于图像识别 计算机视觉等领域 该结构在处理图像等高维数据时表现出色 因为它具有共享权重和局部感知的特点
  • Yii Framework 开发教程(12) UI 组件 ClipWidget示例

    CClipWidget提供了类似录制 宏 的功能 定义在CClipWidget的init和run之间的内容可以存放在Controller的Clip变量中 然后重新回放到任意其它位置 CClipWidget封装的是CBaseControlle
  • html随机点名函数,利用JS实现课堂随机点名和顺序点名

    1 效果 ScreenGif gif 2 Html代码 随机点名区域 3 JavaScript代码 var i 0 t用来接收setTimeOut 的返回值 var t var st 张三 李四 老王 旺财 铁柱 王八 来福 小明 小红 狗
  • 时域OCT与频域OCT的区别

    时域OCT TD OCT 与频域OCT FD OCT 的最大区别在于信号采集单元 也就是检测器部分 时域 用光电探测器进行点探测 频域 用光谱仪进行光谱的采集 一般多用光栅和线阵CCD阵列为核心的小型光谱仪 按照分光原件不同分的 1 1 g
  • 类文件具有错误的版本 55.0, 应为 52.0

    文章目录 背景 原因 解决方案 方案一 条件 使用idea本身maven的编译命令的话 使用命令编译的话 mac怎么查看安装的jdk目录 mac怎么修改默认是jdk11 1 evanyang Evans MacBook Pro vim ba
  • 在ubuntu中安装Jenkins

    安装前的准备 一台 ubuntu 主机 本篇文章使用的是Ubuntu 16 04 5 LTS 切换到root用户 安装 Jenkins 第一次安装的可以稍微看下jenkins 的安装文档 总之 如果没有安装 Java 需要安装一下 下面是目

随机推荐

  • pickle库的使用

    pickle 作用 把一个列表 迭代类型变量 存储为序列化对象 不以字符串存 而是以序列存 存好后下次取出依旧是列表 迭代类型变量 意义 即把迭代变量保存到硬盘中 而不只是存在内存里 可以方便直接提供给他人一个变量而不用给比人一整段代码 存
  • SpringCloud学习笔记(二)

    续 一 负载均衡的第二种实现方式Feign 前面在使用Ribbon RestTemplate时 利用RestTemplate对Http请求的封装处理 形成了一套模板化的调用方法 但是使用 RestTemplate 还是不方便 这样每次都调用
  • 87-信号和槽-基于Qt Designer 的信号与槽

    基于Qt Designer 的信号与槽 可以使用 Qt Designer 创建信号与槽 这种方式的好处是可以可视化创建页面视图 少写很多代码 只需要关注逻辑部分就可以 本节案例要实现的功能如下 通过一个模拟打印的界面来详细说明信号的使用 在
  • Flutter的手势识别功能实现GestureDetector

    GestureDetector简介 GestureDetector 是 Flutter 中一个非常常用的小部件 它提供了许多手势识别的功能 包括点击 双击 长按 拖动 缩放等等 使用方法 GestureDetector 可以包裹其他部件 当
  • jenkins pipeline中获取shell命令的标准输出或者状态

    获取标准输出 第一种 result sh returnStdout true script
  • args在python中什么意思_Python中*args、**args到底是什么、有啥区别、怎么用

    调用函数时使用 和 假设有函数 def test a b c test args 的作用其实就是把序列 args 中的每个元素 当作位置参数传进去 比如上面这个代码 如果 args 等于 1 2 3 那么这个代码就等价于 test 1 2
  • BUUCTF-[Misc杂项]---二维码

    目录 BUUCTF Misc杂项 二维码 题目 题解 BUUCTF Misc杂项 二维码 题目 题解 下载附加压缩包并打开 打开后发现是一张png图片 解压下来 解压后是一张二维码图片 我们直接放到二维码查看器工具当中 得到此条信息 我们继
  • c# global::

    Global 表示所有命名空间的根部 Global asa 文件的作用主要是用于站点或虚拟目录下程序的数据共享和多线程 在 global asa 中 可以声明 Application 事件和 Session 事件 并可以声明一些 Sessi
  • Windows安装pip方法

    pip是一款非常方便的python包管理工具 本文主要介绍在windows 10下安装pip方法 1 下载pip 地址 https pypi python org pypi pip downloads 注意选择tar gz压缩包 目前最新版
  • 服务器系统版本选择,云服务器选择系统版本

    云服务器选择系统版本 内容精选 换一换 使用弹性云服务器或者外部镜像文件创建私有镜像时 必须确保操作系统中已安装PV driver 使新发放的云服务器支持XEN虚拟化 同时也可以提升云服务器的I O处理性能 实现对云服务器硬件的监控和其他高
  • MobileNet ShuffleNet & yolov5替换backbone

    以下内容参考参考 MobileNet V1 亮点 1 使用可分离卷积核大幅减少参数量 2 增加了超参数a b a 卷积核个数的倍率 b 分辨率高低 MobileNet V2 亮点 1 使用倒结构残差 残差结构 两边粗 中间细 倒残差结构 两
  • uniapp为page设置背景色不生效 & lang=“scss“ scoped的page样式失效,uniapp重复打开页面

    一 lang scss scoped中的page选择器的样式失效 在用uniapp生成网页和H5时有效 但生成小程序或者app时无效 这是因为page选择器在小程序和app编译中是页面的父节点 所以加上scoped限定后 会导致无法选中 详
  • 《Centos6.5——图形化安装虚拟机》

    目录 安装虚拟机以及虚拟机的配置 1 先下载镜像 2 安装VMware Workstation 3 打开vm 点击创建新的虚拟机 1 一路下一步 直到选择镜像 2 继续下一步 直到如下图 选择CD 选择镜像后点击确定 然后点击开启虚拟机 3
  • 阿里云-云存储OSS

    1 简述OSS 数据的可靠性较强 三重备份 系统的安全性较强 对称加密 签名权限控制以及防盗链功能 文件存储的容量无限 无需人工运维 部署扩容 无需规则 按需扩容 提供丰富的API接口 SDK包 客户端工具台 控制台 方便应用程序调用 安全
  • 基于Python和mysql开发的今天吃什么微信小程序(源码+数据库+程序配置说明书+程序使用说明书)

    一 项目简介 本项目是一套基于Python和mysql开发的今天吃什么微信小程序 主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Python学习者 包含 项目源码 项目文档 数据库脚本等 该项目附带全部源码可作为毕设使用 项目
  • 【深度学习】池化 (pooling)

    深度学习中 有两种实现非线性的算子 一个是激活函数 另一个就是池化 pooling 在知乎上面看到一个关于池化的神解释 摘来 池化 涨水 卷积的目的是为了得到物体的边缘形状 可以想象水要了解山立体的形状 水位低时得出山脚的形状 水位中等时得
  • 信息安全—密码学信息熵信息理论基础—熵的概念(熵、联合熵、条件熵、平均互信息)

    数学基础 概率论乘法法则 两个事件相互独立 P A B P A P B 意思是事件A和事件B同时发生的概率 事件A发生的概率 事件B发生的概率 举个栗子 掷两枚硬币硬币同时立着的概率 掷一枚硬币立着的概率 再掷一枚 硬币立着的概率 两个事件
  • Partition List

    题目 Given a linked list and a value x partition it such that all nodes less than x come before nodes greater than or equa
  • 关于免费获得WPS会员自动邀请助力的JAVA项目分享

    WPS自动邀请说明 一 基本说明 本项目不是全自动 需要用户每日13点前在微信WPS会员公众号完成在线签到 再完成签到后即可输入自己uid完成自动拉满10人的任务 本项目仅用于学习 不用于商业 二 具体步骤 添加微信公众号WPS会员 福利
  • python编程标准化_Python数据预处理:彻底理解标准化和归一化

    数据预处理 数据中不同特征的量纲可能不一致 数值间的差别可能很大 不进行处理可能会影响到数据分析的结果 因此 需要对数据按照一定比例进行缩放 使之落在一个特定的区域 便于进行综合分析 常用的方法有两种 最大 最小规范化 对原始数据进行线性变