数据标准化处理概述

数据标准化是机器学习预处理的关键步骤,通过调整特征尺度使数据符合均值为0、标准差为1的分布。Pandas结合Scikit-learn的StandardScaler可实现高效标准化,适用于基于距离的算法(如SVM、KNN)和梯度下降优化。

StandardScaler核心原理

标准化公式为: [ z = \frac{x - \mu}{\sigma} ] 其中$\mu$是均值,$\sigma$是标准差。该转换使不同量纲的特征具有可比性,同时保留原始数据分布形状。

实现步骤

加载必要库

import pandas as pd
from sklearn.preprocessing import StandardScaler
import numpy as np

创建示例数据

data = {'Age': [25, 30, 45, 62, 22],
        'Income': [40000, 60000, 80000, 120000, 35000]}
df = pd.DataFrame(data)

初始化并拟合StandardScaler

scaler = StandardScaler()
scaler.fit(df[['Age', 'Income']])

转换数据

scaled_data = scaler.transform(df[['Age', 'Income']])
df_scaled = pd.DataFrame(scaled_data, columns=['Age_scaled', 'Income_scaled'])

查看统计量验证

print(df_scaled.mean())  # 应接近0
print(df_scaled.std())   # 应接近1

关键参数说明

  • with_mean: 布尔值,是否居中数据(默认True)
  • with_std: 布尔值,是否缩放至单位方差(默认True)
  • copy: 是否创建数据副本(默认True)

高级应用技巧

管道集成

from sklearn.pipeline import make_pipeline
from sklearn.linear_model import LogisticRegression

pipeline = make_pipeline(
    StandardScaler(),
    LogisticRegression()
)

分类特征处理 需先将分类变量编码为数值,再对数值特征单独标准化:

from sklearn.preprocessing import OneHotEncoder
from sklearn.compose import ColumnTransformer

preprocessor = ColumnTransformer(
    transformers=[
        ('num', StandardScaler(), ['Age', 'Income']),
        ('cat', OneHotEncoder(), ['Gender'])
    ])

逆变换还原数据

original_data = scaler.inverse_transform(scaled_data)

注意事项

  • 测试集应使用训练集的均值和方差进行转换,避免数据泄露
  • 对稀疏矩阵需设置with_mean=False
  • 存在异常值时考虑改用RobustScaler
  • 标准化后的数据范围无固定界限,与归一化(Normalization)不同

性能优化方案

部分拟合 对于大型数据集,可使用partial_fit分批处理:

scaler.partial_fit(batch_data)

稀疏矩阵支持

from sklearn.preprocessing import StandardScaler
scaler = StandardScaler(with_mean=False)
scaler.fit(sparse_matrix)

并行处理 通过n_jobs参数加速多特征处理:

from sklearn.experimental import enable_hist_gradient_boosting
from sklearn.ensemble import HistGradientBoostingRegressor
est = HistGradientBoostingRegressor(scoring='neg_mean_squared_error', n_jobs=2)

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐