模型训练数据预处理流程

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

模型训练数据预处理流程

在大模型训练中,数据预处理是决定模型性能的关键环节。本文将分享一套标准化的数据预处理流程,帮助数据科学家高效完成数据清洗与特征工程。

1. 数据质量评估

首先对原始数据进行整体评估:

import pandas as pd
import numpy as np

df = pd.read_csv('raw_data.csv')
# 检查缺失值
missing_values = df.isnull().sum()
# 检查重复值
duplicate_count = df.duplicated().sum()
# 数据类型检查
print(df.dtypes)

2. 缺失值处理

根据缺失比例采用不同策略:

  • 缺失率<5%:删除该行
  • 缺失率5%-30%:使用均值/中位数填充
  • 缺失率>30%:考虑删除该特征
# 删除缺失值过多的行
threshold = 0.3
df_cleaned = df.dropna(thresh=len(df.columns) * (1 - threshold))

# 数值型特征用中位数填充
numeric_cols = df.select_dtypes(include=[np.number]).columns
for col in numeric_cols:
    df[col].fillna(df[col].median(), inplace=True)

3. 异常值检测

使用IQR方法识别异常值:

Q1 = df.quantile(0.25)
Q3 = df.quantile(0.75)
IQR = Q3 - Q1
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR

# 筛选正常值
df_filtered = df[~((df < lower_bound) | (df > upper_bound)).any(axis=1)]

4. 特征工程

  • 文本数据:分词、去除停用词、词干提取
  • 分类变量:独热编码或标签编码
  • 数值变量:标准化/归一化处理

这套流程可有效提升模型训练效率和最终性能,建议根据具体业务场景灵活调整。

推广
广告位招租

讨论

0/2000
Ethan385
Ethan385 · 2026-01-08T10:24:58
数据预处理真不是走形式,缺失值处理那块直接决定了模型收敛速度。我之前用中位数填充,结果模型在某个特征上一直过拟合,后来改成用交叉验证的均值才解决。
Paul191
Paul191 · 2026-01-08T10:24:58
异常值检测别只看IQR,尤其金融数据,有些极端值其实是有效信息。建议加个业务规则过滤,比如价格不能为负这种,不然容易误删真实样本。
Bella965
Bella965 · 2026-01-08T10:24:58
特征工程里文本处理那块太关键了,我试过直接用TF-IDF+朴素贝叶斯,效果比自己写分词还差,后来换成BERT的预训练模型才稳定下来,建议提前做实验验证。
绮丽花开
绮丽花开 · 2026-01-08T10:24:58
标准化/归一化这步不能省,尤其是梯度下降优化的模型。我见过有人直接用原始数据训练,结果损失函数根本不动,最后才发现是数值范围差了几个数量级