Skip to content

ForceInjection/hands-on-ML

Repository files navigation

动手学机器学习

本仓库提供结构化的机器学习学习路径,涵盖核心理论、可运行代码与典型实战案例,便于按章节循序学习与复现。


1. 项目概述

本项目整合了多个优质的机器学习学习资源:

  • NJU 软件学院课程:系统的机器学习理论与实践
  • 上海交大课程:《动手学机器学习》配套资源
  • 特征工程专题:《精通特征工程》实战案例
  • 零基础实战:极客时间机器学习课程

2. 学习路径

本章节按照机器学习的知识体系逻辑,以 NJU 软件学院课程为主线,辅以 上海交大《动手学机器学习》 资源,将理论学习与代码实战深度融合。建议初学者按照章节顺序循序渐进,从基础概念入手,逐步掌握监督学习、无监督学习及深度学习的核心算法。

2.1 导论与学习准备

理论学习:

上海交大配套资源:

2.2 监督学习算法

涵盖线性模型、决策树、SVM 等经典算法,利用标记数据解决分类与回归问题。

2.2.1 基础监督学习算法

理论学习:

上海交大配套资源:

2.2.2 集成学习

理论学习:

实战案例:

上海交大配套资源:

2.3 无监督学习

无需标记数据,探索数据内部的分布规律与潜在结构,涵盖聚类与概率估计。

2.3.1 聚类算法

理论学习:

上海交大配套资源:

2.3.2 概率模型与 EM 算法

理论学习:

上海交大配套资源:

2.4 特征工程

“数据决定模型的上限”,深入掌握数据清洗、特征提取与构造技巧。

理论学习:

实战案例:

《精通特征工程》配套代码:

2.5 模型评估与调优

掌握科学的评估指标与调优策略(如交叉验证、网格搜索),提升模型泛化能力。

理论学习:

实战案例:

2.6 特征选择与降维

剔除冗余信息,通过特征选择与降维技术(如 PCA)提升模型效率与可解释性。

理论学习:

上海交大配套资源:

2.7 推荐系统

进阶算法应用,涵盖基于协同过滤的个性化推荐与矩阵分解技术。

理论学习:

2.8 概率图模型

处理不确定性的有力工具,涵盖贝叶斯网络与隐马尔可夫模型。

理论学习:

上海交大配套资源:

2.9 深度学习

从感知机到深度神经网络,探索自动特征学习与非线性建模的强大能力。

理论学习:

上海交大配套资源:


3. 参考资料

3.1 上海交大《动手学机器学习》

动手学机器学习

配套 PPT

教学视频:上海交大张伟楠机器学习课程

3.2 《精通特征工程》

精通特征工程

配套代码

3.3 极客时间《零基础实战机器学习》

零基础实战机器学习

课程链接 | 配套代码


4. 环境配置

本节介绍如何快速搭建可复现的 JupyterLab 环境,优先推荐使用 Docker 启动。

4.1 Docker 一键启动(推荐)

本仓库提供了基于 Docker 的 JupyterLab 启动脚本 run_jupyterlab.sh。脚本会在本地构建镜像并创建容器,默认将宿主机 127.0.0.1:8888 映射到容器端口 8888,将当前仓库目录挂载到容器的工作目录(/home/jovyan/work),并额外挂载 ./fonts./config/matplotlibrc 以改善中文字体与 Matplotlib 配置的可用性。启动成功后会输出可直接访问的 URL(包含 token)。

前置条件

  • 已安装并启动 Docker

启动方式

# 在仓库根目录执行
bash run_jupyterlab.sh

如需强制重建镜像

# --build 会停止并删除现有容器,然后基于所选 Dockerfile 重建镜像
bash run_jupyterlab.sh --build

镜像选择与依赖策略

  • 默认使用 Dockerfile 构建镜像,不显式锁定版本,构建时由 pip 自动选择并安装较新的依赖版本;
  • 如需使用 scikit-surprise,请使用 Dockerfile_surprise 构建镜像,该环境会显式约束 numpy<2.0.0 以保证兼容性。

如需启用 scikit-surprise(也支持 --surprise=true/false):

# 使用 Dockerfile_surprise 构建镜像并启动
bash run_jupyterlab.sh --surprise

镜像构建逻辑与完整依赖清单见 DockerfileDockerfile_surprise

4.2 本地安装 JupyterLab

如需在本地(非 Docker)安装与使用 JupyterLab,请参考 jupyterlab_installation.md


About

动手学机器学习

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published