一、常用的特征缩放算法有两种:
归一化(normalization)和标准化(standardization)
二、归一化(normalization)
1、什么是归一化
归一化是利用特征(可理解为某个数据集合)的最大值,最小值,将特征的值缩放到[0,1]区间,对于每一列的特征使用min - max函数进行缩放。
2、为什么需要归一化
消除纲量,加快收敛:
不同特征往往具有不同的量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据归一化处理,以解决数据指标之间的可比性。原始数据经过数据归一化处理后,各指标处于[0,1]之间的小数,适合进行综合对比评价。
提高精度。
3、归一化的方法
1)、线性归一化:
利用数据集每个特征的最大值,最小值,将特征的值缩放到[0,1]区间:
公式:新数据=(原数据-极小值)/(极大值-极小值)
2)、非线性归一化:
经常用在数据分化比较大的场景,有些数值很大,有些很小。通过一些数学函数,将原始值进行映射。该方法包括 log、指数,正切等。需要根据数据分布的情况,决定非线性函数的曲线,比如是log(V,2)还是log(V, 10)等。(这部分还需要理解)
三、标准化(standardization)
1、什么是标准化
标准化是通过特征的平均值和标准差,将特征缩放成一个标准的正态分布,缩放后均值为0,方差为1。但即使数据不服从正态分布,也可以用此法。特别适用于数据的最大值和最小值未知,或存在孤立点。
2、为什么要标准化
1)、标准化是为了方便数据的下一步处理,而进行的数据缩放等变换,不同于归一化,并不是为了方便与其他数据一同处理或比较。
2)、标准化后的变量值围绕0上下波动,大于0说明高于平均水平,小于0说明低于平均水平。
3、标准化的方法
Z-score(标准化):
公式:新数据=(原数据-均值)/(标准差)
(z-score标准化方法适用于属性A的最大值和最小值未知的情况)
四、在生物信息数据分析中,标准化和归一化的应用场景:
1、归一化(SampleNormalization)
为了消除样本自身或者测样的技术差异,使样本间可以比较,可以理解为组间数据的处理。例如
1)、转录组不同样本如果测序深度不同,就会导致基因的read数不同,不做归一化就会影响结果
2)、代谢组不同样本,例如尿液样本可能浓度不同就会影响结果
2、标准化(standardization)
标准化是为了使不同变量之间可以比较,消除极大值和极小值带来的影响,可以理解为组内数据的处理,例如
1)、转录组中有些基因本身表达量就大,有些表达量小,不做标准化的话,直接做PCA之类的模型,会默认表达量大的对模型贡献就大,影响正确结果
2)、代谢组中有些代谢物含量天然高,有些天然低,同理
举个栗子:
转录组数据分析:
转录组分析流程中标准化和归一化被统一叫成了标准化,或者有些资料里称为组内标准化和组间标准化。
转录组的标准化有多种方法,但是很多是兼顾了组内和组间两方面
寻找差异基因的时候,只涉及单个变量组间对比,不涉及样本内不同变量的比较,因此不需要做组内标准化,这也是为什么DESeq2等软件要求用原始counts数据的原因,这些软件设计了只针对组间的标准化。而目前常见的标准化方法则包含了组内标准化
做PCA的时候,需要衡量一个样本内不同变量的权重,因此需要做组内标准化。R自带的scale可以进行组内标准化,但是用原始counts数据做PCA可能还需要组间标准化,因此可以考虑用DESeq2标准化之后的数据
参考出处丢了。。。。。。