蛋酱编辑

威斯康辛大学《机器学习导论》2020秋季课程完结,课件、视频资源已开放

对于机器学习领域的初学者来说,这会是很好的入门课程。目前,课程的笔记、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



入门机器学习入门教程威斯康星大学麦迪逊分校
1
相关数据
重采样技术

重采样是指根据一类象元的信息内插出另一类象元信息的过程。在遥感中,重采样是从高分辨率遥感影像中提取出低分辨率影像的过程。常用的重采样方法有最邻近内插法(nearest neighbor interpolation)、双线性内插法(bilinear interpolation)和三次卷积法内插(cubic convolution interpolation)。

深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

欠拟合技术

使用太少参数,以致于不能很好的拟合数据,称为拟合不足(欠拟合)现象

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

时间复杂度技术

在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。这是一个代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是渐近的,亦即考察输入值大小趋近无穷时的情况。例如,如果一个算法对于任何大小为 n (必须比 n0 大)的输入,它至多需要 5n3 + 3n 的时间运行完毕,那么它的渐近时间复杂度是 O(n3)。

剪枝技术

剪枝顾名思义,就是删去一些不重要的节点,来减小计算或搜索的复杂度。剪枝在很多算法中都有很好的应用,如:决策树,神经网络,搜索算法,数据库的设计等。在决策树和神经网络中,剪枝可以有效缓解过拟合问题并减小计算复杂度;在搜索算法中,可以减小搜索范围,提高搜索效率。

数据科学技术

数据科学,又称资料科学,是一门利用数据学习知识的学科,其目标是通过从数据中提取出有价值的部分来生产数据产品。它结合了诸多领域中的理论和技术,包括应用数学、统计、模式识别、机器学习、数据可视化、数据仓库以及高性能计算。数据科学通过运用各种相关的数据来帮助非专业人士理解问题。

梯度提升技术

梯度提升是用于回归和分类问题的机器学习技术,其以弱预测模型(通常为决策树)的集合的形式产生预测模型。 它像其他增强方法一样以阶段式方式构建模型,并且通过允许优化任意可微损失函数来推广它们。

随机森林技术

在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。 Leo Breiman和Adele Cutler发展出推论出随机森林的算法。而"Random Forests"是他们的商标。这个术语是1995年由贝尔实验室的Tin Kam Ho所提出的随机决策森林(random decision forests)而来的。这个方法则是结合Breimans的"Bootstrap aggregating"想法和Ho的"random subspace method" 以建造决策树的集合。

决策边界技术

在具有两类的统计分类问题中,决策边界或决策曲面是一个超曲面,它将底层的向量空间分成两组,每组一个。分类器会将决策边界一侧的所有点分为属于一个类,而另一侧属于另一个类。也即二元分类或多类别分类问题中,模型学到的类别之间的分界线。

集成方法技术

在统计学和机器学习中,集成方法使用多种学习算法来获得比单独使用任何组成学习算法更好的预测性能。

朴素贝叶斯技术

朴素贝叶斯是一种构建分类器的简单方法。该分类器模型会给问题实例分配用特征值表示的类标签,类标签取自有限集合。它不是训练这种分类器的单一算法,而是一系列基于相同原理的算法:所有朴素贝叶斯分类器都假定样本每个特征与其他特征都不相关。举个例子,如果一种水果其具有红,圆,直径大概3英寸等特征,该水果可以被判定为是苹果。尽管这些特征相互依赖或者有些特征由其他特征决定,然而朴素贝叶斯分类器认为这些属性在判定该水果是否为苹果的概率分布上独立的。

监督学习技术

监督式学习(Supervised learning),是机器学习中的一个方法,可以由标记好的训练集中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练集是由一系列的训练范例组成,每个训练范例则由输入对象(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。

过拟合技术

过拟合是指为了得到一致假设而使假设变得过度严格。避免过拟合是分类器设计中的一个核心任务。通常采用增大数据量和测试样本集的方法对分类器性能进行评价。

降维技术

降维算法是将 p+1 个系数的问题简化为 M+1 个系数的问题,其中 M<p。算法执行包括计算变量的 M 个不同线性组合或投射(projection)。然后这 M 个投射作为预测器通过最小二乘法拟合一个线性回归模型。两个主要的方法是主成分回归(principal component regression)和偏最小二乘法(partial least squares)。

线性代数技术

线性代数是数学的一个分支,它的研究对象是向量,向量空间(或称线性空间),线性变换和有限维的线性方程组。向量空间是现代数学的一个重要课题;因而,线性代数被广泛地应用于抽象代数和泛函分析中;通过解析几何,线性代数得以被具体表示。线性代数的理论已被泛化为算子理论。由于科学研究中的非线性模型通常可以被近似为线性模型,使得线性代数被广泛地应用于自然科学和社会科学中。

贝叶斯网络技术

贝叶斯网络(Bayesian network),又称信念网络或是有向无环图模型,是一种概率图型模型。例如,贝叶斯网络可以代表疾病和症状之间的概率关系。 鉴于症状,网络可用于计算各种疾病存在的概率。

交叉验证技术

交叉验证,有时亦称循环估计, 是一种统计学上将数据样本切割成较小子集的实用方法。于是可以先在一个子集上做分析, 而其它子集则用来做后续对此分析的确认及验证。 一开始的子集被称为训练集。而其它的子集则被称为验证集或测试集。交叉验证的目标是定义一个数据集到“测试”的模型在训练阶段,以便减少像过拟合的问题,得到该模型将如何衍生到一个独立的数据集的提示。

信息增益技术

在决策树学习中,信息增益比是信息增益与固有信息的比率。 它被用来通过在选择属性时考虑分支的数量和大小来减少对多值属性的偏见.

强化学习技术

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

贝叶斯学习技术

基于贝叶斯概率定理的学习方法

Jupyter技术

Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。 Jupyter Notebook 的本质是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和 markdown。 用途包括:数据清理和转换,数值模拟,统计建模,机器学习等等 。

聚类技术

将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。“物以类聚,人以群分”,在自然科学和社会科学中,存在着大量的分类问题。聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法。聚类分析起源于分类学,但是聚类不等于分类。聚类与分类的不同在于,聚类所要求划分的类是未知的。聚类分析内容非常丰富,有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等。

推荐文章
暂无评论
暂无评论~