

新闻资讯
技术学院特征工程是通过理解业务与数据分布,提升特征对目标变量的解释力、降低噪声与冗余的过程;包括缺失值处理(数值型用均值/中位数,类别型新增“未知”或用众数)、慎删样本等。
特征工程不是简单地把原始数据丢给模型,而是通过理解业务和数据分布,把信息更有效地表达出来。关键在于提升特征对目标变量的解释力,同时减少噪声和冗余。
常见操作包括:
pd.get_dummies)或目标编码(需防数据泄露,务必在交叉验证内完成)StandardScaler(标准化)或MinMaxScaler(归一化),注意拟合(fit)只在训练集上进行在非均衡数据(如欺诈检测、故障预测)中,准确率(accuracy)会严重误导。评估必须匹配业务目标,选择合适指标并坚持在同一数据划分下比较。
核心原则:
train_test_split(..., stratify=y)保持训练集和测试集中各类别比例一致;时间序列数
据则须按时间顺序切分,禁止随机打乱cross_val_score或StratifiedKFold)获取指标均值与标准差,标准差过大说明模型泛化能力弱或特征不稳定以下是一个简明可运行的流程示意(基于scikit-learn):
# 特征预处理管道 from sklearn.pipeline import Pipeline from sklearn.preprocessing import StandardScaler, OneHotEncoder from sklearn.compose import ColumnTransformer from sklearn.ensemble import RandomForestClassifier假设 numeric_cols = ['age', 'income'], cat_cols = ['gender', 'city']
preprocessor = ColumnTransformer( transformers=[ ('num', StandardScaler(), numeric_cols), ('cat', OneHotEncoder(drop='first'), cat_cols) ], remainder='passthrough' )
构建完整管道
pipe = Pipeline([ ('preproc', preprocessor), ('model', RandomForestClassifier(random_state=42)) ])
评估(自动应用预处理)
from sklearn.model_selection import cross_val_score scores = cross_val_score(pipe, X_train, y_train, cv=5, scoring='f1') print(f"F1 (5-fold CV): {scores.mean():.3f} ± {scores.std():.3f}")
很多效果差不是模型问题,而是流程疏漏:
model.feature_importances_或SHAP值定位无效/异常特征