数据标准化的6种常用方法:Python实现
2024.01.17 13:34浏览量:10简介:数据标准化是数据预处理的重要步骤,用于消除不同特征之间的量纲和单位差异,使数据具有可比性。本文将介绍6种常用的数据标准化方法,并给出Python实现代码。
千帆应用开发平台“智能体Pro”全新上线 限时免费体验
面向慢思考场景,支持低代码配置的方式创建“智能体Pro”应用
立即体验
数据标准化是数据预处理的重要步骤,用于消除不同特征之间的量纲和单位差异,使数据具有可比性。以下是6种常用的数据标准化方法,并给出Python实现代码。
- 最小-最大缩放法(Min-Max Scaling)
最小-最大缩放法将原始数据缩放到[0,1]的范围内。import numpy as np
def min_max_scaling(data):
return (data - np.min(data)) / (np.max(data) - np.min(data))
- Z-score标准化法(Z-Score Normalization)
Z-score标准化法将原始数据转换为标准正态分布的形式,即均值为0,标准差为1。def z_score_normalization(data):
mean = np.mean(data)
std = np.std(data)
return (data - mean) / std
- 极差标准化法(Range Scaling)
极差标准化法将原始数据缩放到指定范围,通常是[0,1]或[-1,1]。def range_scaling(data, min_val=0, max_val=1):
return (data - np.min(data)) / (np.max(data) - np.min(data)) * (max_val - min_val) + min_val
- 对数变换法(Log Transform)
对数变换法将原始数据取对数,适用于处理偏态分布的数据。import math
def log_transform(data):
return np.log(data)
- Box-Cox变换法(Box-Cox Transformation)
Box-Cox变换法通过对数变换的形式,将原始数据转换为正态分布的形式。它通过选择一个适当的λ值来实现。from scipy.optimize import boxcox
def box_cox_transformation(data, lambda_param=1):
transformed_data, lambda_val = boxcox(data, lmbda=lambda_param)
return transformed_data, lambda_val
- 小波变换法(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] # 返回重构后的数据和近似系数(或细节系数)

发表评论
登录后可评论,请前往 登录 或 注册