常用的数据无量纲化方法

常用的数据无量纲方法都有什么?

1.min-max归一化

该方法是对原始数据进行线性变换,将其映射到[0,1]之间([-1,1]之间也行)。
在这里插入图片描述

def Min_Max_Scaler(X,feature_range=(0,1),axis=0):
    '''
    最大最小归一化
    :param X: data
    :param feature_range: 选择的特征区间[0,1],其他值也行
    :param axis: 数据方向, axis=0 为列,axis=1 为行
    :return:
    '''
    X_std = (X - X.min(axis=0)) / (X.max(axis=0) - X.min(axis=0))
    X_scaled = X_std * (feature_range[1] - feature_range[0]) + feature_range[0]
    return X_scaled

优点:

  1. 可以去除量纲
  2. 如果某特征的方差很小,数据之间的差异不明显,通过归一化可以把数据之间的差异放大
  3. 维持稀疏矩阵中为0的条目
  4. 如果想保留原始数据中由标准差所反映的潜在权重关系应该选择min-max归一化

缺点:

  1. 由于最大值与最小值可能是动态变化的,同时也非常容易受噪声(异常点、离群点)影响,因此一般适合小数据的场景。

2.z-score标准化

z-score标准化也叫标准差标准化,代表的是分值偏离均值的程度,经过处理的数据符合标准正态分布,即均值为0,标准差为1。是重新创建一个新的数据分布的方法

其中,x是原始数据,u是样本均值,σ是样本标准差。
在这里插入图片描述
该方法假设数据是正态分布,但这个要求并不十分严格,如果数据是正态分布或者数据量很大的时候,则该技术会更有效

优点

  1. z-score标准化更加注重数据集中样本的分布状况。由于具有一定的样本个数,所以出现少量的异常点对于平均值和标准差的影响较小,因此标准化的结果也不会具有很大的偏差。
  2. 不仅能够去除量纲,还能够把所有维度的变量一视同仁(因为每个维度都服从均值为0、方差1的正态分布)

缺点

  1. Z-Score方法是一种中心化方法,会改变原有数据的分布结构,不适合用于对稀疏数据做处理
  2. 一旦原始数据的分布不接近于一般正态分布,则标准化的效果会不好

猜你喜欢

转载自blog.csdn.net/CSTGYinZong/article/details/127097617