使用scikit-learn进行机器学习入门
本视频系列将教你如何使用Python流行的scikit-learn库解决机器学习问题。共有10个视频教程,总时长4.5小时,每个教程都有相应的Jupyter笔记本。
你可以在YouTube上观看整个系列,并使用nbviewer查看所有笔记本。
该系列也作为免费在线课程提供,包括更新的内容、测验和完成证书。
注意: 本仓库中的笔记本已更新至使用Python 3.9.1和scikit-learn 0.23.2。视频中展示的原始笔记本使用的是Python 2.7和scikit-learn 0.16,可从归档分支下载。你可以在这篇博客文章中了解我如何更新代码。
目录
-
- 什么是机器学习?
- 机器学习的两个主要类别是什么?
- 有哪些机器学习的例子?
- 机器学习是如何"工作"的?
-
为机器学习设置Python环境:scikit-learn和Jupyter Notebook (视频, 笔记本
- scikit-learn的优点和缺点是什么?
- 如何安装scikit-learn?
- 如何使用Jupyter Notebook?
- 有哪些学习Python的好资源?
-
使用著名的鸢尾花数据集开始scikit-learn之旅 (视频, 笔记本
- 什么是著名的鸢尾花数据集,它与机器学习有什么关系?
- 如何将鸢尾花数据集加载到scikit-learn中?
- 如何用机器学习术语描述数据集?
- scikit-learn处理数据的四个关键要求是什么?
-
使用scikit-learn训练机器学习模型 (视频, 笔记本
- 什么是K-近邻分类模型?
- scikit-learn中模型训练和预测的四个步骤是什么?
- 如何将这种模式应用到其他机器学习模型?
-
在scikit-learn中比较机器学习模型 (视频, 笔记本
- 如何为我的监督学习任务选择合适的模型?
- 如何为该模型选择最佳调优参数?
- 如何估计我的模型在样本外数据上的可能表现?
-
数据科学流程:pandas, seaborn, scikit-learn (视频, 笔记本
- 如何使用pandas库将数据读入Python?
- 如何使用seaborn库可视化数据?
- 什么是线性回归,它是如何工作的?
- 如何在scikit-learn中训练和解释线性回归模型?
- 回归问题的一些评估指标有哪些?
- 如何选择应该包含在模型中的特征?
-
- 使用训练/测试集分割程序进行模型评估有什么缺点?
- K折交叉验证如何克服这个限制?
- 如何使用交叉验证来选择调优参数、选择模型和选择特征?
- 有哪些可能改进交叉验证的方法?
-
- 如何使用K折交叉验证搜索最佳调优参数?
- 如何提高这个过程的效率?
- 如何同时搜索多个调优参数?
- 在进行实际预测之前,如何处理这些调优参数?
- 如何降低这个过程的计算成本?
-
- 模型评估的目的是什么,有哪些常见的评估程序?
- 分类准确率的用途是什么,它有什么局限性?
- 混淆矩阵如何描述分类器的性能?
- 可以从混淆矩阵中计算出哪些指标?
- 如何通过改变分类阈值来调整分类器性能?
- ROC曲线的目的是什么?
- 曲线下面积(AUC)与分类准确率有何不同?
-
- 为什么应该使用Pipeline?
- 如何使用OneHotEncoder对分类特征进行编码?
- 如何使用ColumnTransformer将OneHotEncoder应用于选定的列?
- 如何构建和交叉验证Pipeline?
- 如何使用Pipeline对新数据进行预测?
- 为什么应该使用scikit-learn(而不是pandas)进行预处理?
额外视频
在2016年PyCon大会上,我教授了一个基于这个视频系列的3小时教程,重点关注基于文本的数据。你可以在YouTube上观看教程视频。
以下是我涵盖的主题:
- scikit-learn中的模型构建(复习)
- 将文本表示为数值数据
- 将基于文本的数据集读入pandas
- 对数据集进行向量化
- 构建和评估模型
- 比较模型
- 深入检查模型以获取更多见解
- 在另一个数据集上练习这个工作流程
- 调整向量化器(讨论)
访问这个GitHub仓库以获取教程笔记本和许多其他推荐资源。