生物信息学笔记(二):数据变换

数据变换基本概念

  在数据科学中,数据变换是指对原始数据进行一系列操作或转换,从而使得数据更适合用于特定的分析或建模任务。其目的是提取有用的信息、减少噪声、改善模型的性能或满足模型假设。数据变换可以将一些我们理论上未解决的模型问题转化为已经解决的问题
  从变量个数的角度,数据变换分为单变量变换和多变量变换。多变量变换和特征工程的范畴有交叉,主要包括特征抽取、数据分解和维度压缩等方法。单变量变换分为线性和非线性变换。
  本文讲解的数据变换都是连续变量的变换,着重关注单变量变换。

归一化、标准化——容易混淆和误用的概念

  归一化和标准化是数据变换的具体方法,在概念上是平行的:

  1. 归一化(Normalization):将数据按比例缩放,使其值落在特定的范围内。归一化的目的是消除不同特征之间的量纲差异,使得它们具有可比性,并且能够更好地适应某些机器学习算法。
  2. 标准化(Standardization):将数据变换为均值为0,标准差为1的分布,但并非一定是正态的。

  许多教程和书籍认为标准化是归一化的一种,实际上归一化强调数据变换到特定的区间,而标准化则如上所述,强调给定的均值和标准差;另有误认为标准化能够实现标准正态分布,事实上要求源数据满足正态分布,否则只是满足给定均值和标准差的任何一种分布。这里要肯定一点,标准化会改变分布类型,但不会改变分布的种类。举例而言,对于足够样本数量的滴度数据两两比较依然要求取对数,以满足正态分布,进而采用t检验,而不是标准化采用t检验(原则上是Z检验);若想使用Z检验,则遵循先取对数,再标准化的路径。
  总而言之,“标准化必然得到N(0, 1)“的表述是错误的。
  归一化同样不改变数据的分布种类,事实上,归一化和标准化同为线性变换,均不会改变分布种类,不会改变数据点的相对排位。上面提到有把标准化归类为归一化,实际上平行归类于线性变换更为妥当。
  当原始数据的不同维度特征具有不一致的尺度或量纲时,需要对数据进行标准化或归一化处理。然而,并非所有的模型都需要进行归一化处理。例如,某些模型算法并不涉及距离度量或变量间标准差的衡量。例如,决策树算法并没有与距离相关的计算,因此在构建决策树模型时通常不需要对变量进行标准化。此外,概率模型通常不需要归一化,因为它们关注的是变量的分布和变量之间的条件概率,而不是变量的具体值。
  然而,如果对处理后的数据的范围有严格要求,那么归一化是必要的。另外,如果数据不稳定,存在极端的最大或最小值,那么归一化也不适用。在机器学习中,标准化是一种更通用的方法。当存在不确定性时,可以直接使用标准化方法。
  在分类和聚类算法中,如果需要使用距离来度量相似性,或者使用PCA技术进行降维,标准化的效果更好。而在不涉及距离度量和协方差计算的情况下,可以使用归一化方法。因此,在选择标准化还是归一化方法时,需要考虑具体的模型和算法,并根据需要进行选择。

取对数——重要的偏态数据变换方法

  取对数通常在以下情况下使用:

  1. 数据偏斜:当数据呈现偏斜分布时,即存在长尾或偏离正态分布的情况,可以考虑使用对数变换。对数变换可以减小数据的偏斜程度,使其更接近正态分布,从而提高模型的性能;
  2. 数据幅度差异较大:当数据的幅度差异较大时,例如某些特征的取值范围远远大于其他特征,这可能导致模型对取值较大的特征更为敏感,而忽略了其他特征的影响。在这种情况下,可以考虑使用对数变换来缩小幅度差异,使数据的取值范围更加接近,从而平衡各个特征的影响;
  3. 数据呈现指数增长或指数衰减:当数据随着自变量的增长或减小呈现指数级别的变化时,可以使用对数变换来线性化数据。对数变换可以将指数增长或衰减的趋势转化为线性趋势,使得建模更加便捷和准确。

  显而易见,其目的是:

  1. 压缩数据的幅度:对数变换可以将大幅度的数据压缩到较小的范围内,使得数据更易于处理和可视化。
  2. 缩小数据的差异:对数变换可以减小数据之间的差异,使得各个数据点更接近,有助于降低异常值的影响。
  3. 线性化关系:对数变换可以将指数关系转化为线性关系,使得数据更符合线性建模的假设,从而简化建模过程。取对数的操作能够尽可能满足经典线性回归假设:
    1. 避免共线性;
    2. 避免异方差;
    3. 尽可能符合正态分布。

总结

  人们通过诸如Box-cox等典型方法积极探索各种数据变换方式,这表明数据变换并非一成不变的规约,而更像是一门根据实践经验进行灵活操作的艺术。我们需要仔细考虑数据分布的特点,以确定最合适的变换方法。

方法 特征 功能
归一化 Min-max scaler, MaxAbs scaler 将数据分别映射到[0,1]和[-1,1]
标准化 Standard scaler 转换为均值为0,方差为1的分布
Sigmoid转换 Sigmoid transformation 映射成为[0,1]的值
Log transformation Log transformation 让数据符合我们所做的假设,让能够在已有理论上对其分析
Box-cox变换 Box-cox transformation 用来把非正态的分布变成正态分布

参考

  1. 常用数据转换方式 - 知乎 (zhihu.com)
  2. 第十三讲 数据变换-CSDN博客

欢迎关注我的其它发布渠道