liuyubobobo/Play-with-Machine-Learning-Algorithms

Code of my MOOC Course <Play with Machine Learning Algorithms>. Updated contents and practices are also included. 我在慕课网上的课程《Python3 入门机器学习》示例代码。课程的更多更新内容及辅助练习也将逐步添加进这个代码仓。

Jupyter Notebook

1,290

206 commits

updated Aug 22, 2022

See the code

README

Python3 入门机器学习 - 课程官方代码仓

大家好, 欢迎大家来到我在慕课网上的实战课程《Python3 入门机器学习》的官方代码仓。这个代码仓将不仅仅包含课程的所有源代码,还将发布课程的更新相关内容,勘误信息以及计划的更多可以丰富课程的内容,如更多分享,更多练习,等等等等。大家可以下载、运行、测试、修改。如果你发现了任何bug,或者对课程中的任何内容有意见或建议,欢迎和我联系:)

个人网站:liuyubobobo.com [废弃重整中...]

电子邮件:[email protected]

微博: 刘宇波bobo http://weibo.com/liuyubobobo

知乎: 刘宇波 http://www.zhihu.com/people/liuyubobobo

知乎专栏:是不是很酷 https://zhuanlan.zhihu.com/liuyubobobo

个人公众号:是不是很酷:)

qrcode

推荐一下这门课程的同学 @howie6879 倾情为大家制作的机器学习资源导航检索站:mlhub123,欢迎大家围观使用支持:)传送门:https://www.mlhub123.com/ 大家有更多机器学习领域的开源资源,也可以在这个项目的github页面:howie6879/mlhub123 提issue,给这个项目做贡献:)

mlhub123

课程源码目录

第一章 欢迎来到 Python3 玩转机器学习章节文件夹-
1-1 什么是机器学习--
1-2 课程涵盖的内容和理念--
1-3 课程所使用的主要技术栈--
第二章 机器学习基础章节文件夹-
2-1 机器学习世界的数据--
2-2 机器学习的主要任务--
2-3 监督学习,非监督学习,半监督学习和增强学习--
2-4 批量学习,在线学习,参数学习和非参数学习--
2-5 和机器学习相关的“哲学”思考--
2-6 课程使用环境搭建notebookscript
第三章 Jupyter Notebook, Numpy和Matplotlib章节文件夹-
3-1 Jupyter Notebook基础notebook-
3-2 Jupyter Notebook中的魔法命令notebookscript
3-3 Numpy数据基础notebook-
3-4 创建Numpy数组(和矩阵)notebook-
3-5 Numpy数组(和矩阵)的基本操作notebook-
3-6 Numpy数组(和矩阵)的合并与分割notebook-
3-7 Numpy中的矩阵运算notebook-
3-8 Numpy中的聚合运算notebook-
3-9 Numpy中的arg运算notebook-
3-10 Numpy中的比较和Fancy Indexingnotebook-
3-11 Matplotlib数据可视化基础notebook-
3-12 数据加载和简单的数据探索notebook-
补充代码1: 更多Numpy的操作notebook-
补充代码2: Numpy中的结构数组notebook-
补充代码3: 简单的MNIST数据集数据探索notebook-
第四章 最基础的分类算法-k近邻算法 kNN章节文件夹-
4-1 k近邻算法基础notebook-
4-2 scikit-learn中的机器学习算法封装notebookscript
4-3 训练数据集,测试数据集notebookplayML
4-4 分类准确度notebookplayML
4-5 超参数notebook-
4-6 网格搜索与k近邻算法中更多超参数notebook-
4-7 数据归一化notebook-
4-8 scikit-learn中的ScalernotebookplayML
4-9 更多有关k近邻算法的思考--
补充代码1: scikit-learn中的其他scaler[整理中][敬请期待]
补充代码2: 网格搜索kNN中的不同距离定义[整理中][敬请期待]
补充代码3: 使用我们自己的kNN算法处理手写数字识别问题notebookplayML
补充代码4: 使用我们自己的kNN算法处理MNIST手写识别数据集notebookplayML
第五章 线性回归法章节文件夹
5-1 简单线性回归--
5-2 最小二乘法--
5-3 简单线性回归的实现notebookplayML
5-4 向量化notebookplayML
5-5 衡量线性回归法的指标:MSE,RMSE和MAEnotebookplayML
5-6 最好的衡量线性回归法的指标:R SquarednotebookplayML
5-7 多元线性回归和正规方程解--
5-8 实现多元线性回归notebookplayML
5-9 使用scikit-learn解决回归问题notebookplayML
5-10 线性回归的可解释性和更多思考notebook-
补充代码1: 分类变量的处理[整理中][敬请期待]
补充代码2: scikit-learn中同时处理数字变量和分类变量[整理中][敬请期待]
补充代码3: FeatureUnion的使用[整理中][敬请期待]
第六章 梯度下降法章节文件夹-
6-1 什么是梯度下降法--
6-2 模拟实现梯度下降法notebook-
6-3 线性回归中的梯度下降法--
6-4 实现线性回归中的梯度下降法notebookplayML
6-5 梯度下降法的向量化和数据标准化notebookplayML
6-6 随机梯度下降法notebook-
6-7 scikit-learn中的随机梯度下降法notebookplayML
6-8 如何确定梯度计算的准确性?调试梯度下降法notebook-
6-9 有关梯度下降法的更多深入讨论--
补充代码1: 实现小批量梯度下降法[整理中][敬请期待]
补充代码2: 三种梯度下降法的可视化比较[整理中][敬请期待]
第七章 PCA与梯度上升法章节文件夹-
7-1 什么是PCA--
7-2 使用梯度上升法求解PCA问题--
7-3 求数据的主成分notebook-
7-4 求数据的前n个主成分notebook-
7-5 高维数据映射为低维数据notebookplayML
7-6 scikit-learn中的PCAnotebook-
7-7 试手MNIST数据集notebook-
7-8 使用PCA对数据进行降噪notebook-
7-9 人脸识别与特征脸notebook-
补充代码1: 可视化三维数据的PCA过程notebook-
补充代码2: IPCA[整理中][敬请期待]
补充代码3: 随机化PCA[整理中][敬请期待]
补充代码4: Kernel PCA[整理中][敬请期待]
补充代码5: LLE[整理中][敬请期待]
补充代码6: 更多降维方法[整理中][敬请期待]
第八章 多项式回归与模型泛化章节文件夹-
8-1 什么是多项式回归notebook-
8-2 scikit-learn中的多项式回归与Pipelinenotebook-
8-3 过拟合与欠拟合notebook-
8-4 为什么要有训练数据集与测试数据集notebook-
8-5 学习曲线notebook-
8-6 验证数据集与交叉验证notebook-
8-7 偏差方差平衡--
8-8 模型泛化与岭回归notebook-
8-9 LASSOnotebook-
8-10 L1, L2和弹性网络--
补充代码1: scikit-learn中的学习曲线[整理中][敬请期待]
补充代码2: 更多scikit-learn中的交叉验证[整理中][敬请期待]
补充代码3: scikit-learn中的Elastic Net[整理中][敬请期待]
第九章 逻辑回归章节文件夹-
9-1 什么是逻辑回归notebook-
9-2 逻辑回归的损失函数--
9-3 逻辑回归损失函数的梯度--
9-4 实现逻辑回归算法notebookplayML
9-5 决策边界notebookplayML
9-6 在逻辑回归中使用多项式特征notebookplayML
9-7 scikit-learn中的逻辑回归notebook-
9-8 OvR与OvOnotebook-
补充代码1: kNN的决策边界notebook-
补充代码2: scikit-learn中的LogisticRegressionCVnotebook-
补充代码3: 使用 LogisticRegression 处理 MNIST 数据集notebook-
补充代码4: scikit-learn中随机梯度下降法训练逻辑回归[整理中][敬请期待]
第十章 分类算法的评价章节文件夹-
10-1 准确度的陷阱和混淆矩阵--
10-2 精准率和召回率--
10-3 实现混淆矩阵,精准率和召回率notebook-
10-4 F1 Scorenotebook-
10-5 精准率和召回率的平衡notebook-
10-6 精准率-召回率曲线notebook-
10-7 ROC曲线notebookplayML
10-8 多分类问题中的混淆矩阵notebook-
补充代码1: Precision-Recall曲线的面积[整理中][敬请期待]
补充代码2: 多分类问题下的各项指标[整理中][敬请期待]
第十一章 支撑向量机SVM章节文件夹-
11-1 什么是SVM--
11-2 SVM背后的最优化问题--
11-3 Soft Margin SVM--
11-4 scikit-learn中的SVMnotebook-
11-5 SVM中使用多项式特征和核函数notebook-
11-6 到底什么是核函数--
11-7 什么是RBF核notebook-
11-8 scikit-learn中使用RBF核notebook-
11-9 SVM思想解决回归问题notebook-
补充代码1: SVR调参解决波士顿房价问题[整理中][敬请期待]
补充代码2: 更多SVM核函数[整理中][敬请期待]
补充代码3: 手撕LinearSVC[整理中][敬请期待]
补充代码4: 在PCA中使用Kernel——Kernel PCA[整理中][敬请期待]
第十二章 决策树章节文件夹-
12-1 什么是决策树notebook-
12-2 信息熵notebook-
12-3 使用信息熵寻找最优划分notebook-
12-4 基尼系数notebook-
12-5 CART与决策树中的超参数notebook-
12-6 决策树解决回归问题notebook-
12-7 决策树的局限性notebook-
补充代码1: 决策树看学习曲线notebook-
补充代码2: 决策树看复杂度曲线notebook-
补充代码3: 决策树调参解决波士顿房价问题[整理中][敬请期待]
补充代码4: 手撕决策树[整理中][敬请期待]
第十三章 集成学习和随机森林章节文件夹-
13-1 什么是集成学习notebook-
13-2 Soft Voting Classifiernotebook-
13-3 Bagging 和 Pastingnotebook-
13-4 oob (Out-of-Bag) 和关于Bagging的更多讨论notebook-
13-5 随机森林和 Extra-Treesnotebook-
13-6 Ada Boosting 和 Gradient Boostingnotebook-
13-7 Stacking--
补充代码1: 使用随机森林判断特征重要程度[整理中][敬请期待]
补充代码2: 调参使用Bagging[整理中][敬请期待]
补充代码3: 调参使用RandomForests[整理中][敬请期待]
补充代码4: 调参使用Extra-Trees[整理中][敬请期待]
补充代码5: 调参使用AdaBoost[整理中][敬请期待]
补充代码6: 调参使用Gradient Boosting[整理中][敬请期待]
补充代码7: 手撕Stacking[整理中][敬请期待]
第十四章 结语,大家加油!--
14-1 学习scikit-learn文档, 大家加油!--

课程讲义的PDF版本不在github上提供,大家可以在慕课网上 "下载 -> 查看讲师源码" 中各个章节文件夹下找到。

大家加油!:)

imooc
jupyter-notebooks
machine-learning
machine-learning-algorithms
mooc

liuyubobobo/Play-with-Machine-Learning-Algorithms

Code of my MOOC Course <Play with Machine Learning Algorithms>. Updated contents and practices are also included. 我在慕课网上的课程《Python3 入门机器学习》示例代码。课程的更多更新内容及辅助练习也将逐步添加进这个代码仓。

Jupyter Notebook

1,290

206 commits

updated Aug 22, 2022

See the code

README

Python3 入门机器学习 - 课程官方代码仓

大家好, 欢迎大家来到我在慕课网上的实战课程《Python3 入门机器学习》的官方代码仓。这个代码仓将不仅仅包含课程的所有源代码,还将发布课程的更新相关内容,勘误信息以及计划的更多可以丰富课程的内容,如更多分享,更多练习,等等等等。大家可以下载、运行、测试、修改。如果你发现了任何bug,或者对课程中的任何内容有意见或建议,欢迎和我联系:)

个人网站:liuyubobobo.com [废弃重整中...]

电子邮件:[email protected]

微博: 刘宇波bobo http://weibo.com/liuyubobobo

知乎: 刘宇波 http://www.zhihu.com/people/liuyubobobo

知乎专栏:是不是很酷 https://zhuanlan.zhihu.com/liuyubobobo

个人公众号:是不是很酷:)

qrcode

推荐一下这门课程的同学 @howie6879 倾情为大家制作的机器学习资源导航检索站:mlhub123,欢迎大家围观使用支持:)传送门:https://www.mlhub123.com/ 大家有更多机器学习领域的开源资源,也可以在这个项目的github页面:howie6879/mlhub123 提issue,给这个项目做贡献:)

mlhub123

课程源码目录

第一章 欢迎来到 Python3 玩转机器学习章节文件夹-
1-1 什么是机器学习--
1-2 课程涵盖的内容和理念--
1-3 课程所使用的主要技术栈--
第二章 机器学习基础章节文件夹-
2-1 机器学习世界的数据--
2-2 机器学习的主要任务--
2-3 监督学习,非监督学习,半监督学习和增强学习--
2-4 批量学习,在线学习,参数学习和非参数学习--
2-5 和机器学习相关的“哲学”思考--
2-6 课程使用环境搭建notebookscript
第三章 Jupyter Notebook, Numpy和Matplotlib章节文件夹-
3-1 Jupyter Notebook基础notebook-
3-2 Jupyter Notebook中的魔法命令notebookscript
3-3 Numpy数据基础notebook-
3-4 创建Numpy数组(和矩阵)notebook-
3-5 Numpy数组(和矩阵)的基本操作notebook-
3-6 Numpy数组(和矩阵)的合并与分割notebook-
3-7 Numpy中的矩阵运算notebook-
3-8 Numpy中的聚合运算notebook-
3-9 Numpy中的arg运算notebook-
3-10 Numpy中的比较和Fancy Indexingnotebook-
3-11 Matplotlib数据可视化基础notebook-
3-12 数据加载和简单的数据探索notebook-
补充代码1: 更多Numpy的操作notebook-
补充代码2: Numpy中的结构数组notebook-
补充代码3: 简单的MNIST数据集数据探索notebook-
第四章 最基础的分类算法-k近邻算法 kNN章节文件夹-
4-1 k近邻算法基础notebook-
4-2 scikit-learn中的机器学习算法封装notebookscript
4-3 训练数据集,测试数据集notebookplayML
4-4 分类准确度notebookplayML
4-5 超参数notebook-
4-6 网格搜索与k近邻算法中更多超参数notebook-
4-7 数据归一化notebook-
4-8 scikit-learn中的ScalernotebookplayML
4-9 更多有关k近邻算法的思考--
补充代码1: scikit-learn中的其他scaler[整理中][敬请期待]
补充代码2: 网格搜索kNN中的不同距离定义[整理中][敬请期待]
补充代码3: 使用我们自己的kNN算法处理手写数字识别问题notebookplayML
补充代码4: 使用我们自己的kNN算法处理MNIST手写识别数据集notebookplayML
第五章 线性回归法章节文件夹
5-1 简单线性回归--
5-2 最小二乘法--
5-3 简单线性回归的实现notebookplayML
5-4 向量化notebookplayML
5-5 衡量线性回归法的指标:MSE,RMSE和MAEnotebookplayML
5-6 最好的衡量线性回归法的指标:R SquarednotebookplayML
5-7 多元线性回归和正规方程解--
5-8 实现多元线性回归notebookplayML
5-9 使用scikit-learn解决回归问题notebookplayML
5-10 线性回归的可解释性和更多思考notebook-
补充代码1: 分类变量的处理[整理中][敬请期待]
补充代码2: scikit-learn中同时处理数字变量和分类变量[整理中][敬请期待]
补充代码3: FeatureUnion的使用[整理中][敬请期待]
第六章 梯度下降法章节文件夹-
6-1 什么是梯度下降法--
6-2 模拟实现梯度下降法notebook-
6-3 线性回归中的梯度下降法--
6-4 实现线性回归中的梯度下降法notebookplayML
6-5 梯度下降法的向量化和数据标准化notebookplayML
6-6 随机梯度下降法notebook-
6-7 scikit-learn中的随机梯度下降法notebookplayML
6-8 如何确定梯度计算的准确性?调试梯度下降法notebook-
6-9 有关梯度下降法的更多深入讨论--
补充代码1: 实现小批量梯度下降法[整理中][敬请期待]
补充代码2: 三种梯度下降法的可视化比较[整理中][敬请期待]
第七章 PCA与梯度上升法章节文件夹-
7-1 什么是PCA--
7-2 使用梯度上升法求解PCA问题--
7-3 求数据的主成分notebook-
7-4 求数据的前n个主成分notebook-
7-5 高维数据映射为低维数据notebookplayML
7-6 scikit-learn中的PCAnotebook-
7-7 试手MNIST数据集notebook-
7-8 使用PCA对数据进行降噪notebook-
7-9 人脸识别与特征脸notebook-
补充代码1: 可视化三维数据的PCA过程notebook-
补充代码2: IPCA[整理中][敬请期待]
补充代码3: 随机化PCA[整理中][敬请期待]
补充代码4: Kernel PCA[整理中][敬请期待]
补充代码5: LLE[整理中][敬请期待]
补充代码6: 更多降维方法[整理中][敬请期待]
第八章 多项式回归与模型泛化章节文件夹-
8-1 什么是多项式回归notebook-
8-2 scikit-learn中的多项式回归与Pipelinenotebook-
8-3 过拟合与欠拟合notebook-
8-4 为什么要有训练数据集与测试数据集notebook-
8-5 学习曲线notebook-
8-6 验证数据集与交叉验证notebook-
8-7 偏差方差平衡--
8-8 模型泛化与岭回归notebook-
8-9 LASSOnotebook-
8-10 L1, L2和弹性网络--
补充代码1: scikit-learn中的学习曲线[整理中][敬请期待]
补充代码2: 更多scikit-learn中的交叉验证[整理中][敬请期待]
补充代码3: scikit-learn中的Elastic Net[整理中][敬请期待]
第九章 逻辑回归章节文件夹-
9-1 什么是逻辑回归notebook-
9-2 逻辑回归的损失函数--
9-3 逻辑回归损失函数的梯度--
9-4 实现逻辑回归算法notebookplayML
9-5 决策边界notebookplayML
9-6 在逻辑回归中使用多项式特征notebookplayML
9-7 scikit-learn中的逻辑回归notebook-
9-8 OvR与OvOnotebook-
补充代码1: kNN的决策边界notebook-
补充代码2: scikit-learn中的LogisticRegressionCVnotebook-
补充代码3: 使用 LogisticRegression 处理 MNIST 数据集notebook-
补充代码4: scikit-learn中随机梯度下降法训练逻辑回归[整理中][敬请期待]
第十章 分类算法的评价章节文件夹-
10-1 准确度的陷阱和混淆矩阵--
10-2 精准率和召回率--
10-3 实现混淆矩阵,精准率和召回率notebook-
10-4 F1 Scorenotebook-
10-5 精准率和召回率的平衡notebook-
10-6 精准率-召回率曲线notebook-
10-7 ROC曲线notebookplayML
10-8 多分类问题中的混淆矩阵notebook-
补充代码1: Precision-Recall曲线的面积[整理中][敬请期待]
补充代码2: 多分类问题下的各项指标[整理中][敬请期待]
第十一章 支撑向量机SVM章节文件夹-
11-1 什么是SVM--
11-2 SVM背后的最优化问题--
11-3 Soft Margin SVM--
11-4 scikit-learn中的SVMnotebook-
11-5 SVM中使用多项式特征和核函数notebook-
11-6 到底什么是核函数--
11-7 什么是RBF核notebook-
11-8 scikit-learn中使用RBF核notebook-
11-9 SVM思想解决回归问题notebook-
补充代码1: SVR调参解决波士顿房价问题[整理中][敬请期待]
补充代码2: 更多SVM核函数[整理中][敬请期待]
补充代码3: 手撕LinearSVC[整理中][敬请期待]
补充代码4: 在PCA中使用Kernel——Kernel PCA[整理中][敬请期待]
第十二章 决策树章节文件夹-
12-1 什么是决策树notebook-
12-2 信息熵notebook-
12-3 使用信息熵寻找最优划分notebook-
12-4 基尼系数notebook-
12-5 CART与决策树中的超参数notebook-
12-6 决策树解决回归问题notebook-
12-7 决策树的局限性notebook-
补充代码1: 决策树看学习曲线notebook-
补充代码2: 决策树看复杂度曲线notebook-
补充代码3: 决策树调参解决波士顿房价问题[整理中][敬请期待]
补充代码4: 手撕决策树[整理中][敬请期待]
第十三章 集成学习和随机森林章节文件夹-
13-1 什么是集成学习notebook-
13-2 Soft Voting Classifiernotebook-
13-3 Bagging 和 Pastingnotebook-
13-4 oob (Out-of-Bag) 和关于Bagging的更多讨论notebook-
13-5 随机森林和 Extra-Treesnotebook-
13-6 Ada Boosting 和 Gradient Boostingnotebook-
13-7 Stacking--
补充代码1: 使用随机森林判断特征重要程度[整理中][敬请期待]
补充代码2: 调参使用Bagging[整理中][敬请期待]
补充代码3: 调参使用RandomForests[整理中][敬请期待]
补充代码4: 调参使用Extra-Trees[整理中][敬请期待]
补充代码5: 调参使用AdaBoost[整理中][敬请期待]
补充代码6: 调参使用Gradient Boosting[整理中][敬请期待]
补充代码7: 手撕Stacking[整理中][敬请期待]
第十四章 结语,大家加油!--
14-1 学习scikit-learn文档, 大家加油!--

课程讲义的PDF版本不在github上提供,大家可以在慕课网上 "下载 -> 查看讲师源码" 中各个章节文件夹下找到。

大家加油!:)

imooc
jupyter-notebooks
machine-learning
machine-learning-algorithms
mooc

Significant stargazers

Bobby Wang

10 followers · starred Feb 2023

wudi

33 followers · starred Nov 2019