特征工程数据预处理方法

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

特征工程数据预处理方法

在大模型训练中,高质量的特征工程是决定模型性能的关键因素。本文将系统介绍几种核心的数据预处理方法,帮助数据科学家构建更有效的特征集。

1. 缺失值处理

缺失值是数据预处理中的常见问题。对于数值型特征,可以采用均值、中位数或众数填充;对于分类特征,通常使用众数填充。代码示例:

import pandas as pd
from sklearn.impute import SimpleImputer

# 数值型缺失值填充
imputer = SimpleImputer(strategy='mean')
data['numeric_col'] = imputer.fit_transform(data[['numeric_col']])

# 分类特征缺失值填充
mode_imputer = SimpleImputer(strategy='most_frequent')
data['category_col'] = mode_imputer.fit_transform(data[['category_col']])

2. 异常值检测与处理

使用IQR(四分位距)方法识别异常值:

Q1 = data['feature'].quantile(0.25)
Q3 = data['feature'].quantile(0.75)
IQR = Q3 - Q1
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR

# 处理异常值
data['feature'] = data['feature'].clip(lower_bound, upper_bound)

3. 特征缩放与标准化

对于大模型训练,特征缩放至关重要。常见的方法包括标准化和归一化:

from sklearn.preprocessing import StandardScaler, MinMaxScaler

# 标准化
scaler = StandardScaler()
data_scaled = scaler.fit_transform(data)

# 归一化
min_max_scaler = MinMaxScaler()
data_normalized = min_max_scaler.fit_transform(data)

4. 分类特征编码

使用独热编码(One-Hot Encoding)处理分类变量:

# 使用pandas
encoded_data = pd.get_dummies(data, columns=['category_col'], prefix='category')

# 或使用sklearn
from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder(sparse=False)
encoded_features = encoder.fit_transform(data[['category_col']])

5. 特征选择与降维

利用相关系数筛选特征:

# 计算相关系数矩阵
correlation_matrix = data.corr()

# 移除高度相关的特征(阈值0.9)
correlated_features = set()
for i in range(len(correlation_matrix.columns)):
    for j in range(i):
        if abs(correlation_matrix.iloc[i, j]) > 0.9:
            correlated_features.add(correlation_matrix.columns[i])

# 删除相关特征
selected_data = data.drop(columns=list(correlated_features))

这些预处理步骤可以有效提升大模型训练效果,建议根据具体数据特点灵活组合使用。

推广
广告位招租

讨论

0/2000
BusyVictor
BusyVictor · 2026-01-08T10:24:58
缺失值别盲目填均值,先看数据分布。我曾遇到过偏态严重的特征,用中位数反而效果更好,建议结合可视化判断。
David281
David281 · 2026-01-08T10:24:58
异常值处理要谨慎,尤其是金融或医疗数据。我习惯先标记再分析,而不是直接截断,避免信息丢失影响模型泛化。
SweetBird
SweetBird · 2026-01-08T10:24:58
标准化vs归一化选哪个?我的经验是:树模型用不着,神经网络强烈推荐标准化;如果特征量级差别大,优先考虑MinMaxScaler。
晨曦吻
晨曦吻 · 2026-01-08T10:24:58
分类编码别只用One-Hot,尤其类别多时会爆炸式增长。我常用Target Encoding或嵌入层替代,既降维又保留信息