标准化和归一化

本文介绍了数据预处理中的关键步骤——标准化和归一化,并详细解释了几种常用的算法,包括线性转换、对数函数转换、反余切函数转换等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

*****************************归一化*******************************

1)把数据变成(0,1)之间的小数

2)把有量纲表达式变成无量纲表达式

 

归一化算法有:

1.线性转换

       y=(x-MinValue)/(MaxValue-MinValue

2.对数函数转换:

      y=log10(x)

3.反余切函数转换

      y=atan(x)*2/PI

4.线性也与对数函数结合

      式(1)将输入值换算为[-1,1]区间的值,

      在输出层用式(2)换算回初始值,其中 和分别表示训练样本集中负荷的最大值和最小值。

 

**************************标准化****************************************

1)把数据按比例缩放,使之落入一个小的空间里

 

1.最小-最大规范化(线性变换)

      y=( (x-MinValue) / (MaxValue-MinValue) )(new_MaxValue-new_MinValue)+new_minValue

 

2.z-score规范化(或零-均值规范化)

 y=(x-X的平均值)/X的标准差

 优点:当X的最大值和最小值未知,或孤立点左右了最大-最小规范化时, 该方法有用

3.小数定标规范化:通过移动X的小数位置来进行规范化

 y= x/10的j次方  (其中,j使得Max(|y|) <1的最小整数

4.对数Logistic模式:

      新数据=1/(1+e^(-原数据))

5.模糊量化模式:

新数据=1/2+1/2sin[派3.1415/(极大值-极小值)*

      (X-(极大值-极小值)/2) ]       X为原数据


  简单来说,标准化是依照特征矩阵的列处理数据,其通过求z-score的方法,将样本的特征值转换到同一量纲下。归一化是依照特征矩阵的行处理数据,其目的在于样本向量在点乘运算或其他核函数计算相似性时,拥有统一的标准,也就是说都转化为“单位向量‘’。

### 表格数据处理中标准化归一化的概念及方法 #### 定义与目的 在数据分析领域,标准化(Standardization)归一化(Normalization)都是用于调整数值范围的技术,目的是使不同尺度的数据能够相互比较并提高后续分析算法的效果。 - **归一化**是指将原始数据线性变换到指定区间内,通常为\[0,1\]或\[-1,1\]。这种方法适用于最大最小值已知的情况,并能有效保持原数据的比例关系[^1]。 - **标准化**则是指通过减去平均数再除以标准差的方式,把数据转化为均值为零、方差为单位的标准正态分布形式。这有助于去除量纲影响,在许多基于距离度量的学习器中有良好表现[^2]。 #### 实现方式对比 ##### 归一化实现 对于给定的一组数据\(X=\{x_1,x_2,\ldots,x_n\}\),其对应的归一化公式如下: 当目标区间设定为\[a,b\]时, \[ X'=(b-a)\frac{(X-\min(X))}{(\max(X)-\min(X))}+a \] 特别地,当\(a=0\)且\(b=1\)时,则有最常用的Min-Max Scaling表达式: \[ X'= \frac{(X-\min(X))}{(\max(X)-\min(X))} \] 此过程可以通过MATLAB脚本轻松完成,具体操作见下述代码片段[^3]: ```matlab for i = 1:width(data) col = table2array(data(:,i)); col_norm = (col - min(col)) / (max(col) - min(col)); normalizedData.(headers{i}) = col_norm; end ``` ##### 标准化实现 同样针对一组数据\(Y=\{y_1,y_2,\ldots,y_m\}\),采用Z-score Transformation来执行标准化运算: \[ Y'=\frac{(Y-mean(Y))}{stddev(Y)} \] 这里`mean()`表示求算术平均值函数;而`stddev()`代表样本标准偏差计算。Python环境下利用pandas库很容易达成这一转换,例如: ```python import pandas as pd from sklearn.preprocessing import StandardScaler scaler = StandardScaler() df_normalized = scaler.fit_transform(df) ``` #### 应用场景区别 选择何种技术取决于实际需求以及所使用的机器学习模型特性。如果数据集呈现明显的偏斜分布而非近似于高斯分布形态的话,那么更推荐使用标准化而不是简单的归一化处理[^4]。特别是面对像K-means这样的聚类算法时,考虑到该算法依赖欧几里得距离衡量相似度,故应优先考虑应用标准化手段以确保各维度间权重均衡一致。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值