机器学习
机器学习的目标是从样本中学习可泛化的规律。学习重点不是背算法名称,而是理解数据假设、损失函数、优化方式、泛化能力和适用边界。
知识地图
flowchart TD ML["机器学习"] --> S["监督学习"] ML --> U["无监督学习"] ML --> R["强化学习"] S --> Reg["回归:线性 / Ridge / Lasso"] S --> Cls["分类:逻辑回归 / SVM / KNN"] S --> Tree["树模型:决策树 / 随机森林 / GBDT"] U --> Cluster["聚类:K-Means / DBSCAN"] U --> Dim["降维:PCA / t-SNE / UMAP"] R --> Policy["策略、奖励、价值函数"] ML --> Eval["数据切分、交叉验证、指标、误差分析"]
核心学习清单
- 问题类型:回归、二分类、多分类、多标签、聚类、异常检测、排序。
- 数据处理:缺失值、异常值、类别编码、标准化、特征工程。
- 模型:线性/逻辑回归、朴素贝叶斯、KNN、SVM、决策树、随机森林、XGBoost/LightGBM。
- 泛化:偏差-方差、过拟合、欠拟合、正则化、交叉验证。
- 评估:混淆矩阵、Precision、Recall、F1、ROC-AUC、PR-AUC、MAE、RMSE。
- 可解释性:特征重要性、Permutation Importance、SHAP(理解其适用条件)。
推荐课程与代码
- 吴恩达 Machine Learning Specialization
- Google Machine Learning Crash Course
- scikit-learn 用户指南
- scikit-learn 示例
- Hands-On Machine Learning 配套代码
- XGBoost
- LightGBM
- CatBoost
项目练习
- 泰坦尼克生存预测:重点练习数据清洗、交叉验证和类别不平衡。
- 房价预测:比较线性模型、随机森林和梯度提升。
- 客户流失预测:分析召回率、阈值选择和业务成本。
- 异常检测:比较 Isolation Forest 与基于距离的方法。
进阶:实验设计
- 先建立 Dummy/简单模型基线,再逐步增加复杂度。
- Pipeline 中拟合的预处理步骤只能使用训练数据。
- 超参数搜索只能使用训练集内部的验证策略。
- 对数据集版本、特征、模型参数、随机种子和指标做记录。
- 除平均指标外,分析不同类别、不同时间段和边界样本的表现。
推荐阅读
- Why Machines Learn — Anil Ananthaswamy:从数学与科学思想理解机器学习。
- Hands-On Machine Learning — Aurélien Géron:配套代码可用于端到端实践;图书正文请通过出版社获取。
- The Elements of Statistical Learning:作者公开的统计学习教材。
- 完整书单见 AI书籍与课程。