特征工程中的异常值处理技巧
在大模型训练数据处理中,异常值处理是特征工程的关键环节。本文分享几种实用的异常值检测与处理方法。
1. 基于统计学方法
最基础的方法是使用Z-Score,当特征值偏离均值超过3个标准差时视为异常值:
import numpy as np
from scipy import stats
# 计算Z-Score
z_scores = np.abs(stats.zscore(data['feature']))
# 标记异常值
outliers = z_scores > 3
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
outliers = (data['feature'] < lower_bound) | (data['feature'] > upper_bound)
3. 基于机器学习方法
使用孤立森林检测异常值:
from sklearn.ensemble import IsolationForest
iso_forest = IsolationForest(contamination=0.1)
outliers = iso_forest.fit_predict(data[['feature1', 'feature2']]) == -1
4. 处理策略
- 删除法:直接移除异常值样本
- 替换法:用均值/中位数替换
- 分箱法:将异常值归入边界值
注意:在处理时要确保不泄露数据隐私,避免在公开场合分享原始数据特征。建议使用数据清洗技巧进行预处理后再用于模型训练。

讨论