← 返回首页

机器学习从零到一:监督学习、数据划分与模型评估

10/23/2025

机器学习从零到一:监督学习、数据划分与模型评估

机器学习从零到一:监督学习、数据划分与模型评估

监督学习目标是让模型学会映射:输入特征 → 输出标签。工程上更关注数据质量、特征表达与评估流程,而不仅仅是选择算法。

一、数据与划分策略

  • 训练/验证/测试:常见比例 6/2/2,或用交叉验证提高稳定性。
  • 时间序列:要按时间切分,避免泄漏未来信息。
  • 分层抽样:分类任务中按标签分布切分,保持训练/验证分布一致。
from sklearn.model_selection import train_test_split
X_tr, X_te, y_tr, y_te = train_test_split(X, y, test_size=0.2, stratify=y, random_state=42)

二、特征工程与选择

  • 数值标准化:StandardScaler 让不同量纲可比较。
  • 类别编码:OneHotEncoder;高基数可用目标编码或嵌入。
  • 文本:TF-IDF、词向量;图像/音频需专用提取。
  • 特征选择:过滤法(相关性)、包裹法(递归特征消除)、嵌入法(正则化)。

三、模型与超参

  • 线性模型:LogisticRegression,可解释性好;配合正则化避免过拟合。
  • 树模型:RandomForestXGBoost,非线性与鲁棒性强。
  • 超参搜索:网格/随机/贝叶斯优化;先粗调再精调。
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression

pipe = Pipeline([
    ("scaler", StandardScaler()),
    ("clf", LogisticRegression(max_iter=1000))
])
pipe.fit(X_tr, y_tr)

四、评估与监控

  • 分类:准确率、精确率、召回率、F1、ROC-AUC;关注类别不均衡下的指标。
  • 回归:MAE/MSE/RMSE、R²;注意异常值影响。
  • 监控漂移:上线后监控特征分布与标签分布,及时再训练。
from sklearn.metrics import classification_report
print(classification_report(y_te, pipe.predict(X_te)))

五、可复现实验与数据版本

  • 固定随机种子、记录超参与数据快照;使用 MLflow/Weights & Biases 做实验跟踪。
  • 数据版本:用 DVC 或数据仓库记录采样与清洗过程,保证复现。

六、常见陷阱

  • 数据泄漏:把目标信息错误地泄漏到特征;管道化处理避免在整个数据上拟合。
  • 过拟合:训练分数高但测试差;正则化、交叉验证与早停。
  • 不合理指标:只看准确率忽略召回,导致业务失败。

结语

机器学习更像一条生产线。数据、特征、模型与评估环环相扣,只有打磨好每个环节,才能把“能跑的模型”变成“可信赖的系统”。