谈谈数据归一化与标准化

背景:

归一化(Normalization)和标准化(Standardization)是常用的数据预处理技术,用于将不同范围或不同单位的特征值转换为统一的尺度,以便更好地进行数据分析和模型训练。一句话:消除量纲对距离的影响。

数据归一化:

归一化(Normalization)是一种常见的数据预处理方法,用于将不同特征之间的数值范围映射到相同的区间。

最小-最大缩放(Min-Max Scaling)是将数据线性映射到指定的最小值和最大值之间的区间。具体公式如下:

X s c a l e d = ( X − X m i n ) / ( X m a x − X m i n ) X_scaled = (X - X_min) / (X_max - X_min) Xscaled=(XXmin)/(XmaxXmin)
其中,X是原始特征数据,X_min是该特征的最小值,X_max是该特征的最大值。

归一化后的数据一定在0-1之间。归一化后的数据与原始数据具有相同的维度。

import pandas as pd
from hopkins_test import hopkins_statisticdata = pd.read_csv(r'./data/city.txt', sep=',')
from sklearn.preprocessing import MinMaxScaler, StandardScaler# 提取经度和纬度数据,并转换为NumPy数组
xx = data[['longitude', 'latitude']]
X = data[['longitude', 'latitude']].values
print(xx.head())
print(type(xx)) # <class 'pandas.core.frame.DataFrame'>
print(type(X)) # <class 'numpy.ndarray'>
# 归一化处理
scaler = MinMaxScaler(feature_range=(0, 10000)) # 属性值在 0~10000 之间
normalized_data1 = scaler.fit_transform(xx)
normalized_data2 = scaler.fit_transform(X)
print(normalized_data1, type(normalized_data1))
print(normalized_data2,type(normalized_data2))

我们可以发现归一化的输入数据可以是numpy类型,也可以是dataframe类型,表头不影响结果输出。

在这里插入图片描述

数据标准化:

Z-score标准化是将数据映射到均值为0,标准差为1的正态分布上。具体公式如下:
X s c a l e d = ( X − X m e a n ) / X s t d X_scaled = (X - X_mean) / X_std Xscaled=(XXmean)/Xstd
其中,X是原始特征数据,X_mean是该特征的均值,X_std是该特征的标准差。

import pandas as pd
from hopkins_test import hopkins_statistic
import numpy as npdata = pd.read_csv(r'./data/city.txt', sep=',')
from sklearn.preprocessing import MinMaxScaler, StandardScaler# 提取经度和纬度数据,并转换为NumPy数组
xx = data[['longitude', 'latitude']]
X = data[['longitude', 'latitude']].values
print(xx.head())
print(type(xx))
print(type(X))
# 归一化处理
# 创建StandardScaler对象
scaler= StandardScaler()
normalized_data1 = scaler.fit_transform(xx)
normalized_data2 = scaler.fit_transform(X)
print(normalized_data1, type(normalized_data1))
print(normalized_data2,type(normalized_data2))

在这里插入图片描述

标准化是通过减去均值并除以标准差来使数据具有均值为0,标准差为1的分布,而不是将数据映射到特定的范围,所有结果结果不一定都在0-1之间。

如何选择:

归一化和标准化的选择取决于数据的特点和具体的应用场景。

  • 归一化适用于以下情况:
    • 当特征的取值范围非常不同,且需要保留原始数据的分布形状时,可以使用归一化。
    • 归一化对于某些要求输入数据在固定范围内的算法(如神经网络)非常有用。

标准化适用于以下情况:

  • 当特征的取值范围差异较大,并且算法对于具有零均值和单位方差的数据更敏感时,可以使用标准化。
  • 标准化对于一些基于距离或基于梯度的算法(如K-means聚类、支持向量机等)非常有用。

​ 最好的方法是尝试不同的转换方法并评估模型的性能。您可以使用交叉验证等技术来比较不同转换方法对模型性能的影响。根据实际情况选择最适合您数据和模型的转换方法。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Go EASY游戏框架 之 RPC Guide 03

1 Overview easy解决服务端通信问题&#xff0c;同样使用了RPC技术。easy使用的ETCDGRPC&#xff0c;直接将它们打包组合在了一起。随着服务发现的成熟&#xff0c;稳定&#xff0c;简单&#xff0c;若是不用&#xff0c;甚至你也并不需要RPC来分解你的架构。 GRPC 有默认res…

银河麒麟重置密码

桌面版银河麒麟重置密码 1.选择界面按e 出现银河麒麟系统选择的页面&#xff0c;我们点击键盘上的“e”键&#xff0c;进入电脑启动项编辑页 2.编辑启动页 在启动项编辑页面&#xff0c;我们将光标移动到linux这一行的最后&#xff0c;然后输入“init/bin/bash consoletty0”…

给一个容器添加el-popover/el-tooltip内容提示框

效果&#xff1a; html: <div class"evaluate"><div class"list flex-column-center" v-for"(item, index) in evaluateList" :key"index"mouseenter"mouseenterHandler(item)" mouseleave"mouseleaveHandle…

【Vue第5章】vuex_Vue2

目录 5.1 理解vuex 5.1.1 vuex是什么 5.1.2 什么时候使用vuex 5.1.3 案例 5.1.4 vuex工作原理图 5.2 vuex核心概念和API 5.2.1 state 5.2.2 actions 5.2.3 mutations 5.2.4 getters 5.2.5 modules 5.3 笔记与代码 5.3.1 笔记 5.3.2 23_src_求和案例_纯vue版 5.3…

什么是跨站脚本攻击(XSS)?如何防止它?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

【面试】数据库—优化—聚簇索引和非聚簇索引、回表查询

数据库—优化—聚簇索引和非聚簇索引、回表查询 1. 什么是聚簇索引什么是非聚簇索引 ? 聚集索引选取规则: 如果存在主键&#xff0c;主键索引就是聚集索引&#xff1b;如果不存在主键&#xff0c;将使用第一个唯一&#xff08;UNIQUE&#xff09;索引作为聚集索引&#xff1b…

【移动通讯】【MIMO】[P1]【科普篇】

前言&#xff1a; 前面几个月把CA 的技术总体复盘了一下,下面一段时间 主要结合各国一些MIMO 技术的文档,复盘一下MIMO. 这篇主要参考华为&#xff1a; info.support.huawei.com MIMO 技术使用多天线发送和接受信号。主要应用在WIFI 手机通讯等领域. 这种技术提高了系统容量&…

python 内存泄露

Python的内存泄漏问题主要是由于以下几个原因导致的&#xff1a; 循环引用&#xff1a;当两个或多个对象相互引用&#xff0c;并且没有其他引用指向这些对象时&#xff0c;即使这些对象不再被使用&#xff0c;Python也无法释放它们的内存空间&#xff0c;从而造成内存泄漏。大…

MySQL和Redis有什么区别?

目录 一、什么是MySQL 二、什么是Redis 三、MySQL和Redis的区别 一、什么是MySQL MySQL是一种开源的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;它是最流行的数据库之一。MySQL以其高性能、可靠性和易用性而闻名&#xff0c;广泛应用于各种Web应用程序…

ACM-MM2023 DITN详解:一个部署友好的超分Transformer

目录 1. Introduction2. Method2.1. Overview2.2. UFONE2.3 真实场景下的部署优化 3. 结果 Paper: Unfolding Once is Enough: A Deployment-Friendly Transformer Unit for Super-Resolution Code: https://github.com/yongliuy/DITN 1. Introduction CNN做超分的缺点 由于卷…

Leetcode—709.转换成小写字母【简单】

2023每日刷题&#xff08;五十八&#xff09; Leetcode—709.转换成小写字母 实现代码 char* toLowerCase(char* s) {int len strlen(s);for(int i 0; i < len; i) {if(s[i] > A && s[i] < Z) {s[i] tolower(s[i]);}}return s; }运行结果 之后我会持续更…

第20节: Vue3 计算属性

在UniApp中使用Vue3框架时&#xff0c;你可以使用计算属性来处理一些依赖其他属性的计算逻辑。计算属性会根据依赖属性的变化自动重新计算&#xff0c;并且只会在相关依赖发生改变时触发重新渲染。 下面是一个示例&#xff0c;演示了如何在UniApp中使用Vue3框架使用计算属性&a…

java全栈体系结构-架构师之路(持续更新中)

Java 全栈体系结构 数据结构与算法实战&#xff08;已更&#xff09;微服务解决方案数据结构模型(openresty/tengine)实战高并发JVM虚拟机实战性能调优并发编程实战微服务框架源码解读集合框架源码解读分布式架构解决方案分布式消息中间件原理设计模式JavaWebJavaSE新零售电商项…

(04730)半导体器件之晶体三极管

晶体三极管的结构和分类 晶体三极管具有三个区、两个PN结&#xff0c;从三个区分别引出三个电极而构成&#xff0c;其结构和符号如图2.1.13所示。 晶体三极管内部的三个区&#xff0c;分别称为发射区、基区和集电区&#xff0c;其中基区十分薄&#xff0c;一般为1um至几十um,掺…

单日30PB量级!火山引擎ByteHouse云原生的数据导入这么做

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 近期&#xff0c;火山引擎ByteHouse技术专家受邀参加DataFunCon2023&#xff08;深圳站&#xff09;活动&#xff0c;并以“火山引擎ByteHouse基于云原生架构的实时…

【面试】在Python中如何实现单例模式

点评&#xff1a;单例模式是指让一个类只能创建出唯一的实例&#xff0c;这个题目在面试中出现的频率极高&#xff0c;因为它考察的不仅仅是单例模式&#xff0c;更是对Python语言到底掌握到何种程度&#xff0c;建议大家用装饰器和元类这两种方式来实现单例模式&#xff0c;因…

C++输入输出流

C输出流&#xff0c;输入输出是数据的传递过程&#xff0c;数据如流水一般从一处流向另一处&#xff0c;C形象的将此过程称为流。 输入操作&#xff1a;是控制序列中的字节内容从一个设备流入内存 输出操作&#xff1a;是控制序列中的字节内容从内存流向某个设备 目录 1 C输入…

学习笔记 -- TVS管选型参考

一、TVS管基本工作原理 当TVS管(瞬态电压抑制器)两极受到反向瞬态高能量冲击时&#xff0c;能以纳秒(ns)量级的速度&#xff0c;将两极间的高阻抗变为低阻抗&#xff0c;使两极间的电压箝位于一个预定的值&#xff0c;有效地保护电子线路中的元器件。 在浪涌电压作用下&#xf…

ETLCloud详解,如何实现最佳实践及问题排查

ETLCloud介绍 ETLCloud是新一代全域数据集成平台&#xff0c;领先于市场同类产品的数据集成平台(DataOps)&#xff0c;只需单击几下即可完成数据清洗转换、传输入仓等操作&#xff0c;具备高效、智能、一站式的全域数据集成优势&#xff0c;如&#xff1a; 毫秒级实时数据同步 …

【华为数据之道学习笔记】4-4传统信息架构向业务数字化扩展:对象、过程、 规则

传统信息架构的缺陷 随着数字化转型的深入&#xff0c;发现既有信息架构已经无法满足自身业务需要&#xff0c;主要体现在以下 几个方面。 1&#xff09;大量业务和作业所产生的数据并没有完整地被管理 很多情况下&#xff0c;并不是所有业务和作业所产生的数据都在系统中承载…