数据挖掘——无量纲化

article/2025/9/15 20:47:56

在进行特征选择之前,一般会先进行数据无量纲化处理,这样,表征不同属性(单位不同)的各特征之间才有可比性,如1cm 与 0.1kg 你怎么比?无量纲处理方法很多,使用不同的方法,对最终的机器学习模型会产生不同的影响。本文将对常用的无量纲化技术进行总结,试图指出他们的适用场景,并给出在Python中的相应调用方式。正文中每列代表一个 属性/特征,每行表示一个/条 样本。

1. min-max归一化

该方法是对原始数据进行线性变换,将其映射到[0,1]之间,该方法也被称为离差标准化(但是请注意,网上更多人喜欢把z-score称为标准化方法,把min-max称为归一化方法,然后在此基础上,强行给标准化(z-score)与归一化(min-max)划条界线,以显示二者之间的相异性。对!二者之间确实有很大的不同,这个我们后面会有介绍,但是这两个方法说到底还都是用来去除量纲的,都是无量纲化技术中的一员而已,所以,请不要纠结标准化与归一化这两个概念了)。

上式中,min是样本的最小值,max是样本的最大值。由于最大值与最小值可能是动态变化的,同时也非常容易受噪声(异常点、离群点)影响,因此一般适合小数据的场景。此外,该方法还有两点好处:

   1) 如果某属性/特征的方差很小,如身高:np.array([[1.70],[1.71],[1.72],[1.70],[1.73]]),实际5条数据在身高这个特征上是有差异的,但是却很微弱,这样不利于模型的学习,进行min-max归一化后为:array([[ 0. ], [ 0.33333333], [ 0.66666667], [ 0. ], [ 1. ]]),相当于放大了差异;

   2) 维持稀疏矩阵中为0的条目。

使用方法如下:

from sklearn.preprocessing import MinMaxScaler
x = np.array([[1,-1,2],[2,0,0],[0,1,-1]])
x1 = MinMaxScaler().fit_transform(x)

不难发现,x1每列的值都在[0,1]之间,也就是说,该模块是按列计算的。并且MinMaxScaler在构造类对象的时候也可以直接指定最大最小值的范围:scaler = MinMaxScaler(feature_range=(min, max)).

2. z-score标准化

z-score标准化(zero-mena normalization,0-均值标准化)方法的公式如下所示:

上式中,x是原始数据,u是样本均值,σ是样本标准差。回顾下正态分布的基本性质,若x~N(u,σ^2),则有:


其中,N(0,1)表示标准正态分布。

于是,可以看出,z-score标准化方法试图将原始数据集标准化成均值为0,方差为1且接近于标准正态分布的数据集。然而,一旦原始数据的分布 不 接近于一般正态分布,则标准化的效果会不好。该方法比较适合数据量大的场景(即样本足够多,现在都流行大数据,因此可以比较放心地用)。此外,相对于min-max归一化方法,该方法不仅能够去除量纲,还能够把所有维度的变量一视同仁(因为每个维度都服从均值为0、方差1的正态分布),在最后计算距离时各个维度数据发挥了相同的作用,避免了不同量纲的选取对距离计算产生的巨大影响。所以,涉及到计算点与点之间的距离,如利用距离度量来计算相似度、PCA、LDA,聚类分析等,并且数据量大(近似正态分布),可考虑该方法。相反地,如果想保留原始数据中由标准差所反映的潜在权重关系应该选择min-max归一化,基于数学角度的解释可参阅这两篇博文[1,2],链接在最下方reference内。

from sklearn.preprocessing import StandardScaler
x = np.array([[1,2,3],[4,5,6],[1,2,1]])
x1 = StandardScaler().fit_transform(x)

可以发现,x1的每一列加起来都是0,方差是1左右。注意该方法同样按列(即每个属性/特征)进行计算。并且StandardScaler类还有一个好处,就是可以直接调用其对象的.mean_与.std_方法查看原始数据的均值与标准差。

X = np.array([[ 1., -1., 2.], ... [ 2., 0., 0.], ... [ 0., 1., -1.]])
scaler = StandardScaler().fit(X)
scaler.mean_  
array([ 1. ..., 0. ..., 0.33...])

3.  Normalization

在一些地方,有人把这种方法翻译为正则化,但是机器学习中的正则化更多是与模型相关(比如逻辑回归在损失函数后增加L2正则项),所以这种翻译我不喜欢;也有人称之为归一化,但是吧,有时这种方法并没体现“归一”特性,如处理后的数据该是负号的还是负号;直译表示标准化吧,我怕你们又把这种方法与z-score标准化联系起来,因此,就不翻译了吧。

其实这个方法是根据范数来进行 Normalization的,何为范数?听着感觉高大上,其实非常常见。Lp-范数的计算公式如下所示:

可见,L2范数即为欧式距离,则规则为L2的Normalization公式如下所示,易知,其将每行(条)数据转为相应的“单位向量”。

Normalization的过程是将每个样本缩放到单位范数(结合单位向量进行理解,p=2时为单位向量,其他为单位范数),如果后面要使用如二次型(点积)或者其它核方法计算两个样本之间的相似性这个方法会很有用[3]

from sklearn import preprocessing
normalizer = preprocessing.Normalizer().fit(X)
normalizer.transform(X)

reference :

[1]. 《再谈机器学习中的归一化方法(Normalization Method)》

[2].  《归一化与标准化》

[3]. 《关于使用sklearn进行数据预处理 —— 归一化/标准化/正则化》

转载地址:https://blog.csdn.net/OnTheWayGoGoing/article/details/79871559 


http://chatgpt.dhexx.cn/article/EM7HTv50.shtml

相关文章

量纲与无量纲、标准化、归一化、正则化【能够帮助梯度下降中学习进度收敛的更快、提升模型的收敛速度提升模型的精度、防止模型过拟合,提高模型的泛化能力】

目录 1 量纲与无量纲 1.1 量纲 1.2 无量纲 2 标准化 3 归一化 归一化的好处 4 正则化 5 总结 1 量纲与无量纲 1.1 量纲 物理量的大小与单位有关。就比如1块钱和1分钱,就是两个不同的量纲,因为度量的单位不同了。 1.2 无量纲 物理量大小与单位…

数据预处理----数据无量纲化(归一化和标准化)

文章目录 概述数据挖掘的五大步骤skleran中的数据处理和特征工程 数据预处理Preprocessing数据无量纲化数据归一化---MinMaxScaler示例 数据标准化----StandardScaler示例 MinMaxScaler和StandardScaler应该选哪个 概述 数据挖掘的五大步骤 数据获取数据预处理 数据预处理是从…

数学分析模型(一):数据的无量纲处理方法及示例(附完整代码)

数据的无量纲处理方法及示例(附完整代码) (1)极值化方法(2)标准化方法(3)均值化方法示例要求建模步骤程序结果备注在对实际问题建模过程中,特别是在建立指标评价体系时,常常会面临不同类型的数据处理及融合。而各个指标之间由于计量单位和数量级的不尽相同,从而使得…

数据无量纲化

数据无量纲化 在机器学习算法实践中,我们往往有着将不同规格的数据转换到同一规格,或不同分布的数据转换到某个特定分布的需求,这种需求统称为将数据“无量纲化”。譬如梯度和矩阵为核心的算法中,譬如逻辑回归,支持向…

量纲化处理汇总

在实际研究中,不同的变量单位不同,数值差异极大。例如100g和1m等。 因此有时需要对数据进行去量纲,所谓的去量纲就是‘去掉’单位对数值的影响。但是量纲化有很多种方式,但具体应该使用哪一种方式,并没有固定的标准&am…

数据预处理--无量纲化

1.无量纲化定义 无量纲化,也称为数据的规范化,是指不同指标之间由于存在量纲不同致其不具可比性,故首先需将指标进行无量纲化,消除量纲影响后再进行接下来的分析。 2.无量纲化方法 无量纲化方法有很多,但是从几何角度来…

多指标综合评价中指标正向化和无量纲化方法的选择

摘要:本文用实例说明了多指标综合评价中,用“倒数逆变换法”进行指标正向化时会完全改变原指标的分布规律,影响综合评价结果的准确性;对三种常用无量纲化方法——极差变换法、标准化法和均值化法的选择使用问题,用实例…

量纲与无量纲,标准化、归一化、正则化

量纲与无量纲,标准化、归一化、正则化 1 量纲与无量纲1.1 量纲1.2 无量纲 2 标准化3 归一化4 正则化5 总结 1 量纲与无量纲 1.1 量纲 量纲我觉得最重要的一句话是:物理量的大小与单位有关。 从这句话我们来思考下最核心的两个单词:大小、单…

数据预处理之数据无量纲化(标准化/归一化)

在进行特征选择之前,一般会先进行数据无量纲化处理,这样,表征不同属性(单位不同)的各特征之间才有可比性,如1cm 与 0.1kg 你怎么比?无量纲处理方法很多,使用不同的方法,对…

无量纲化

参考博客:https://www.zhihu.com/question/29316149 1,无量纲化使不同规格的数据转换到同一规格。 2,常见的无量纲化方法有标准化和区间缩放法。 2.1**标准化**的前提是特征值服从正态分布,标准化后,其转换成标准正态分布。   标准化需要计算特征的…

什么是无量纲化

首先来了解什么是量纲? 量纲和单位的区别,长度,时间,质量等都叫做量纲,而米,千米,秒,分钟,等都是单位, 国际单位制规定了七个基本量纲单位,这七个…

常用的数据无量纲化方法

常用的数据无量纲方法 常用的数据无量纲方法都有什么?1.min-max归一化2.z-score标准化 常用的数据无量纲方法都有什么? 1.min-max归一化 该方法是对原始数据进行线性变换,将其映射到[0,1]之间([-1,1]之间也行)。 d…

数据预处理——无量纲化处理

数据预处理——无量纲化处理 1.无量纲化定义 无量纲化,也称为数据的规范化,是指不同指标之间由于存在量纲不同致其不具可比性,故首先需将指标进行无量纲化,消除量纲影响后再进行接下来的分析。 2.无量纲化方法 无量纲化方法有很…

几种指标无量纲化的方法

统计指标的无量纲化就是将统计指标的实际值转化为评价值。由于统计指标的性质不同,相应地,统计指标实际值转化为评价值的方法也就不同。 一、线性无量纲化方法 如果无量纲化的指标评价值与指标的实际值之间是呈现线性关系的,这种无量纲化方…

Latex公式换行编写

latex在写公式时往往会遇到长公式或者连续等于的情况,这时可以选择公式换行操作: \begin{equation}\begin{aligned}a & bc\\& cb\end{aligned} \end{equation} 得到如下的效果: 其中&是用于标注需要对齐的位置,例如…

Latex 多行公式换行对齐

\begin{equation} \begin{split} x&abc\\ &de\\ &fg \end{split} \end{equation} 效果:

LaTex排版技巧:[15]公式太长如何换行

当我们输入的公式较长时,最容易想到的方法是,在会出现越界的情况,使用强制换行\\,但是这种方法在公式中行不通。 通常,我们行间公式的换行可使用split 环境来实现。如 \[ \begin{split} x & \sqrt {1-y^2}\\ x &am…

LaTex常用技巧5:公式太长换行并加大括号

使用LaTex做笔记的时候发现公式太长,一行会超出页面,于是想到换行。 原来的代码,这里使用了包bm,测试的时候前面请使用\usepackage{bm}。 \begin{equation}_{i}^{G} {\bm{a}}\begin{cases} _{i}^{i-1}\ddot{\bm{p}}, &i1\\_…

Latex 公式太长,换行等号对其

首先一定要插入两个包: \usepackage{amsmath} \usepackage{amssymb} 如果不插入包的话,每次运行到aligned就会报错 然后文章中可如下编译公式: \begin{equation}\label{1} \begin{aligned} a & b c \\ & d e \end{aligned}…

latex如何实现单元格内文字的换行

问题描述 使用latex绘制表格时,有时候会遇到单元格的文字过长,显得很拥挤,适当的换行可以使整体效果更加美观,比如: 源代码为: \resizebox{\textwidth}{!}{\begin{tabular}{cccccccc}\toprule\textbf{Nam…