106-数据缩放scaling(标准化、归一化)的那些事

刘小泽写于19.4.18 今天来探究一下什么是标准化、归一化

使用数据缩放的意义

存在即合理,既然统计上有这么个定义,并且很常用,那么就要仔细看看它是什么意思了。

一般在一个表达矩阵中,会涉及到许多样本,每个样本的性质、表达量数量级会存在一些差异,因此我们不能直接拿来比较每个样本。如果其中有的样本原始表达量较大,那么在总体中就会占据"绝对领导地位”,而表达量小的样本,它的作用可能就会被覆盖,但并不代表它不重要,也有可能是这个样本含有较多的低表达基因。

为了比较同一基因在不同样本中的表达量,需要指定统一的标准,也就是需要提前对样本原始表达量进行一定的处理。

数据缩放,在统计学中的意思是,通过一定的数学变换方式,将原始数据按照一定的比例进行转换,将数据放到一个小的特定区间内,比如0~1或者-1~1。目的是消除不同样本之间特性、数量级等特征属性的差异,转化为一个无量纲的相对数值,结果的各个样本特征量数值都处于同一数量级上。

怎么进行数据缩放?

主要分为两种:指标一致化、无量纲化

指标一致化

目的是解决数据性质不同的问题,也就是说涉及到多个不同的统计量时,有的指标数值越大越符合预期(如:药物治疗后的生存率),也要一些指标数值越小越符合预期(如:死亡率)。可以看出这两种数据的"方向"是不同的。这时,如果要综合考量两种数据,就要先统一数据方向,一般方法有两种:

  • 对原始数据取倒数=》倒数一致(但是这样会改变原始数据的分散程度,间接放大或缩小数据的实际差异)
  • 定义不同指标中数值上限,然后依次减去每个指标中的原始数据(它不会改变数据的分散程度,相比于倒数法结果更加稳定)

无量纲化

这个是我们经常用到的,目的是解决数据之间的可比性问题,比如有的指标/样本中数据范围在1-100,另一个指标/样本中数据在1-10000,这个范围就是"量纲”。标准化要做的,就是去掉这个的影响,真正突出数据的差别,有点绝对值变为相对值的感觉。可以用的方法有:

  • 极差法:它是最简单处理量纲问题的方法,它是将数据集中某一列数值缩放到0和1之间,又称”归一化 Normalization”。 它的计算方法是:(观测值-最小值)/极差 ,极差=最大值-最小值 因此无论数值是正是负,那么结果范围都变到了0~1 但有一个问题:如果再引入数据,那么可能整个计算结果需要更改

  • log函数标准化

    它也属于归一化的范畴 适用于原始数据大于等于1的情况,对指标中的每一个观测值都取以10为底的log值,然后除以这个指标最大值的log10,即log10(X)/log10(MAX)

  • z-score法:想必经常会听人说使用这个方法进行标准化,听着很难懂,但是计算方法不难,它又叫”(标准差)标准化 Standardization”,就是将某一列数值按比例缩放成均值为0,方差为1的形式。 适用于:指标中的数据最大最小值未知,或者有离群点时,用极差法可能会带来较大的误差。 z-score是这么做的:先计算均值(mean)和标准差(sd),然后用每个观测值减去均值,再除以标准差,即:(x-mean)/sd 得到的结果数据变成了正态分布,结果范围在-1~1

标准化=归一化?NO!

这两个概念总是被混用,以至于有时以为这是同一个概念,既然容易混淆就一定存在共性:它们都是对某个特征(或者说某一列/某个样本)的数据进行缩放(scaling),而不是对某一行 进行缩放。

举个例子:现在有三个特征,身高、体重、心率,也就是三列数据,每一行就是3个不同特征的值,我们无论是对一行中的3个数值进行标准化还是归一化,都是没有意义的,因为身高、体重和心率的数值本来就不能"压”到一起

因此,这里也看到了标准化或者归一化的前提是,数据可以"压”到一起或者说是同一类的数据

二者差异:

归一化Normalization受离群点影响大;标准化Standardization是重新创建一个新的数据分布,因此受离群点影响小

许多实际应用中更推荐使用标准化方法

摘抄自: https://sebastianraschka.com/Articles/2014_about_feature_scaling.html

in clustering analyses, standardization may be especially crucial in order to compare similarities between features based on certain distance measures Principal Component Analysis, where we usually prefer standardization over Min-Max scaling, since we are interested in the components that maximize the variance

However, this doesn’t mean that Min-Max scaling is not useful at all! like:typical neural network algorithm require data that on a 0-1 scale

目前在生信中也会认为归一化是特殊的标准化,二者的界限也没有特别明显,一般采用的标准化方法主要是:

  • RPM/CPM、TPM、RPKM:标准化的对象是基因长度与测序深度(因为落在一个基因区域内的read数目取决于基因长度和测序深度)具体可以看视频:https://v.youku.com/v_show/id_XMTU0NzA0MzQ2NA==.html?firsttime=63
  • Z-score:标准化对象是count值
  • log2(x+1):有一个数据降维的概念在其中,对象是count值

在R中有一个函数scale(),它可以进行中心化center,也可以进行标准化scale

中心化就是数据减去均值,比如1,2,3,4,5,均值是3,中心化后的数据就是-2,-1,0,1,2;

标准化就是在中心化的基础上再除以标准差,使用的就是Z-score方法

另外还有不同软件包带的算法,比如DESeq2包中就提供了rlogvst 算法进行count矩阵转换,利用转换后的结果进行PCA或者聚类,结果比直接使用count或者归一化后的count要好(生物学重复之间更接近,不同分组分区也较明显)

参考

https://medium.com/@zaidalissa/standardization-vs-normalization-da7a3a308c64

概念讲解:https://sebastianraschka.com/Articles/2014_about_feature_scaling.html

非常详细的探讨:https://towardsdatascience.com/normalization-vs-standardization-quantitative-analysis-a91e8a79cebf

https://www.davex.pw/2017/10/07/Normalization-and-Regularization/

关于各种*PMhttps://www.meiwen.com.cn/subject/teawrftx.html

Yunze Liu
Yunze Liu
Bioinformatics Sharer

Co-founder of Bioinfoplanet(生信星球)

Next
Previous

Related