特征工程实战:从原始数据到高维特征的完整流程
在大模型训练中,特征工程是决定模型性能的关键环节。本文将通过一个完整的案例,展示如何从原始数据出发,构建高质量的高维特征。
数据准备阶段
首先加载并观察原始数据结构:
import pandas as pd
import numpy as np
data = pd.read_csv('raw_data.csv')
print(data.head())
print(data.info())
数据清洗与预处理
# 处理缺失值
numeric_columns = data.select_dtypes(include=[np.number]).columns
data[numeric_columns] = data[numeric_columns].fillna(data[numeric_columns].median())
categorical_columns = data.select_dtypes(include=['object']).columns
for col in categorical_columns:
data[col] = data[col].fillna(data[col].mode().iloc[0])
特征构造与工程
# 数值特征标准化
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
data[['age', 'income']] = scaler.fit_transform(data[['age', 'income']])
# 分类特征编码
from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder(sparse=False)
categorical_encoded = encoder.fit_transform(data[['category']])
# 交互特征生成
data['age_income_ratio'] = data['age'] / (data['income'] + 1e-8)
高维特征提取
# 使用PCA降维
from sklearn.decomposition import PCA
pca = PCA(n_components=0.95)
high_dim_features = pca.fit_transform(data.drop(['target'], axis=1))
# 特征选择
from sklearn.feature_selection import SelectKBest, f_classif
selector = SelectKBest(score_func=f_classif, k=20)
selected_features = selector.fit_transform(high_dim_features, data['target'])
通过以上步骤,我们完成了从原始数据到高维特征的完整处理流程,为后续大模型训练奠定了坚实基础。

讨论