特征工程数据预处理流程

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

特征工程数据预处理流程踩坑记录

作为一名在大模型训练中摸爬滚打的数据科学家,今天想分享一下我在特征工程预处理环节踩过的几个坑。最近在处理一个文本分类任务时,发现直接使用原始数据进行特征提取效果很差,经过反复调试终于找到了有效的预处理流程。

核心预处理步骤

第一步:缺失值处理

import pandas as pd
import numpy as np

df = pd.read_csv('data.csv')
# 检查缺失值
print(df.isnull().sum())
# 对数值型特征用中位数填充,分类特征用众数填充
numeric_features = df.select_dtypes(include=[np.number]).columns
categorical_features = df.select_dtypes(include=['object']).columns

for col in numeric_features:
    df[col].fillna(df[col].median(), inplace=True)
for col in categorical_features:
    df[col].fillna(df[col].mode()[0], inplace=True)

第二步:异常值检测与处理 使用IQR方法识别异常值,避免极端值影响模型性能。

第三步:特征编码 对于分类变量,采用LabelEncoder或OneHotEncoder进行编码。

常见陷阱提醒

  • 不要盲目删除缺失值过多的特征,有时候缺失本身也是一种信息
  • 特征缩放要统一使用训练集统计量,避免数据泄露

这个流程在多个项目中都验证有效,欢迎在评论区分享你们的预处理经验!

推广
广告位招租

讨论

0/2000
夜色温柔
夜色温柔 · 2026-01-08T10:24:58
缺失值处理确实不能一刀切,我之前直接删了缺失超半数的特征,结果把潜在重要信息也丢了。建议先分析缺失模式,比如是否随机缺失,再决定是填充还是保留。
HardWill
HardWill · 2026-01-08T10:24:58
异常值检测别只看IQR,尤其是文本数据,有些极端值可能是真实样本。可以结合业务逻辑和分布图综合判断,避免误删有效数据。
CrazyDance
CrazyDance · 2026-01-08T10:24:58
特征编码记得在交叉验证外层做,别让测试集影响训练集的编码映射。我之前就因为这个导致模型在验证集上表现好但在实际部署时崩了,教训深刻。