数据预处理在建模中的重要性与常见方法(二):数据变化篇

1. 数据标准化

数据标准化是将数据转换到同一量纲,以消除不同量纲之间的影响,使数据具有可比性。常见的标准化方法包括Min-Max标准化和Z-score标准化。

1Min-Max标准化

应用场景:适用于对特征范围有要求的模型,如神经网络和支持向量机。

优点:保持了所有特征之间的关系,并且不会改变数据的分布。

缺点:对异常值敏感,容易受极端值影响。

2)Z-score标准化

应用场景:适用于假设数据符合正态分布的模型,如线性回归和逻辑回归。

优点:将数据转换为均值为0、标准差为1的标准正态分布,适合大多数机器学习算法。

缺点:对数据分布要求较高,不能很好地处理非正态分布的数据。

2. 数据归一化

数据归一化是将数据缩放到特定范围内,如[0, 1]或[-1, 1],以消除量级差异。

1)[0, 1]归一化

应用场景:适用于需要将数据压缩到特定范围内的场景,如图像处理和某些机器学习算法。

优点:避免了量纲不同导致的影响,适合处理特征值范围相差较大的数据。

缺点:对异常值敏感,容易受极端值影响。

2)[-1, 1]归一化

应用场景:适用于数据既包含正值又包含负值的场景,如音频信号处理。

优点:使数据均匀分布在[-1, 1]区间,有利于某些算法的收敛。

缺点:同样对异常值敏感,容易受极端值影响。

3. 数据平滑

数据平滑是通过消除噪声或波动,使数据更加平稳,以便更好地发现数据中的趋势和模式。常见的平滑方法包括移动平均法和指数平滑法。

1)移动平均法

应用场景:适用于时间序列数据的噪声消除,如股票价格和气温数据。

优点:简单易行,能够有效消除短期波动。

缺点:会滞后数据,导致平滑后的数据偏离真实值。

2)指数平滑法

应用场景:适用于时间序列数据的平滑和预测,如销量预测和趋势分析。

优点:能够较好地捕捉数据中的长期趋势,参数调整灵活。

缺点:需要设定平滑系数a,且对噪声较大的数据效果不佳。

各方法的对应代码实现:

以下是实现数据标准化、归一化和平滑的代码示例,并包括相关的可视化图片。

import numpy as npimport pandas as pdimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=False# 生成示例数据np.random.seed(0)data = pd.DataFrame({'value': np.random.randn(100) * 10 + 50})# Min-Max标准化data['min_max'] = (data['value'] - data['value'].min()) / (data['value'].max() - data['value'].min())# Z-score标准化data['z_score'] = (data['value'] - data['value'].mean()) / data['value'].std()# [0, 1]归一化data['normalization'] = (data['value'] - data['value'].min()) / (data['value'].max() - data['value'].min())# [-1, 1]归一化data['normalization_2'] = 2 * data['normalization'] - 1# 移动平均法data['moving_avg'] = data['value'].rolling(window=5).mean()# 指数平滑法alpha = 0.3data['exp_smooth'] = data['value'].ewm(alpha=alpha).mean()# 可视化fig, axs = plt.subplots(3, 2, figsize=(12, 18))# Min-Max标准化axs[0, 0].plot(data['value'], label='Original', marker='o')axs[0, 0].plot(data['min_max'], label='Min-Max Normalization', marker='x')axs[0, 0].legend()axs[0, 0].set_title('Min-Max Normalization')# Z-score标准化axs[0, 1].plot(data['value'], label='Original', marker='o')axs[0, 1].plot(data['z_score'], label='Z-score Normalization', marker='x')axs[0, 1].legend()axs[0, 1].set_title('Z-score Normalization')# [0, 1]归一化axs[1, 0].plot(data['value'], label='Original', marker='o')axs[1, 0].plot(data['normalization'], label='[0, 1] Normalization', marker='x')axs[1, 0].legend()axs[1, 0].set_title('[0, 1] Normalization')# [-1, 1]归一化axs[1, 1].plot(data['value'], label='Original', marker='o')axs[1, 1].plot(data['normalization_2'], label='[-1, 1] Normalization', marker='x')axs[1, 1].legend()axs[1, 1].set_title('[-1, 1] Normalization')# 移动平均法axs[2, 0].plot(data['value'], label='Original', marker='o')axs[2, 0].plot(data['moving_avg'], label='Moving Average', marker='x')axs[2, 0].legend()axs[2, 0].set_title('Moving Average')# 指数平滑法axs[2, 1].plot(data['value'], label='Original', marker='o')axs[2, 1].plot(data['exp_smooth'], label='Exponential Smoothing', marker='x')axs[2, 1].legend()axs[2, 1].set_title('Exponential Smoothing')plt.tight_layout()plt.show()

可视化结果

标准化:

归一化:

数据平滑:

更多精彩干货:

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

AI发展除了带来失业,还带来了不少副业兼职,一键无脑生成,月入1W+

前言 今天,我想和大家分享一下在当前经济下行、就业压力加大的背景下,个人如何利用AI技术开展副业,实现月入过万。 近年来,AI技术的发展虽然带来了不少就业岗位的流失,但同时也为我们提供了许多新的副业机会。今天我…

LNMP环境配置问题整理

首先是一键安装直接报错: 换教程:搭建LNMP,步骤最详细,附源码,学不会打我-CSDN博客 mysql安装成功之后: MySQL 启动报错:Job for mysqld.service failed because the control process exited with error code. 如果所有方法都试过之后卸载后重装可以快速解决: 参考…

matlab PID tuner整定工具箱的用法

从主页的APP中搜索到它: 按照下图IMPORT导入被控对象的传递函数 在下图的Inspect按钮中可以看到导入的被控对象的传函。 在下图的Type中选择控制器类型: 在下图的Form中选择PID的形式:有两种可选:平行式Parallel和标准式Standard …

【Vue3 ts】echars图表展示统计的月份数据

图片展示 此处内容为展示24年各个月份产品的创建数量。在后端统计24年各个月份产品数量后,以数组的格式发送给前端,前端负责展示。 后端 entity层: Data Schema(description "月份统计")public class MonthCount {private Stri…

SCSA第九天

DPI和DFI的对比 1,DFI仅对流量行为分析,只能对应用类型进行笼统的分类,无法做到精细的识别 2,如果流量进行加密的话,DPI可能在没有解密的情况无法进行识别,但是DFI不受影响 IPS(入侵防御&…

HarmonyOS介绍

一、什么是HarmonyOS HarmonyOS是新一代的智能终端操作系统,为不同设备的智能化、互联与协同提供了统一的语言,为用户带来简捷、流畅、连续、安全可靠的全场景交互体验。 二、HarmonyOS的核心理念 1、一次开发 多端部署 指的是一个工程&#xf…

基于SpringBoot+Vue的广场舞团系统(带1w+文档)

基于SpringBootVue的广场舞团系统(带1w文档) 基于SpringBootVue的广场舞团系统(带1w文档) 广场舞团,为用户随时随地查看广场舞团信息提供了便捷的方法,更重要的是大大的简化了管理员管理广场舞团信息的方式方法,更提供了其他想要了解广场舞团…

Java多线程用法(附20道练习题)

目录 一、多线程的实现方式1. 继承Thread类2. 实现Runnable接口3. 实现Callable接口4. 三种方式的对比 二、多线程的常用的实现方法三、守护线程、礼让线程和插队线程1. 守护线程 thread.setDaemon(true)2. 礼让线程 Thread.yield()3. 插队线程 thread.join(); 四、Java中线程的…

Go 语言 UUID 库 google/uuid 源码解析:UUID version7 的实现

google/uuid 库地址 建议阅读内容 在阅读此篇文章之前,建议先了解 UUIDv1 的构成、UUIDv4 的 API 以及掌握位运算。 了解 UUIDv1 的构成可以参考Go 语言 UUID 库 google/uuid 源码解析:UUID version1 的实现 或 RFC 9562。 了解 UUIDv4 的 API 可以看…

husky 和 lint-staged 构建代码项目规范

目录 前言 最简单的方法 过 scripts 来解决如果检测工具多,需要多次处理 通过 husky(哈士奇)来解决容易遗忘的问题 1. 安装 2. husky init 3. 试一试​ lint-stadge 只 lint 改动的 1. 安装 2. 修改 package.json 配置 3. 添加 npm 脚本: 4.使用 Husky…

成为git砖家(1): author 和 committer 的区别

大家好,我是白鱼。一直对 git author 和 committer 不太了解, 今天通过 cherry-pick 的例子搞清楚了区别。 原理 例如我克隆了著名开源项目 spdlog 的源码, 根据某个历史 commit A 创建了分支, 然后 cherry-pick 了这个 commit …

卡片式组件封装demo

效果视频: 卡片组件 样式还得细调~,时间有限,主要记录一下逻辑。 html结构: 目录 父组件数据处理数据格式 父组件的全部代码 子组件数据处理props参数 样式部分三个圆点点击三圆点在对应位置显示查看弹框点击非内容部分隐藏查看…

第四章 自定义序列类

目录 5.1 序列类型的分类 容器序列 扁平序列 可变序列 不可变序列 5.2 序列的abc继承关系 5.3 序列的、和extend的区别 操作符 操作符 extend方法 5.4 实现可切片的对象 5.5 bisect管理可排序序列 深入解释 5.6 什么时候我们不该用列表 深入解释 5.7 列表推导式…

第十章 多线程、多进程和线程池编程

目录 11.1 多线程编程 什么是多线程? 创建和启动线程 线程同步 11.2 多进程编程 什么是多进程? 创建和启动进程 进程间通信 11.3 线程池和进程池 什么是线程池和进程池? 使用线程池 使用进程池 11.4 选择多线程还是多进程 适用…

vue3 vxe-grid修改currentPage,查询数据的时候,从第一页开始查询

1、当我们设置好VxeGrid.Options进行数据查询的时候,下面是可能的设置&#xff1a; const gridOptions reactive<BasicTableProps>({id: UserTable,showHeaderOverflow: false,showOverflow: true,keepSource: true,columns: userColumns,size: small,pagerConfig: {cur…

【常见开源库的二次开发】基于openssl的加密与解密——单向散列函数(四)

目录&#xff1a; 目录&#xff1a; 一、什么是单项散列函数&#xff1f; 1.1 如何验证文件是否被修改过 1.2 单项散列函数&#xff1a; 二、单向hash抗碰撞 2.1 弱抗碰撞&#xff08;Weak Collision Resistance&#xff09; 2.2 强抗碰撞&#xff08;Strong Collision Resista…

[GXYCTF2019]Ping Ping Ping1

打开靶机 结合题目名称&#xff0c;考虑是命令注入&#xff0c;试试ls 结果应该就在flag.php。尝试构造命令注入载荷。 cat flag.php 可以看到过滤了空格,用 $IFS$1替换空格 还过滤了flag&#xff0c;我们用字符拼接的方式看能否绕过,ag;cat$IFS$1fla$a.php。注意这里用分号间隔…

【光伏发电功率预测】方法综述学习笔记2《光伏发电功率超短期预测方法综述》

本文参考《光伏发电功率超短期预测方法综述》&#xff1a;https://d.wanfangdata.com.cn/periodical/ChlQZXJpb2RpY2FsQ0hJTmV3UzIwMjQwNzA0Eg5nZHlqczIwMjMwNzAyNBoIeHp4NW40YmU%3D 文章目录 摘要&#xff1a;引言1. 光伏发电功率的影响因素分析1.1传递过程中的影响因素1.1.1…

DDei在线设计器-数据格式说明

数据格式说明 DDei的所有设计数据都以文件为单位保存在一个JSON对象中。JSON对象包含了全量的页签、舞台、图层、控件的位置以及属性信息。开发人员可以存储这个JSON到服务端数据库中&#xff0c;从而轻易的实现保存功能&#xff1b;也解析这个JSON&#xff0c;将其转换成自己业…

对红酒品质进行数据分析(python)

http://t.csdnimg.cn/UWg2S 数据来源于这篇博客&#xff0c;直接下载好csv文件。 这篇内容均在VScode的jupyter notebook上完成&#xff0c;操作可以看我的另一篇博客&#xff1a;http://t.csdnimg.cn/69sDJ 一、准备工作 1. 导入数据库 #功能是可以内嵌绘图&#xff0c;并…