Aller au contenu principal

机器学习 5 — 综合练习

:::tip Kaggle 笔记本 本章的完整可执行代码在 Kaggle 上:打开 →

法语和英语版本可在首页查看。 :::

四个综合练习,将之前所学的内容付诸实践。每个数据集都强调前面章节中的特定技能。笔记本提供参考解答:扎实的基线,不是 Kaggle 最优解,但是可以打磨的干净骨架。

Mercedes-Benz Greener Manufacturing

类型: 高维回归。

数据集包含约 370 个混合特征(用字母编码的类别 + 二进制)来预测 y,一个来自测试台的性能分数。

期望

  1. 加载数据集,检查目标和列类型。
  2. 构建 ColumnTransformer:类别用 OneHotEncoder,二进制几乎恒定的用 VarianceThreshold 删除。
  3. Pipeline 中训练 RidgeGradientBoostingRegressor
  4. 在测试集上用 MAE / RMSE / R² 评估。

为什么是这个练习?

它是预处理比模型耗时更长的高维数据集的典型代表。变量选择(通过 VarianceThresholdLasso)起到关键作用。

Stroke Prediction

类型: 不平衡分类 + 缺失值。

根据人口统计、医疗和生活方式因素预测中风发生。约 5,000 个观测,仅约 5% 是阳性。

期望

  1. 加载,删除 id。检查不平衡。
  2. 处理 bmi(真正的 NaN)和 smoking_status='Unknown'(伪装的 NaN)。
  3. SimpleImputer + OneHotEncoder + StandardScaler 构建 Pipeline。
  4. class_weight='balanced' 的模型,或带 SMOTE 的 imblearn 流水线。
  5. 混淆矩阵精确率/召回率/F1PR 曲线评估。

为什么是这个练习?

强不平衡的典型例子,准确率不再有意义。FN(漏检中风)的代价比 FP(误警)高得多。阈值和验证指标的选择变得至关重要。

House Prices — Ames

类型: 数值/类别混合的复杂回归。

根据 Ames 市(爱荷华州)房屋的约 80 个特征预测 SalePrice。许多结构性的缺失值(NaN 表示"无车库"、"无地下室"等)。

期望

  1. 加载,删除 Id
  2. Pipeline:数值的 SimpleImputer 中位数 + 类别的 'missing',One-Hot,缩放。
  3. 模型:GradientBoostingRegressor 或 XGBoost。
  4. log(SalePrice) 上的 RMSE 评估——这是 Kaggle 竞赛指标,对相对误差的惩罚更好。

走得更远

一些显著提升分数的特征工程想法:

  • TotalSF = TotalBsmtSF + 1stFlrSF + 2ndFlrSF:总面积是具预测性的变量。
  • Age = YrSold - YearBuiltRemodAge = YrSold - YearRemodAdd
  • HasGarage = GarageArea > 0HasPool = PoolArea > 0

MNIST

类型: 图像分类,进入视觉的入口。

10,000 张 28×28 的手写数字图像,分为 10 类。

期望

  1. 加载子样本(10,000 行对 k-NN 或 RF 已经够用)。
  2. imshow 可视化一些数字。
  3. 将像素归一化到 [0, 1]
  4. 训练 RandomForestClassifierKNeighborsClassifier
  5. 评估:准确率 + 10×10 混淆矩阵(非常有信息量)。

为什么是这个练习?

证明"表格"机器学习模型在简单图像上效果出奇地好(用 RF 在扁平像素上约 95% 准确率)。但也是为了在下一门课程中过渡到深度学习CNN 的动机:经过良好调整的 CNN 在 MNIST 上轻松超过 99%。

混淆矩阵揭示了经典混淆:4↔9、3↔5、7↔1。视觉上相似的数字。


Kaggle 上的完整笔记本(可分叉)→