归一化和标准化(Z-Score)

在处理数据过程中,通常会有不同规格的数据,比如年龄的取值范围是0-130,收入的取值范围是0-100000等等,如果不进行归一化或标准化处理,梯度下降每次走过的相对长度就不一样,就导致某个参数很快就找到了最优解,另一个参数还早得很。

归一化(Normalization)

归一化是将数据缩放到固定范围内的过程,最常见的是0到1之间。这种方法尤其适用于参数的尺度相差很大的情况。归一化的原理就是整体缩放数据刀0-1之间,公式是:

x normalized = x − x min x max − x min x_{\text{normalized}} = \frac{x - x_{\text{min}}}{x_{\text{max}} - x_{\text{min}}} xnormalized=xmaxxminxxmin

其中, x x x是原始数据点, x min x_{\text{min}} xmin x max x_{\text{max}} xmax分别是数据集中的最小值和最大值。

归一化适用于不假设数据分布的算法,如K最近邻和神经网络。

标准化(Z-Score Standardization)

标准化涉及到数据的重新缩放,使得它们的均值为0,标准差为1。标准化就是相当于把原来正太分布的数据移动到x=0的位置,让数据中位值和y轴重叠,同时数据集中的值在其均值周围分布的平均距离是1,因为平均距离是1但是大量数据集中在1以内(即-1~1之间)因此1以外的大概会分布到-3~3之间,最终就形成大部分数据在-3~3之间。公式是:

x standardized = x − μ σ x_{\text{standardized}} = \frac{x - \mu}{\sigma} xstandardized=σxμ

其中, μ \mu μ是数据集的均值,而 σ \sigma σ是数据集的标准差。

标准化适用于假设数据为正态分布的算法,如线性回归和逻辑回归。

归一化和标准化的代码实现如下:

import numpy as np
import matplotlib.pyplot as plt

# 生成正态分布的特征X和目标y数据
X = np.random.normal(50, 10, 1000)
y = np.random.normal(30, 5, 1000)

# 归一化y
normalized_y = (y - np.min(y)) / (np.max(y) - np.min(y))

# 标准化y
standardized_y = (y - np.mean(y)) / np.std(y)

# 绘制散点图
plt.figure(figsize=(15, 5))

# 绘制原始数据的散点图
plt.subplot(1, 3, 1)
plt.scatter(X, y, alpha=0.6, color='blue')
plt.title('Original Data Scatter Plot')
plt.xlabel('X')
plt.ylabel('y')

# 绘制归一化后的数据散点图
plt.subplot(1, 3, 2)
plt.scatter(X, normalized_y, alpha=0.6, color='orange')
plt.title('Normalized Data Scatter Plot')
plt.xlabel('X')
plt.ylabel('Normalized y')

# 绘制标准化后的数据散点图
plt.subplot(1, 3, 3)
plt.scatter(X, standardized_y, alpha=0.6, color='green')
plt.title('Standardized Data Scatter Plot')
plt.xlabel('X')
plt.ylabel('Standardized y')

plt.tight_layout()
plt.show()

图像绘制的结果,可以看到y的取值分别进行了归一化和标准化:
在这里插入图片描述
使用了Seaborn库来绘制原始数据、归一化后的数据和标准化后的数据的密度分布(KDE,Kernel Density Estimation)。这些图表显示了数据在不同处理(归一化和标准化)后的分布情况。

在第一个图表(Original Data Distribution)中,您可以看到特征 X X X(蓝色)和目标 y y y(红色)的原始分布情况。
第二个图表(Normalized Data Distribution)展示了将 X X X y y y 归一化后的分布情况。
第三个图表(Standardized Data Distribution)则展示了 X X X y y y标准化后的分布情况。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/257609.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何预防[[MyFile@waifu.club]].wis [[backup@waifu.club]].wis勒索病毒感染您的计算机?

导言: 近期,一种新兴的威胁[[MyFilewaifu.club]].wis [[backupwaifu.club]].wis勒索病毒,引起了广泛关注。这种恶意软件通过其高度复杂的加密算法,威胁着用户和组织的数据安全。本文将深入介绍[[MyFilewaifu.club]].wis [[backup…

Linux软件管理rpm和yum

rpm方式管理 rpm软件包名称: 软件名称 版本号(主版本、次版本、修订号) 操作系统 -----90%的规律 #有依赖关系,不能自动解决依赖关系。 举例:openssh-6.6.1p1-31.el7.x86_64.rpm 数字前面的是名称 数字是版本号:第一位主版本号,第二位次版本…

【ArkTS】路由传参

传参 使用router.pushUrl(),router.push()官方不推荐再使用了。 格式: router.pushUrl({url: 路由地址,params:{参数名:值} )跳转时需要注意路由表中是否包含路由地址。 路由表路径: entry > src > main > resources &g…

使用vite搭建项目时,在启动vite后,浏览器显示页面:找不到localhost的网页

现象 在使用前端工具vite(版本5),搭建vue3项目时,启动vite,浏览器显示页面:找不到localhost的网页, 起初怀疑是 未加参数 --host0.0.0.0,导致,后加上该参数后问题依旧 解决 将index.html页面…

Python框架篇(6):FastApi-配置管理

提示: 微信搜索【猿码记】回复 【fastapi】即可获取源码信息~ 在这一篇文章中,对fastapi框架和pydantic进行了升级,然后就是各种不兼容,以后再也不敢轻易升级.... pydantic:从 1.10.11升级到 2.5.2,这里有坑,里面有很多…

GitBook安装及使用——使用 Markdown 创建你自己的博客网站和电子书

目录 前言一、依赖环境二.gitbook安装使用1.安装 gitbook-cli2.安装 gitbook3.Gitbook初始化4.创建你的文章5.修改 SUMMARY.md 和 README.md6.编译生成静态网页7.运行以便在浏览器预览8.运行效果 前言 GitBook是一个命令行工具,用于使用 Markdown 构建漂亮的博客网…

Temu、Shein、OZON测评自养号,IP和指纹浏览器的优缺点分析

随着全球电子商务的飞速发展,跨境电商环境展现出巨大的潜力和机遇。然而,跨境卖家们也面临着更激烈的竞争、更严格的规定和更高的运营成本等挑战。为了在这个环境中脱颖而出,一些卖家尝试使用自动脚本程序进行浏览和下单。然而,这…

双非大数据

双非本秋招上岸总结 个人简介 学历:双非; 专业:软件工程; 求职岗位:大数据开发工程师; 状态:已上岸 翻车经历 学校以Java后端开发为主流,我从大二开始学习Java,直到大四…

Navicat关闭自动检查更新版本教程

Navicat关闭自动检查更新版本教程 首先,点击菜单中的工具菜单,弹出了下拉菜单选中为选项点击选项 首先,点击菜单中的工具菜单,弹出了下拉菜单选中为选项 点击选项 去掉勾选上在启动时自动检查更新选项

【lesson19】MySQL内置函数(2)数学函数和其它函数

文章目录 数学函数函数使用 其它函数函数使用 数学函数 函数使用 其它函数 函数使用 user() 查询当前用户 database()显示当前正在使用的数据库 password()函数,MySQL数据库使用该函数对用户加密 md5(str)对一个字符串进行md5摘要,摘要后得到一个32…

定制 Electron 窗口标题栏

Electron 是一款流行的桌面应用开发框架,基于 Web 技术构建,提供了强大的跨平台能力。在开发过程中,经常需要定制窗口标题栏以创造独特的用户体验。 1. 完全隐藏默认标题栏 有时候,我们希望创建一个自定义的标题栏,完…

前端做表格导出

下面来介绍一下方法 在vue页面里写调用方法 //表头数据格式 column: [{ key: Photo, width: 70, height: 50, colWidth: 100, title: 图片, type: image },{ key: Name, colWidth: , title: 名称, type: text },{ key: Phone, colWidth: , title: 手机号, type: text },{key:…

时尚炫酷动态图文幻灯片视频素材AE模板

这个After Effects模板以时尚和动态幻灯片为特色。可以编辑和自定义文本占位符、媒体占位符和颜色。用来展示照片或视频剪辑。不需要任何插件。 来自AE模板网:https://aemuban.com/28093.html

Shell脚本与计划任务

1.确定备份方案 为了顺利完成上述备份方案,首先授权用户能够查询studydb、coursedb库。 针对本案例的情况,可以创建一个专用的数据库备份账户operator,允许从备份主机 172.16.16.220连接到MySOL数据库.并授予对studydb.coursedb库的读取权限…

晶体管的工作状态判断和工作条件

晶体管是模拟电路中基础的器件,对于电子工程师来说,了解晶体管工作的条件和判断晶体管的工作状态都是非常基础的,本文将带大家一起学习或回顾一下。 一、晶体管工作的条件 1.集电极电阻Rc: 在共发射极电压放大器中,…

leetcode 450. 删除二叉搜索树中的节点

leetcode 450. 删除二叉搜索树中的节点 题目 给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。 一般来说&#x…

MATLAB 点云中心化 (40)

MATLAB 点云中心化 一、算法介绍二、算法实现一、算法介绍 使用点云集合中的坐标计算质心,这里将其作为中心,将每个点坐标减去该中心坐标,即可得到中心化的点云,这在很多处理中是必须进行的一个步骤:相当于点云移动到以质心为原点的坐标系 (主要是计算质心和点云偏移两个…

每个开发人员都应该知道的六个生成式 AI 框架和工具

在快速发展的技术环境中,生成式人工智能是一股革命性的力量,它改变了开发人员处理复杂问题和创新的方式。本文深入探讨了生成式 AI 的世界,揭示了对每个开发人员都至关重要的框架和工具。 1. LangChain LangChain 由 Harrison Chase 开发并于…

【MySQL】 表的操作

// 创建表 create table 表名();// 查看表结构 desc 表名;// 新增一列表信息 alter table 表名 add 字段名 字段类型 (after 原表某一字段名);// 删除一列表信息 alter table 表名 drop 字段名;// 修改表字段名字 alter table 表名 change 原字段名 新字段名 类型; // 新字…

嵌入式Linux学习(3)——中断(Interrupt)子系统概念

目录 一. 中断概念与分类 1.1 中断分类 1.2 中断事件的处理流程 1.3 中断号(IRQ number) 1.4 中断源(Interrupt Source) 1.5 中断触发方式 二. 中断子系统架构 2.1 GIC 2.2 中断子系统架构 2.3 GIC与IP 2.3.1 典型GIC IP PLC390 GIC 400 GIC 500 REF 一. 中断概念与…
最新文章