第一章 绪论
01 机器学习概述
机器学习与人工智能、深度学习的关系 *
人工智能:机器展示的人类智能
机器学习:计算机利用已有的数据(经验),得出了某种模型,并利用此模型预测未来的一种方法。
深度学习:实现机器学习的一种技术。
机器学习可以解决什么问题 *
- 给定数据的预测问题
数据清洗、特征选择
确定算法模型、参数优化
结果预测
- 不能解决什么问题
大数据存储、并行计算
做一个机器人
02 机器学习的类型
监督学习 *
- 分类(classification)标签离散
- 回归(regression、prediction)标签连续
无监督学习 *
- 聚类(clustering)
- 降维(dimensionality reduction)
强化学习
用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。
03 机器学习的背景知识
04 机器学习的开发流程
机器学习的一般步骤 *
数据搜集 -> 数据清洗 -> 特征工程 -> 数据建模
数据决定一切 *
成功的机器学习应用不是拥有最好的算法,而是拥有最多的数据。
第二章 线性回归
01 线性回归
监督学习分为回归和分类。
线性回归 *(linear regression)是一种通过属性的线性组合来进行预测的线性模型,其目的是找到一条直线或者一个平面或者更高维的超平面,使得预测值与真实值直接的误差最小化。
最小二乘法 (作用)*
最小二乘参数估计得到的线性回归模型满足 均方误差最小
02 梯度下降
梯度下降法 *:沿梯度反方向更新参数不断地逼近极小值的方法。
梯度是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着梯度方向变化最快,变化率最大。
梯度下降的三种形式 *
批量梯度下降(BGD):梯度下降的每一步中,都用到了所有的训练样本。
随机梯度下降(SGD):梯度下降的每一步中,用到一个样本,在每一次计算之后便更新参数 ,而不需要首先将所有的训练集求和。
小批量梯度下降(MBGD):梯度下降的每一步中,用到了一定批量的训练样本。
梯度下降与最小二乘法比较 *
梯度下降:需要选择学习率α,需要多次迭代,当特征数量n大时也能较好适用,适用于各种类型的模型。
最小二乘法:不需要选择学习率α,一次计算得出,需要计算(X^T X)^(-1),如果特征数量n较大则运算代价大,因为矩阵逆的计算时间复杂度为O(n^3),通常来说当n小于10000时还是可以接受的,只适用于线性模型,不适合逻辑回归模型等其他模型。
数据归一化/标准化 *
为什么要归一化/标准化
-
提升模型精度:不同维度之间的特征在数值上有一定比较性,可以大大提高分类器的准确性。
-
加速模型收敛:最优解的寻优过程明显会变得平缓,更容易正确的收敛到最优解。
归一化(最大-最小规范化)
数据归一化的目的是使得各特征对目标变量的影响一致,会将特征数据进行伸缩变化,所以数据归一化是会改变特征数据分布的。
Z-Score标准化
数据标准化为了不同特征之间具备可比性,经过标准化变换之后的特征数据分布没有发生改变。就是当数据特征取值范围或单位差异较大时,最好是做一下标准化处理。
03 正则化
过拟合的处理 **
1.获得更多的训练数据
2.降维
3.正则化
4.集成学习方法
欠拟合的处理 **
1.添加新特征
2.增加模型复杂度
3.减小正则化函数
正则化 *
L1正则化是指在损失函数中加入权值向量w的绝对值之和,L1的功能是使权重稀疏。
在损失函数中加入权值向量w的平方和,L2的功能是使权重平滑。
04 回归的评价指标 *
均方误差(MSE)
均方根误差(RMSE)
平均绝对误差(MAE)
实际应用中,从计算机求解梯度的复杂度来说,MSE更优。从离群点角度来看,如果离群点是实际数据或者重要数据,应该使用MSE,如果离群点表述数据损坏或者错误采样,应该使用MAE。
R方 越接近于1,说明模型拟合得越好。
第三章 模型选择与评估
01 过拟合
泛化误差与经验误差 *
泛化误差:在未来样本上的误差
经验误差:在训练集上的误差,也叫“训练误差”
泛化误差越小越好,经验误差不是,因为可能出现过拟合。
02 模型选择
评估方法*(用于获得测试结果)
测试集应该与训练集“互斥”
常见方法:
留出法(hold-out)**
将拥有的数据集分为训练集和测试集。
注意:
- 保持数据分布一致性(例如:分层采样)
- 多次重复划分(例如:100次随机划分)
- 测试集不能太大,不能太小(例如:1/5 ~ 1/3)
交叉验证法(cross validation)**
自助法(bootstrap)
基于“自助采样”,也叫“有放回采样”、“可重复采样”。
“调参”与最终模型 *
算法的参数:一般由人工设定,也称“超参数”。
模型的参数:一般由学习确定。
参数调得好不好对性能往往对最终性能有关键影响。
算法参数选定后,要用“训练集+验证集”重新训练最终模型。
性能度量 *
性能度量是衡量模型泛化能力的评价标准,反映了任务需求。
采用不同的性能度量往往会导致不同的评判结果。
什么样的模型是“好”的,不仅取决于算法和数据,还取决于任务需求。
回归任务常用均方误差。
查准率 vs 查全率 *
比较检验
统计假设检验为学习器性能提供了重要依据。
两学习器比较
- 交叉验证 t 检验(基于成对 t 检验)
- McNemar 检验(基于列联表,卡方检验)
多学习器比较
- Friedman + Nemenyi
- Friedman检验(基于序值,F检验;判断“是否都相同”)
- Nemenyi后续检验(基于序值,进一步判断两两差别)
03 偏差方差分解
偏差:反映了模型本身的拟合能力。
方差:反映了数据扰动所造成的影响。
第四章 对数几率回归
01 分类问题
监督学习的最主要类型--分类(标签离散)
二分类:只需分类一次,只有两类
多分类:我们先定义其中一类为类型1(正类),其余数据为负类(rest);接下来去掉类型1数据,剩余部分再次进行二分类,分成类型2和负类;如果有n类,那就需要分类n-1次。
02 广义线性模型
03 对数几率回归
二分类任务*
对率回归 *
04 对数几率回归求解
第五章 决策树
01 决策树原理
决策树模型 *
决策树基于“树”结构进行决策。
- 每个“内部结点”对应某个属性上的“测试”
- 每个分支对应于该测试的一种可能结果(即该属性的某个取值)
- 每个“叶结点”对应一个“预测结果”
学习过程:通过对训练样本的分析来确定“划分属性”(即内部结点所对应的属性)。
预测过程:将测试示例从根节点开始,沿着划分属性所构成的“判定测试序列”下行,直到叶结点。
决策树原理 *
决策树的特点 *
优点:
- 推理过程容易理解,计算简单,可解释性强。
- 比较适合处理有缺失属性的样本。
- 可自动忽略目标变量没有贡献的属性变量,也为判断属性变量的重要性、减少变量的数目提供参考。
缺点:
- 容易造成过拟合,需要采用剪枝操作。
- 忽略了数据之间的相关性。
- 对于各类别样本数量不一致的数据,信息增益会偏向于那些更多数值的特征。
基本流程
自根至叶的递归过程
在每个中间结点寻找一个“划分”属性
三种停止条件:
- 当前结点包含的样本全属于同一类别,无需划分
- 当前属性集为空,或是所有样本在所有属性上取值相同,无法划分
- 当前结点包含的样本集合为空,不能划分
02 决策树模型
决策树模型(三个经典模型)*
ID3算法 ***
计算出所有属性的信息增益,信息增益最大的属性被选为划分属性,然后重新计算剩余属性的信息增益,再进行比较,以此类推,直到满足终止条件。
C4.5算法
CART算法
03 决策树剪枝
划分选择 vs 剪枝 **
划分选择的各种准则虽然对决策树的尺寸有较大影响,但对泛化性能的影响很有限。
例如信息增益与基尼指数产生的结果,仅在约2%的情况下不同。
剪枝方法和程度对决策树泛化性能的影响更为显著。
在数据带噪时甚至可能将泛化性能提升25%。
剪枝(pruning)是决策树对付“过拟合”的主要手段。
剪枝 **
为了尽可能正确分类训练样本,有可能造成分支过多导致过拟合,可通过主动去掉一些分支来降低过拟合的风险。
基本策略
- 预剪枝(pre-pruning):提前终止某些分支的生长。
- 后剪枝(post-pruning):生成一棵完全树,再“回头”剪枝。
使用留出法
预剪枝 vs 后剪枝
第六章 神经网络
01 神经网络概述
激活函数 *
感知机 **
(图中有错,“与”的阈值不是0,而是2;“或”的表达式不是“-2”,而是“-0.5”)
感知机可以通过对给定训练数据集的学习来得到权重和阈值。
若感知机对训练样例的预测正确,则感知机不发烧变化;否则根据错误程度进行权重的调整。
多层感知机
神经网络通过将线性分类器进行组合叠加,能够较好地进行非线性分类。
多层前馈网络结构 *
多层前馈网络具有的强大表示能力称为神经网络的_万有逼近_性 (4个字)。
02 BP算法 *
BP是一个迭代学习算法,在迭代的每一轮中使用广义感知机学习规则。
BP算法基于梯度下降策略,以目标的负梯度方向对参数进行调整。
标准BP算法vs累积BP算法 *
缓解过拟合 *
主要策略:
- 早停
- 若训练误差连续a轮的变化小于b,则停止训练
- 使用验证集:若训练误差降低、验证误差升高,则停止训练
- 正则化
- 在误差目标函数中增加一项描述网络复杂度
全局最小vs局部最小
神经网络的训练过程可看作一个参数寻优的过程:在参数空间中,寻找一组最优参数使得误差最小
存在多个“局部最小”,只有一个“全局最小”
03 深度学习简介
卷积作为特征提取器。
常用诀窍 *
第七章 支持向量机
01 机器向量机概述
线性分类器:在样本空间中寻找一个超平面,将不同类别的样本分开。
正中间的超平面,鲁棒性最好,泛化能力最强。
间隔与支持向量 *
一般来说,一个点距离分离超平面的远近可以表示分类预测的确信程度。在超平面w ∗ x + b = 0 确定的情况下,∣ w ∗ x + b ∣能够相对的表示点x距离超平面的远近。
而w ∗ x + b 的符号与类标记y的符号是否一致能够表示分类是否正确。所以可用y ( w ∗ x + b ) 来表示分类的正确性及确信度,这就是函数间隔(functional margin)的概念。
02 硬间隔支持向量机
支持向量机基本型 *
使用拉格朗日乘子法可得到其“对偶问题”:
实际任务中,求解式(4)会造成很大的开销,SMO(Sequential Minimal Optimization) 是一种求解的高效算法。
SMO 算法是支持向量机学习的一种快速算法,其特点是不断地将原二次规划问题分解为只有两个变量的二次规划子问题,并对子问题进行解析求解,直到所有变量满足 KKT 条件为止。
03 核函数
特征空间映射 *
将样本从原始空间映射到一个更高维的特征空间,使样本在这个特征空间内线性可分。
如果原始空间是有限维,那么一定存在一个高维特征空间使样本可分。
04 软间隔支持向量机
现实中很难确定合适的核函数,使训练样本在特征空间中线性可分,即使貌似线性可分,也很难断定是否因为过拟合造成的。
引入软间隔,允许在一些样本上不满足约束。
采用替代损失函数,一般是0/1损失函数的上界。
第八章 贝叶斯分类器
01 贝叶斯方法
贝叶斯决策论 *
是在概率框架下实施决策的基本方法。在分类问题情况下,在所有相关概率都已知的理想情形下,贝叶斯决策考虑如何基于这些概率和误判损失来选择最优的类别标记。
贝叶斯方法-背景知识 *
贝叶斯分类:贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。
先验概率:根据以往经验和分析得到的概率。我们用P(Y)来代表在没有训练数据前假设Y拥有的初始概率。
后验概率:根据已经发生的事件来分析得到的概率。以P(Y|X)代表假设X 成立的情下观察到Y数据的概率,因为它反映了在看到训练数据X后Y成立的置信度。
联合概率:联合概率是指在多元的概率分布中多个随机变量分别满足各自条件的概率。X与Y的联合概率表示为P(X,Y)、 P(XY) 或P(X∩Y) 。
贝叶斯定理 **
02 极大似然估计
03 朴素贝叶斯分类器 ***
04 半朴素贝叶斯分类器 *
第九章 聚类1
01 聚类概述
聚类(clustering) 在“无监督学习”任务重研究最多、应用最广。
目标:将数据样本划分为若干个通常不想交的“簇”(cluster)。既可以作为一个单独过程(用于找寻数据内在的分布结构),也可作为分类等其他学习任务的前驱过程。
聚类任务 **
02 性能度量 *
聚类性能度量亦称为聚类“有效性指标”(validity index)。
直观来讲:我们希望“物以类聚”,即同一簇的样本尽可能彼此相似,不同簇的样本尽可能不同。
聚类结果的“簇内相似度”(intra-cluster similarity)高,且“簇间相似度”(inter-cluster similarity)低。
聚类性能度量:
外部指标:将聚类结果与某个“参考模型”(reference model)进行比较。
Jaccard系数、FM指数、Rand指数 在[0,1]区间内,越大越好
内部指标:直接考察聚类结果而不用任何参考模型。
DB指数 越小越好
Dunn指数 越大越好
03 距离计算
相似度度量 *
聚类的核心概念是相似度或距离,有多种相似度或距离定义。因为相似度直接影响聚类的结果,所以其选择是聚类的根本问题。
距离计算 *
属性介绍
- 连续属性 (continuous attribute) 在定义域上有无穷多个可能的取值
- 离散属性 (categorical attribute) 在定义域上是有限个可能的取值
- 有序属性 (ordinal attribute) 定义域为{1,2,3}的离散属性,“1”与“2”比较接近、与“3”比较远,称为“有序属性”
- 无序属性 (non-ordinal attribute) 定义域为{飞机,火车,轮船}的离散属性,不能直接在属性值上进行计算,称为“无序属性”
聚类的好坏不存在绝对标准。
04 K-means
原型聚类 ***
原型聚类也称为“基于原型的聚类” (prototype-based clustering),此类算法假设聚类结构能通过一组原型刻画。
算法过程:通常情况下,算法先对原型进行初始化,再对原型进行迭代更新求解。
K-means聚类
算法流程:
首先,初始化称为簇中心的任意点。初始化时,必须注意簇的中心必须小于训练数据点的数目。
(因为该算法是一种迭代算法,接下来的两个步骤是迭代执行的。)
初始化后,遍历所有数据点,计算所有簇中心与数据点之间的距离。现在,这些簇将根据与中心的最小距离而形成。
第三步:移动簇中心,因为上面步骤中形成的簇没有优化,所以需要形成优化的簇。为此,我们需要迭代地将簇中心移动到一个新位置。取一个簇的数据点,计算它们的平均值,然后将该簇的中心移动到这个新位置。对所有其他簇重复相同的步骤。
第十章 聚类2
01 原型聚类
常见聚类方法 **
02 密度聚类 *
密度聚类的定义:密度聚类也称为“基于密度的聚类” (density-based clustering)。此类算法假设聚类结构能通过样本分布的紧密程度来确定。
通常情况下,密度聚类算法从样本密度的角度来考察样本之间的可连接性,并基于可连接样本不断扩展聚类簇来获得最终的聚类结果。
经典算法:DBSCAN *
密度聚类 *
03 层次聚类 ***
层次聚类试图在不同层次对数据集进行划分,从而形成树形的聚类结构。数据集划分既可采用“自底向上”的聚合策略,也可采用“自顶向下”的分拆策略。
AGNES算法(自底向上的层次聚类算法)
首先,将样本中的每一个样本看做一个初始聚类簇,然后在算法运行的每一步中找出距离最近的两个聚类簇进行合并,该过程不断重复,直到达到预设的聚类簇的个数。
两个聚类簇之间距离的度量方式:最小距离、最大距离、平均距离
第十一章 降维
01 KNN分类器
k近邻学习 *
k近邻学习是一种常用的监督学习方法:
确定训练样本,以及某种距离度量。
对于某个给定的测试样本,找到训练集中距离最近的k个样本,
- 对于分类问题使用“投票法”获得预测结果
- 对于回归问题使用“平均法”获得预测结果
- 基于距离远近进行加权平均或加权投票,距离越近的样本权重越大
- 投票法:选择这k个样本中出现最多的类别标记作为预测结果
- 平均法:将这k个样本的实值输出标记的平均值作为预测结果
k近邻分类示意图 **
懒惰学习 与 急切学习 *
k近邻学习没有显示的训练过程,属于“懒惰学习”。
懒惰学习:此类学习技术在训练阶段仅仅是把样本保存起来,训练时间开销为零,待到测试样本后再进行处理。
急切学习:在训练阶段就对样本进行学习处理的方法。
02 维数灾难 *
有的时候,维度太大也会导致机器学习性能的下降,并不是特征维度越大越好,模型的性能会随着特征的增加先上升后下降。
降维 *
为什么要降维 *
- 高维数据增加了运算的难度
- 高维使得学习算法的泛化能力变弱(例如,在最近邻分类器中,样本复杂度随着维度成指数增长),维度越高,算法的搜索难度和成本就越大。
- 降维能够增加数据的可读性,利于发掘数据的有意义的结构
降维的主要作用 *
1.减少冗余特征,降低数据维度
2.数据可视化
降维的优缺点 *
降维的优点:
- 通过减少特征的维数,数据集存储所需的空间也相应减少,减少了特征维数所需的计算训练时间;
- 数据集特征的降维有助于快速可视化数据;
- 通过处理多重共线性消除冗余特征。
降维的缺点:
- 由于降维可能会丢失一些数据;
- 在主成分分析(PCA)降维技术中,有时需要考虑多少主成分是难以确定的,往往使用经验法则
03 主成分分析 *
第十二章 特征选择
01 特征选择概述
特征 *
特征:描述物体的属性。
特征的分类
相关特征:对当前学习任务有用的属性
无关特征:与当前学习任务无关的属性
冗余特征:其所包含信息能由其他特征推演出来
特征选择 *
从给定的特征集合中选出任务相关特征子集。
必须确保不丢失重要特性。
原因:
减轻维度灾难:在少量属性上构建模型
降低学习难度:留下关键信息
特征选择的一般方法 *
遍历所有可能的子集(不可行)
可行方法 :
子集搜索 *
用贪心策略选择包含重要信息的特征子集
前向搜索:逐渐增加相关特征
后向搜索:从完整的特征集合开始,逐渐减少特征
双向搜索:每一轮逐渐增加相关特征,同时减少无关特征
前向搜索 *
最优子集初始为空集,特征集合初始时包括所有给定特征。
子集评价
- 特征子集确定了对数据集的一个划分
- 样本标记对应着对数据集的真实划分
02 特征选择类型
常见的特征选择方法 *
将特征子集搜索机制与子集评价机制相结合,即可得到特征选择方法。
过滤式:
- 先用特征选择过程过滤原始数据,再用过滤后的特征来训练模型;
- 特征选择过程与后续学习器无关
包裹式:
- 包裹式选择直接把最终将要使用的学习器的性能作为特征子集的评价准则
- 包裹式特征选择的目的就是为给定学习器选择最有利于其性能、“量身定做”的特征子集
- 包裹式选择方法直接针对给定学习器进行优化,因此从最终学习器性能来看,包裹式特征选择比过滤式特征选择更好
- 包裹式特征选择过程中需多次训练学习器,计算开销通常比过滤式特征选择大得多
嵌入式:
- 嵌入式特征选择是将特征选择过程与学习器训练过程融为一体,两者在同一个优化过程中完成,在学习器训练过程中自动地进行特征选择
03 稀疏表示
将数据集考虑成一个矩阵,每行对应一个样本,每列对应一个特征
矩阵中有很多零元素,且非整行整列出现
稀疏表达的优势:
文本数据线性可分
存储高效
字典学习
为普通稠密表达的样本找到合适的字典,将样本转化为稀疏表示,这一过程称为字典学习