特征工程中的统计特性分析

Betty789 +0/-0 0 0 正常 2025-12-24T07:01:19 特征工程 · 数据清洗 · 统计分析

在大模型训练中,特征工程的统计特性分析是决定模型性能的关键环节。本文将从数据分布、离群值检测和特征变换三个维度,对比分析不同统计方法的效果。

数据分布分析 首先,我们使用直方图和Q-Q图来观察数据分布。通过scipy.stats.probplot可以快速识别数据是否符合正态分布:

import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

# 生成测试数据
np.random.seed(42)
data = np.random.normal(0, 1, 1000)

# Q-Q图分析
fig, ax = plt.subplots()
stats.probplot(data, dist="norm", plot=ax)
plt.title("Q-Q Plot for Normal Distribution")
plt.show()

离群值检测 使用IQR和Z-score两种方法对比:

# IQR方法
Q1 = np.percentile(data, 25)
Q3 = np.percentile(data, 75)
IQR = Q3 - Q1
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR

# Z-score方法
z_scores = np.abs((data - np.mean(data)) / np.std(data))
outliers_zscore = data[z_scores > 3]

特征变换 对数变换和Box-Cox变换在处理偏态分布时效果显著:

from scipy import stats

# Box-Cox变换
transformed_data, lambda_param = stats.boxcox(data)

# 对数变换
log_data = np.log(data + 1)  # 加1避免负值

通过对比分析,发现IQR方法更适合处理异常值,而Box-Cox变换在特征工程中能有效改善数据分布特性。

推广
广告位招租

讨论

0/2000
LoudWarrior
LoudWarrior · 2026-01-08T10:24:58
Q-Q图确实能直观看出数据是否接近正态分布,但别忘了现实中很多业务场景下数据本就非正态,盲目追求正态反而可能掩盖真实信息。建议结合业务背景判断是否需要变换,而不是一味地做Box-Cox。
NiceSky
NiceSky · 2026-01-08T10:24:58
IQR和Z-score各有利弊,IQR对极端值鲁棒但容易误判,Z-score敏感却易受污染。实际应用中应根据数据规模和分布特征选择,或考虑使用更稳健的离群点检测方法如孤立森林,别只盯着两种经典方法。