本章要点:
- 机器学习的基本概念
- 三种学习类型和主要术语
- 成功设计一个机器学习系统的基础
- 安装python
1.构建智能机器将数据转化为信息
2.机器学习三种主要类型
- 监督学习
- 标记数据
- 直接反馈
- 预测收益/未来
- 无监督学习
- 无数据标记
- 无反馈
- 发现数据中隐藏的结构
- 强化学习
- 决策过程
- 奖励机制
- 学习系列动作/行为
3.用监督学习做预测
比如做一个垃圾邮件过滤:我们用监督算法训练一个已经分类好的邮件数据集(数据样本被标记为是垃圾邮件或不是垃圾邮件),然后预测一个新的邮件属于哪类?
像这样用监督算法训练明确标记好的数据,也叫分类任务。
3.1分类算法预测分类标签
分类是监督学习的一个字系列,用过往数据预测一个新实例的类标签。类标签是不相等的,无序的值,用来代表类成员。在前面的识别垃圾邮件的例子中,机器学习算法学到一系列规则来识别两类邮件:垃圾邮件和非垃圾邮件。
但是类标签并不一定非要是二分的。监督学习算法可以为预测模型分配任意多个类标签,也叫多分类任务。典型的例子是手写数字识别。
3.2用回归预测未来收益
前面我们学到分类任务/算法为每个实例分配一个无序的系列标签。第二种监督学习几乎是预测未来收益,也叫回归分析。在回归分析中,给定一系列连续的预测变量(解释变量)和响应变量(收益或目标),我们试图发现这些变量间的相关关系以预测未来收益。
4.运用强化学习处理交互问题
在强化学习中,我们的目标是提升系统在对环境发生变化时做出的响应表现。现时环境的信息包括所说的奖励信号,我们可以认为强化学习领域和监督学习领域有些相关之处。
但是在强化学习领域里,反馈并不是一个确定的真实标签或值,而是通过奖励函数来衡量响应表现的措施。
在和环境交互的过程中,系统可以运用强化学习去学习到一系列行为来使奖励最大化,通过探索试错和谨慎规划。
一个流行的强化学习模型就是象棋机。图示如下:
强化学习下还有很多子类。但是最通用的模式是使系统在交互过程中,奖励函数最大化。每个环境传递到系统的信息都包含着正向或负向奖励。奖励可以被定义为是否一个整体目标,如赢或输一局棋。
举个栗子,在一局棋中,每一步的收益可以被认为是环境的不同信息。吃掉一枚对方棋子或或离皇后更进一步可以被认为是正收益。当然,也可能下一步就出现相反的情况。强化学习,就是考虑通过一系列的移动使得即时奖励最大化。
但是注意:强化学习已超过本书的范围,本书主要集中讲解分类,回归,和聚类。
5.运用无监督学习发现隐藏的结构
在监督学习中,我们事先就已经知道了正确答案;在强化学习中,我们定义了行为的奖励函数。在无监督学习中,我们面对的是没有数据标签可能也没有特定结构的数据。运用无监督学习,我们不需要特定的输出变量或奖励函数就能探索出数据的结构,并将其转化为有意义的信息。
5.1用聚类发现子群
聚类是一种数据分析方法,可以让我们在事先完全不知道群组详情的情况下,将一大堆数据组织为各个有意义的群(或者称类)(聚类)。每个聚类定义了一个群对象的内部成员都在某个维度上具有相似性,且和外部的其他群具有不相似性,这也是为什么聚类被称为无监督学习。聚类是结构化数据,探索数据间有意义的联系的好方法。比如通过发现消费者的购买组合间的联系而改变商场商品排布。
5.2数据压缩:降维
无监督学习的另一块领域,是降维。经常我们处理的高维数据会对有限的内存和计算机运算性能提出较大挑战。无监督降维是一种通用的特征预处理方法,用来清洗数据中的“噪声”,当然这也会降低一些算法的预测表现。降维希望达到在保留最多的相关特征时使数据维度尽量小。
6.基本术语和标记符号
- 样本:samples, instances, observations,每一行就是一个样本
- 特征:attributes, measurements, dimensions,除类标签外的列
- 类标签:targets
接下来用代数符号来更好的表示和解释这些术语,接下来的章节中我们会运用矩阵和向量符号指代数据。
鸢尾花数据集包括150个样本和四个特征,所以可以被写为一个 150× 4150 \times\ 4150× 4 的矩阵X∈R150× 4X \in R^{150 \times\ 4}X∈R150× 4:
[x1(1)x2(2)x3(1)x4(1)x1(2)x2(2)x3(2)x4(2)::::x1(150)x2(150)x3(150)x4(150)]
\begin{bmatrix} x_{1}^{(1)} & x_{2}^{(2)} & x_{3}^{(1)} & x_{4}^{(1)} \\ x_{1}^{(2)} & x_{2}^{(2)} & x_{3}^{(2)} & x_{4}^{(2)} \\ : & : & : & : \\ x_{1}^{(150)} & x_{2}^{(150)} & x_{3}^{(150)} & x_{4}^{(150)} \end{bmatrix} \quad
⎣⎢⎢⎢⎡x1(1)x1(2):x1(150)x2(2)x2(2):x2(150)x3(1)x3(2):x3(150)x4(1)x4(2):x4(150)⎦⎥⎥⎥⎤
在本书的其他部分,如果没有特别说明,我们都会用下标iii表示第iii个训练样本,用下标jjj表示训练集的第jjj维度。
我们用小写黑体加粗表示向量x∈Rn× 1\bm x \in R^{\bm n \times\ 1}x∈Rn× 1,用大写黑体加粗表示向量X∈Rn× m\bm X \in R^{\bm n \times\ \bm m}X∈Rn× m,斜体表示向量或矩阵中的单个元素(x(i)x^{(i)}x(i),或 x(m)(n)x_{(m)}^{(n)}x(m)(n))。
特征矩阵的每一行一个鲜花的样本,可以被写为一行四维向量xi∈R1× 4\bm x^{i} \in R^{1 \times\ 4}xi∈R1× 4:
x(i)=[x1(i)x2(i)x3(i)x4(i)]
\bm x^{(i)} = \begin{bmatrix} x_{1}^{(i)} & x_{2}^{(i)} & x_{3}^{(i)} & x_{4}^{(i)} \end{bmatrix}
x(i)=[x1(i)x2(i)x3(i)x4(i)]
每个特征为度都是一个150维的列向量xj∈R150× 1\bm x_{j} \in R^{150 \times\ 1}xj∈R150× 1,比如:
xj=[xj(i)xj(2):xj(150)]
\bm x_{j} = \begin{bmatrix} x_{j}^{(i)} \\x_{j}^{(2)} \\ :\\ x_{j}^{(150)}\end{bmatrix}
xj=⎣⎢⎢⎢⎡xj(i)xj(2):xj(150)⎦⎥⎥⎥⎤
类似的,我们把目标变量储存为一个150维的列向量:
y=[y(1)…y(150)](y∈Setosa,Versicolor,Virginica)
\bm y = \begin{bmatrix} y^{(1)} \\ … \\ y^{(150)} \end{bmatrix} (y \in {Setosa, Versicolor, Virginica})
y=⎣⎡y(1)…y(150)⎦⎤(y∈Setosa,Versicolor,Virginica)