对于机器学习领域的初学者来说,这会是很好的入门课程。目前,课程的笔记、PPT 和视频正在陆续发布中。
2020 年就这么悄无声息地走完了,想必大多数人,尤其是在校学生唯一的感觉就是:「又是毫无学术进展的一年。」
别慌,只要马上开始学习,什么时候都不算晚。
近日,威斯康辛大学麦迪逊分校助理教授 Sebastian Raschka 在推特上宣布了威斯康辛大学《机器学习导论》2020 秋季课程的完结:「教授两个班级和 230 个学生是相当不错的体验,对于那些感兴趣的人,我整理了一页记录以供参考。」
课程笔记主页:https://sebastianraschka.com/resources/ml-lectures-1.html(持续更新中)
Sebastian Raschka 是威斯康星大学麦迪逊分校的统计学助理教授,致力于机器学习和深度学习研究。他最近的一些研究方法已应用于生物识别领域,解决面部图像隐私问题,其他的研究重点包括开发与机器学习中的模型评估、对抗攻击和 AutoML 有关方法和应用程序。他也是《Python机器学习》一书的作者,曾被科技博客 Analytics Vidhya 评为 GitHub 上具影响力的数据科学家之一。
对想要学习这门课程的学生,Sebastian Raschka 教授的建议是:你至少要熟悉基本编程知识并完成了编程入门课程。
课程总共由七个部分组成:
第一部分:简介
L01:什么是机器学习
-
1.1 课程概述:「Stat 451:机器学习导论(FS 2020)」的简介
-
1.2 什么是机器学习:机器学习的定义,以及机器学习与编程的关系
-
1.3机器学习的类别:讨论了机器学习的三大类,监督学习、无监督学习和强化学习
-
1.4 符号:介绍了将在本课程中使用的机器学习形式和符号
-
1.5 ML 应用:走向机器学习程序的主要步骤,以及机器学习组件的分类
-
1.6 ML 动力:关于学习机器学习的不同观点和动力
L02:最近邻算法
-
2.1 最近邻算法:介绍最近邻算法,概览最近邻算法的应用和最新进展
-
2.2 最近邻决策边界:包括 1 – 最近邻决策边界背后的概念,此外还列出了一些常见的距离度量
-
2.3 K – 最近邻算法:将 1 – 最近邻概念扩展到 k – 最近邻算法,进行分类和回归
-
2.4 K – 最近邻的 Big O:K – 最近邻简单实现的 Big O 运行时间复杂度
-
2.5 K – 最近邻的提升:总结一些提升 K – 最近邻计算性能和预测效率的常见技巧
-
2.6 Python 中的 K – 最近邻:利用 scikit-learn,在 Python 中使用 K – 最近邻。这节课中使用的Jupyter笔记本从这里获取:https://github.com/rasbt/stat451-machine-learning-fs20/blob/master/L02/code/02_knn_demo.ipynb
第二部分:计算基础
L03: (可选)Python 编程
-
3.1 Python 概述:这节课将讨论 Python 的用法,进行 C 和 Python 的快速演示(也许并不是很有吸引力)
-
3.2 Python 设置:演示如何在 MacOS 上使用 Miniconda 安装 Python,另外提供了有关 conda 软件包管理器的简短演示
-
3.3 运行 Python 代码:演示运行 Python 代码的不同方式,包括 REPL、IPython、.py 脚本和 Visual Studio Code
L04: Python 中的科学计算
-
4.1 NumPy 基础知识介绍
-
4.2 NumPy 数组的创建及索引
-
4.3 NumPy 数组的数学运算和通用函数
-
4.4 NumPy 的广播机制
-
4.5 NumPy 高级索引–内存视图和副本
-
4.6 NumPy 随机数生成器
-
4.7 重塑 NumPy 数组
-
4.8 NumPy 比较运算符和掩码
-
4.9 NumPy线性代数基础
-
4.10 Matplotlib
L05: 使用 Scikit-Learn 进行机器学习
-
5.1 从表格文本文件读取数据集
-
5.2 基本数据处理
-
5.3 面向对象的编程和 Python 类
-
5.4 Scikit-Learn 简介
-
5.5 Scikit-Learn Transformer API
-
5.6 Scikit-Learn 管道
第三部分:基于树的方法
L06:决策树
-
6.1 决策树简介
-
6.2 递归算法和 Big-O
-
6.3 决策树的类型
-
6.4 分割标准
-
6.5 基尼系数 & 熵与误分类误差:阐释在 CART 决策树的信息增益方程式中,为什么要使用熵(或基尼)代替误分类误差作为杂质度量
-
6.6 改进和处理过拟合:将决策树的一些问题(例如过拟合)融合在一起并讨论改进方法,例如增益比、预剪枝和后剪枝
-
6.7 代码示例:如何使用 scikit-learn 训练和可视化决策树的快速演示
L07:集成方法
-
7.1集成方法简介:讨论了包括绝对多数投票法(majority voting)、套袋法(bagging)、随机森林(random forests)、堆栈(stacking)、梯度提升(gradient boosting)等最受欢迎、使用最广泛的机器学习方法。
-
7.2 绝对多数投票法:讨论最基本的模型集成之一「绝对多数投票」,通过示例解释为什么它比使用单个分类器更好
-
7.3 套袋法:介绍了偏差 – 方差权衡和分解,以了解套袋法的用途
-
7.4Boosting 和 AdaBoost:讨论 boosting 的概念,然后介绍了 AdaBoost,该方法将弱分类器(比如决策树桩)提升为强分类器
-
7.5梯度提升:在 AdaBoost 使用权重作为训练示例来提升下一轮树的情况下,梯度提升使用损失的梯度来计算残差以适应序列中的下一棵树,视频中提到的论文地址:https://dl.acm.org/doi/pdf/10.1145/2939672.2939785
-
7.6随机森林:讲解随机森林及其与套袋法之间的关系,以及为什么随机森林在实践中的效果优于套袋法
-
7.7 堆栈:介绍 Wolpert 堆栈算法,并展示如何在 mlxtend 和 scikit-learn 中使用堆栈分类器
第四部分:模型评估
模型评估分为五个小节:
-
L08:基础部分,欠拟合和过拟合
-
L09:重采样方法
-
L10:交叉验证
-
L11:统计测试和算法选择
-
L12:评估指标
在后续即将更新的课程中,Sebastian Raschka 将对「降维和无监督学习」、「贝叶斯学习」内容进一步介绍,课程资料也会更新,包括讲座视频、PPT 链接等。
待更新的内容包括:
第五章:降维和无监督学习
-
L13 – 功能选择
-
L14 – 特征提取
-
L15 -聚类
第六章:贝叶斯学习
-
L16 – 贝叶斯方法简介
-
L17 – 贝叶斯最佳分类器
-
L18 -朴素贝叶斯分类器
-
L19 -贝叶斯网络
这些课程资料在 GitHub 平台也会同步更新,项目地址:https://github.com/rasbt/stat451-machine-learning-fs20