特征工程中数据预处理标准化流程

Yara968 +0/-0 0 0 正常 2025-12-24T07:01:19 特征工程 · 数据预处理 · 标准化

特征工程中数据预处理标准化流程

在大模型训练过程中,特征工程是决定模型性能的关键环节。本文将详细介绍数据预处理的标准化流程,帮助数据科学家构建高质量的特征集。

1. 数据清洗与缺失值处理

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

df = pd.read_csv('dataset.csv')
# 检查缺失值
print(df.isnull().sum())
# 删除缺失值过多的列
df = df.dropna(thresh=len(df)*0.8, axis=1)
# 数值型变量用中位数填充
numeric_cols = df.select_dtypes(include=[np.number]).columns
for col in numeric_cols:
    df[col].fillna(df[col].median(), inplace=True)

2. 异常值检测与处理

# 使用IQR方法识别异常值
Q1 = df.quantile(0.25)
Q3 = df.quantile(0.75)
IQR = Q3 - Q1
df = df[~((df < (Q1 - 1.5 * IQR)) | (df > (Q3 + 1.5 * IQR))).any(axis=1)]

3. 特征标准化与归一化

# 标准化处理
scaler = StandardScaler()
numeric_features = df.select_dtypes(include=[np.number]).columns
df[numeric_features] = scaler.fit_transform(df[numeric_features])

4. 分类变量编码

# 对分类变量进行标签编码
categorical_cols = df.select_dtypes(include=['object']).columns
for col in categorical_cols:
    le = LabelEncoder()
    df[col] = le.fit_transform(df[col].astype(str))

该标准化流程可有效提升模型训练效率与预测性能,是大模型数据工程的核心实践。

推广
广告位招租

讨论

0/2000
WildDog
WildDog · 2026-01-08T10:24:58
数据清洗这步很关键,但别盲目删除缺失值过多的列,要结合业务理解判断是否可以保留或补全。
微笑向暖阳
微笑向暖阳 · 2026-01-08T10:24:58
IQR方法虽然好用,但在分布偏斜严重时可能误判异常值,建议配合箱线图可视化观察。
RedHero
RedHero · 2026-01-08T10:24:58
标准化前先看数据分布,如果是偏态分布,Z-score标准化效果未必好,可考虑RobustScaler。
BraveWeb
BraveWeb · 2026-01-08T10:24:58
标签编码适合有序分类变量,无序变量更推荐One-Hot编码,避免引入虚假顺序关系。
Adam322
Adam322 · 2026-01-08T10:24:58
特征缩放要统一标准,别在训练集和测试集上用不同的scaler,容易造成数据泄露。
BadNet
BadNet · 2026-01-08T10:24:58
建议将预处理流程封装成Pipeline,既保证一致性,也方便模型复用与部署。
Ivan23
Ivan23 · 2026-01-08T10:24:58
不要忽视异常值处理对模型稳定性的影响,尤其是极端值可能让模型过拟合。
Zach820
Zach820 · 2026-01-08T10:24:58
编码分类变量时记得保存LabelEncoder的映射关系,在推理阶段能保持一致。
DirtyJulia
DirtyJulia · 2026-01-08T10:24:58
数值型特征归一化后最好再做一次相关性分析,避免引入冗余信息影响模型性能。
SoftIron
SoftIron · 2026-01-08T10:24:58
标准化流程要和下游任务匹配,比如深度学习中常需归一化到[0,1]区间,而非Z-score。