特征工程中的异常值处理技巧

Ian736 +0/-0 0 0 正常 2025-12-24T07:01:19 特征工程 · 数据清洗

特征工程中的异常值处理技巧

在大模型训练数据处理中,异常值处理是特征工程的关键环节。本文分享几种实用的异常值检测与处理方法。

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. 处理策略

  • 删除法:直接移除异常值样本
  • 替换法:用均值/中位数替换
  • 分箱法:将异常值归入边界值

注意:在处理时要确保不泄露数据隐私,避免在公开场合分享原始数据特征。建议使用数据清洗技巧进行预处理后再用于模型训练。

推广
广告位招租

讨论

0/2000
Kyle630
Kyle630 · 2026-01-08T10:24:58
Z-Score和IQR方法看似简单,但实际应用中容易误判,尤其是数据分布偏斜时。建议先做分布可视化,再结合业务场景判断是否真的需要处理,别盲目删除。
幻想之翼
幻想之翼 · 2026-01-08T10:24:58
孤立森林在高维数据上效果不错,但计算成本高且结果难解释。我通常会先用IQR快速筛一遍,再对关键特征用模型验证,避免过度工程化导致模型泛化能力下降。