一套完整的 Jupyter Notebooks,包含常见和高级机器学习算法的实现,包括从零实现和 scikit-learn 对比。
包含 9 个常见的基础机器学习算法,每个都有从零实现和 scikit-learn 对比:
- 逻辑回归 (Logistic Regression) - 二分类,梯度下降
- 支持向量机 (SVM) - 线性、RBF、多项式三种核
- K-Means 聚类 - 无监督聚类,肘部法则
- k-近邻 (k-NN) - 实例学习,距离加权
- 高斯朴素贝叶斯 (Gaussian Naive Bayes) - 概率分类
- 主成分分析 (PCA) - 降维,方差分析
- 决策树 (Decision Tree) - 树形模型,特征重要性
- 随机森林 (Random Forest) - 集成学习,100 棵树
- 算法对比 - 7 个分类器的全面评估
运行方式:
jupyter notebook ml_algorithms.ipynb包含 8+ 个高性能的高级机器学习算法和集成方法:
分类/回归:
- 梯度提升 (Gradient Boosting) - 顺序添加树的强大集成方法
- XGBoost / GradientBoosting 对比 - 高性能梯度提升
- 神经网络 (MLP) - 多层感知机,深度学习基础
- 支持向量回归 (SVR) - 非线性回归,多种核
聚类:
- DBSCAN - 密度聚类,自动识别簇数和异常值
异常检测:
- 隔离森林 (Isolation Forest) - 无监督异常检测
正则化方法:
- Ridge / Lasso / ElasticNet - 正则化回归,特征选择
集成学习:
- 投票分类器 (Voting Classifier) - 多学习器投票
- AdaBoost - Boosting 算法
- 综合对比 - 9 个算法全面评估
特色:
- 详细的数学注释和参数解释
- 完整的性能分析和可视化
- 算法选择决策树和 FAQ
运行方式:
jupyter notebook ml_advanced_algorithms.ipynb- Python 3.7+
- Jupyter Notebook 或 JupyterLab
# 进入项目目录
cd /Users/tangzixia/Documents/Code/ML
# 安装所有依赖
pip install -r requirements.txt或手动安装:
pip install numpy pandas scikit-learn matplotlib seaborn scipy jupyter# 启动 Notebook
jupyter notebook
# 或使用 JupyterLab
jupyter lab然后在浏览器中打开对应的 .ipynb 文件。
每个算法部分包含:
- 理论 & 直觉: 算法工作原理的简要说明
- 从零实现: 使用 NumPy 的自定义 Python 实现
- scikit-learn 实现: 工业标准库的使用
- 对比分析: 两种实现的并排对比
- 可视化: 决策边界、特征重要性等图表
- 性能指标: 准确率、精度、召回率、F1 分数
✅ 从零实现 (From-Scratch): 通过自己构建算法来理解原理
✅ scikit-learn 对比: 学会使用工业标准工具
✅ 交互式可视化: Matplotlib 和 Seaborn 绘图
✅ 真实数据集: Iris、digits 和合成数据集
✅ 全面对比: 所有算法的并排评估
✅ 教育重点: 代码中的详细注释和说明
从 ml_algorithms.ipynb 开始:
- 从 Logistic Regression 和 k-NN 开始(最直观)
- 理解 SVM 和决策树
- 学习聚类:K-Means
- 研究集成方法:Random Forest
- 阅读综合对比部分
预计时间: 2-3 小时
完成初级部分后,转向 ml_advanced_algorithms.ipynb:
- Gradient Boosting 和集成方法
- 神经网络基础 (MLP)
- DBSCAN 和聚类进阶
- SVR 和回归方法
预计时间: 2-3 小时
深入研究所有高级部分:
- 异常检测 (Isolation Forest)
- 正则化方法 (Ridge, Lasso, ElasticNet)
- 集成学习策略
- 算法决策树和 FAQ
预计时间: 1-2 小时
| 算法 | 准确率 | 精度 | 召回率 | F1 分数 |
|---|---|---|---|---|
| Logistic Regression | 0.8111 | 0.8148 | 0.8097 | 0.8122 |
| Linear SVM | 0.8222 | 0.8218 | 0.8232 | 0.8225 |
| RBF SVM | 0.8444 | 0.8447 | 0.8443 | 0.8445 |
| k-NN (k=5) | 0.8222 | 0.8222 | 0.8232 | 0.8226 |
| Gaussian NB | 0.8111 | 0.8227 | 0.7989 | 0.8105 |
| Decision Tree | 0.7556 | 0.7566 | 0.7554 | 0.7559 |
| Random Forest | 0.8444 | 0.8465 | 0.8436 | 0.8450 |
| 算法 | 准确率 | 特色 |
|---|---|---|
| Gradient Boosting | 0.8583 | ROC-AUC: 0.9024 |
| Neural Network (MLP) | ~0.90 | 多层学习 |
| SVR (RBF) | R² = 0.9564 | 非线性回归 |
| Isolation Forest | 0.95 F1 | 异常检测 |
- Logistic Regression: 调整
C(1.0) 和max_iter(100) - SVM:
C(1.0) 和gamma(scale) - Random Forest:
n_estimators(100) 和max_depth(5) - Gradient Boosting:
learning_rate(0.1) 和n_estimators(100)
- K-Means: 使用肘部法则选择
k - DBSCAN:
eps和min_samples参数很关键
- Isolation Forest:
contamination参数(异常比例假设)
├── ml_algorithms.ipynb # 9 个基础算法
├── ml_advanced_algorithms.ipynb # 8+ 个高级算法
├── requirements.txt # 依赖列表
├── README.md # 本文件
└── .venv/ # 虚拟环境
完成这些 Notebooks 后,你将理解:
✅ 常见 ML 算法的内部工作原理
✅ 如何使用 NumPy 从零实现算法
✅ 何时使用不同算法解决不同问题
✅ 如何评估和比较模型性能
✅ ML 工作流的最佳实践
✅ 高级算法和集成方法的应用
✅ 异常检测和非标准问题的处理
- 按顺序从上到下运行单元格
- 每个部分都独立,但使用一致的数据预处理
- 可视化在笔记本中内联生成
- 比较自定义实现和 scikit-learn 的结果
- 修改参数观察效果变化
- Python 版本: 3.9.6
- NumPy: 1.24.3
- Pandas: 2.0.3
- Scikit-learn: 1.3.0
- Matplotlib: 3.7.2
- Seaborn: 0.12.2
- Jupyter: 1.0.0
- 再现性: 所有地方使用固定的随机种子 (seed=42)
- 标准化: 使用
StandardScaler进行特征归一化 - 注释详细: 所有代码都有详细的中文和英文注释
- 可视化丰富: 每个算法都有 1-4 个可视化图表
计划添加:
- t-SNE 和 UMAP 降维
- 特征选择技术
- 交叉验证和网格搜索
- 时间序列算法
- 文本分类示例
- 超参数优化 (Hyperopt)
最后更新: 2025年12月
创建者: ML Learning Path
用途: 教育和学习
如有任何问题或建议,欢迎提出!