Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Machine Learning Algorithms - Complete Guide

一套完整的 Jupyter Notebooks,包含常见和高级机器学习算法的实现,包括从零实现和 scikit-learn 对比。

📚 两个 Notebooks

1️⃣ ml_algorithms.ipynb - 基础算法 (Fundamental Algorithms)

包含 9 个常见的基础机器学习算法,每个都有从零实现和 scikit-learn 对比:

  1. 逻辑回归 (Logistic Regression) - 二分类,梯度下降
  2. 支持向量机 (SVM) - 线性、RBF、多项式三种核
  3. K-Means 聚类 - 无监督聚类,肘部法则
  4. k-近邻 (k-NN) - 实例学习,距离加权
  5. 高斯朴素贝叶斯 (Gaussian Naive Bayes) - 概率分类
  6. 主成分分析 (PCA) - 降维,方差分析
  7. 决策树 (Decision Tree) - 树形模型,特征重要性
  8. 随机森林 (Random Forest) - 集成学习,100 棵树
  9. 算法对比 - 7 个分类器的全面评估

运行方式:

jupyter notebook ml_algorithms.ipynb

2️⃣ ml_advanced_algorithms.ipynb - 高级算法 (Advanced Algorithms)

包含 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

🚀 快速开始

1. 环境要求

  • Python 3.7+
  • Jupyter Notebook 或 JupyterLab

2. 安装依赖

# 进入项目目录
cd /Users/tangzixia/Documents/Code/ML

# 安装所有依赖
pip install -r requirements.txt

或手动安装:

pip install numpy pandas scikit-learn matplotlib seaborn scipy jupyter

3. 启动 Jupyter

# 启动 Notebook
jupyter notebook

# 或使用 JupyterLab
jupyter lab

然后在浏览器中打开对应的 .ipynb 文件。


📊 Notebook 结构

每个算法部分包含:

  • 理论 & 直觉: 算法工作原理的简要说明
  • 从零实现: 使用 NumPy 的自定义 Python 实现
  • scikit-learn 实现: 工业标准库的使用
  • 对比分析: 两种实现的并排对比
  • 可视化: 决策边界、特征重要性等图表
  • 性能指标: 准确率、精度、召回率、F1 分数

💡 核心特点

从零实现 (From-Scratch): 通过自己构建算法来理解原理
scikit-learn 对比: 学会使用工业标准工具
交互式可视化: Matplotlib 和 Seaborn 绘图
真实数据集: Iris、digits 和合成数据集
全面对比: 所有算法的并排评估
教育重点: 代码中的详细注释和说明


📈 学习路径

🟢 初学者 (Beginner)

ml_algorithms.ipynb 开始:

  1. 从 Logistic Regression 和 k-NN 开始(最直观)
  2. 理解 SVM 和决策树
  3. 学习聚类:K-Means
  4. 研究集成方法:Random Forest
  5. 阅读综合对比部分

预计时间: 2-3 小时

🟡 中级 (Intermediate)

完成初级部分后,转向 ml_advanced_algorithms.ipynb

  1. Gradient Boosting 和集成方法
  2. 神经网络基础 (MLP)
  3. DBSCAN 和聚类进阶
  4. SVR 和回归方法

预计时间: 2-3 小时

🔴 高级 (Advanced)

深入研究所有高级部分:

  1. 异常检测 (Isolation Forest)
  2. 正则化方法 (Ridge, Lasso, ElasticNet)
  3. 集成学习策略
  4. 算法决策树和 FAQ

预计时间: 1-2 小时


📊 算法性能对比

ml_algorithms.ipynb 性能

算法 准确率 精度 召回率 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

ml_advanced_algorithms.ipynb 高级算法

算法 准确率 特色
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: epsmin_samples 参数很关键

异常检测

  • Isolation Forest: contamination 参数(异常比例假设)

📝 文件说明

├── ml_algorithms.ipynb              # 9 个基础算法
├── ml_advanced_algorithms.ipynb     # 8+ 个高级算法
├── requirements.txt                 # 依赖列表
├── README.md                        # 本文件
└── .venv/                           # 虚拟环境

🎓 学习成果

完成这些 Notebooks 后,你将理解:

✅ 常见 ML 算法的内部工作原理
✅ 如何使用 NumPy 从零实现算法
✅ 何时使用不同算法解决不同问题
✅ 如何评估和比较模型性能
✅ ML 工作流的最佳实践
✅ 高级算法和集成方法的应用
✅ 异常检测和非标准问题的处理


🔄 推荐工作流

  1. 按顺序从上到下运行单元格
  2. 每个部分都独立,但使用一致的数据预处理
  3. 可视化在笔记本中内联生成
  4. 比较自定义实现和 scikit-learn 的结果
  5. 修改参数观察效果变化

📚 参考资源


💻 环境信息

  • 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
用途: 教育和学习

如有任何问题或建议,欢迎提出!

About

Traditional ML Techniques

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages