特征工程中数据预处理流程优化实践
在大模型训练过程中,数据预处理阶段往往决定了模型最终性能的上限。本文分享一套可复现的数据预处理优化流程。
数据清洗与缺失值处理
import pandas as pd
import numpy as np
def clean_data(df):
# 删除重复行
df = df.drop_duplicates()
# 处理数值型缺失值
numeric_columns = df.select_dtypes(include=[np.number]).columns
for col in numeric_columns:
if df[col].isnull().sum() > 0:
df[col] = df[col].fillna(df[col].median())
# 处理分类变量缺失值
categorical_columns = df.select_dtypes(include=['object']).columns
for col in categorical_columns:
if df[col].isnull().sum() > 0:
df[col] = df[col].fillna(df[col].mode()[0])
return df
异常值检测与处理
使用IQR方法识别异常值:
# 计算四分位数
Q1 = df[numeric_columns].quantile(0.25)
Q3 = df[numeric_columns].quantile(0.75)
IQR = Q3 - Q1
# 筛选异常值
outliers = ((df[numeric_columns] < (Q1 - 1.5 * IQR)) |
(df[numeric_columns] > (Q3 + 1.5 * IQR)))
数据标准化与归一化
针对不同场景选择合适的标准化方法:
from sklearn.preprocessing import StandardScaler, MinMaxScaler
# 标准化(Z-score)
scaler = StandardScaler()
X_standardized = scaler.fit_transform(X)
# 归一化(Min-Max)
minmax_scaler = MinMaxScaler()
X_normalized = minmax_scaler.fit_transform(X)
优化建议:在大模型训练前,优先使用StandardScaler进行标准化处理,能有效提升模型收敛速度和稳定性。

讨论