数据标准化的6种常用方法:Python实现

作者:快去debug2024.01.17 13:34浏览量:10

简介:数据标准化是数据预处理的重要步骤,用于消除不同特征之间的量纲和单位差异,使数据具有可比性。本文将介绍6种常用的数据标准化方法,并给出Python实现代码。

千帆应用开发平台“智能体Pro”全新上线 限时免费体验

面向慢思考场景,支持低代码配置的方式创建“智能体Pro”应用

立即体验

数据标准化是数据预处理的重要步骤,用于消除不同特征之间的量纲和单位差异,使数据具有可比性。以下是6种常用的数据标准化方法,并给出Python实现代码。

  1. 最小-最大缩放法(Min-Max Scaling)
    最小-最大缩放法将原始数据缩放到[0,1]的范围内。
    1. import numpy as np
    2. def min_max_scaling(data):
    3. return (data - np.min(data)) / (np.max(data) - np.min(data))
  2. Z-score标准化法(Z-Score Normalization)
    Z-score标准化法将原始数据转换为标准正态分布的形式,即均值为0,标准差为1。
    1. def z_score_normalization(data):
    2. mean = np.mean(data)
    3. std = np.std(data)
    4. return (data - mean) / std
  3. 极差标准化法(Range Scaling)
    极差标准化法将原始数据缩放到指定范围,通常是[0,1]或[-1,1]。
    1. def range_scaling(data, min_val=0, max_val=1):
    2. return (data - np.min(data)) / (np.max(data) - np.min(data)) * (max_val - min_val) + min_val
  4. 对数变换法(Log Transform)
    对数变换法将原始数据取对数,适用于处理偏态分布的数据。
    1. import math
    2. def log_transform(data):
    3. return np.log(data)
  5. Box-Cox变换法(Box-Cox Transformation)
    Box-Cox变换法通过对数变换的形式,将原始数据转换为正态分布的形式。它通过选择一个适当的λ值来实现。
    1. from scipy.optimize import boxcox
    2. def box_cox_transformation(data, lambda_param=1):
    3. transformed_data, lambda_val = boxcox(data, lmbda=lambda_param)
    4. return transformed_data, lambda_val
  6. 小波变换法(Wavelet Transform)
    小波变换法利用小波函数的性质,对原始数据进行分解和重构,从而提取出数据的特征。Python中的PyWavelets库提供了小波变换的实现。
    首先,需要安装PyWavelets库:pip install PyWavelets。然后,可以使用以下代码进行小波变换:
    ```python
    import pywt
    import numpy as np
    import matplotlib.pyplot as plt
    def wavelet_transform(data, wavelet=’db1’, level=1):
    coeffs = pywt.wavedec(data, wavelet, level=level)
    reconstructed_data = pywt.waverec(coeffs, wavelet)
    return reconstructed_data, coeffs[0] # 返回重构后的数据和近似系数(或细节系数)
article bottom image

相关文章推荐

发表评论