一、绪论
机器学习术语
假设空间 p5
监督学习(supervised learning)的任务是学习一个模型,使模型能够对任意给定的输入,对其相应的输出做出一个好的预测。模型属于由输入空间到输出空间的映射的集合,这个集合就是假设空间(hypothesis space)。
【机器学习】假设空间与版本空间-CSDN博客
二、模型评估与选择
1、经验误差与过拟合
2、评估方法
2.1、留出法
2.2、交叉验证法
2.3、自助法
2.4、验证集
训练集(Training Set):用于训练模型。
验证集(Validation Set):用于调整和选择模型。
测试集(Test Set):用于评估最终的模型。
3、性能度量
3.1、错误率与精度
3.2、查准率与查全率(准确率与召回率)
以检测核酸为例:
评价指标:
F1 Score
3.3、ROC曲线
3.4、方差与偏差
偏差:描述的是预测值(估计值)的期望与真实值之间的差距。偏差越大,越偏离真实数据。
方差:描述的是预测值的变化范围,离散程度,也就是离其期望值的距离。方差越大,数据的分布越分散。
偏差度量了学习算法期望预测与真实结果的偏离程度;即刻画了学习算法本身的拟合能力;
方差度量了同样大小训练集的变动所导致的学习性能的变化;即刻画了数据扰动所造成的影响;
噪声表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界;即刻画了学习问题本身的难度。
泛化误差=方差➕偏差➕噪声
三、线性模型
1、线性回归模型
线性回归、多项式回归多用于预测,逻辑回归多用于分类。
https://katya.blog.csdn.net/article/details/135046372?ydreferer=aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzE4NzE0Ny9jYXRlZ29yeV8xMjQ4NDI5Ni5odG1sP3NwbT0xMDAxLjIwMTQuMzAwMS41NDgy
KNN算法:大老粗
非参数模型,计算量大,好在数据无假设
线性算法:头脑敏锐
可解释性好,建模迅速,线性分布的假设
2、线性判别分析 LDA
类内散度矩阵Sw 类间散度矩阵Sb。
3、多分类学习
OVO(One vs One )Cn2个分类器
OVR (One vs Rest ) n个分类器
纠错输出码 距离最小。
4、类别不均衡问题
类别不平衡就是指分类任务中不同类别的训练样例数目差别很大的情况。
策略 —— 再缩放(再平衡)。
再缩放的思想虽简单,但实际操作却并不平凡,主要因为“训练集是真实样本总体的无偏采样”这个假设往往并不成立,也就是说,我们未必能有效地基于训练集观测几率来推断出真实几率。
现有技术大体上有三类做法:
第一类是直接对训练集里的反类样例进行“欠采样”(undersampling),即去除一些反例使得正、反例数目接近,然后再进行学习;
第二类是对训练集里的正类样例进行“过采样”(oversampling),即增加一些正例使得正、反例数目接近,然后再进行学习;
第三类则是直接基于原始训练集进行学习,但在用训练好的分类器进行预测时,将式(3.48)嵌入到其决策过程中,称为“阈值移动”(threshold-moving)。
欠采样法的时间开销通常远小于过采样法;因为前者丢弃了很多反例,使得分类器训练集远小于初始训练集,而过采样法增加了很多正例,其训练集大于初始训练集。
需注意的是,过采样法不能简单地对初始正例样本进行重复采样,否则会招致严重的过拟合;另一方面,欠采样法若随机丢弃反例,可能丢失一些重要信息;
四、决策树
1、决策树学习模型
- 特征选择、节点分类、阈值确定
*** ?决策树算法流程
2、信息增益、增益率计算
信息熵:
熵本身代表不确定性,是不确定性的一种度量。熵越大,不确定性越高,信息量越高。
为什么用log?—— 两种解释,可能性的增长呈指数型;log可以将乘法变为加减法。
信息增益(互信息):代表了一个特征能够为一个系统带来多少信息。
ID3决策树学习算法 —— 以信息增益为准则划分属性。
增益率
基尼指数
基尼系数运算稍快;
物理意义略有不同,信息熵表示的是随机变量的不确定度;
基尼系数表示在样本集合中一个随机选中的样本被分错的概率,也就是纯度。
基尼系数越小,纯度越高。
模型效果上差异不大。
4、剪枝 —— 对付过拟合
为什么要剪枝?
复杂度过高。
预测复杂度:O(logm)
训练复杂度:O(n x m x logm)
logm为数的深度,n为数据的维度。
容易过拟合。
预剪枝是指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升则停止划分,并将当前结点标记为叶结点;
后剪枝是先从训练集生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点。
5、连续与缺失值
二分法,对连续属性进行处理。
6、多变量决策树
非叶节点不再是仅对某个属性,而是对属性的线性组合进行测试。
五、神经网络
1、感知机
MP神经元
激活函数
单层感知机
wTx+b=0对应于特征空间一个超平面s,将空间分成两个部分,也称分离超平面。
单层感知机的学习能力非常有限, 只能解决线性可分问题。
多层感知机
多层前馈神经网络:只与下一层连接;同层或跨层不连接;
前馈:正向
2、BP算法 / 误差逆传播算法
3、输出层节点 计算网络参数
4、训练法则
5、网络收敛性
六、SVM支持向量机
1、支持向量机概念 / 目标
支持向量 support vector —— 距离决策边界最近的点,每个类别的极端数据点
超平面 hyperplane —— “隔离带”中间的平分线
间隔 margin —— 最大化margin
优化目标:—— 最大化间隔margin 也就是 最大化距离 d,也就是点到超平面的垂直距离。
注意此处的距离和线性模型中的距离不同,线性模型中的距离是 yhat-y (斜边)
软间隔
那么怎么保证 这个减去的值不能太大呢?
也就是说尽量让所有数据容错值的和最小。让二者取一个平衡。
C 就是一个新的超参数,用来调节两者的权重值。
再看一下这个求和的形式,是不是特别像正则化?其实就可以看成正则化。
正则化项是一次的,所以叫L1正则。这里省略了绝对值符号,因为其就是正数。
2、核函数原理及作用 —— 降低计算复杂度
将样本从原始空间映射到一个更高维的特征空间。
空间是有限维,即属性数有限,那么一定存在一个高维特征空间使样本可分。
核函数:是映射关系的内积。
映射函数本身仅仅是一种映射关系,并没有增加维度的特性,不过可以利用核函数的特性,构造可以增加维度的核函数,这通常是我们希望的。
要注意,核函数和映射没有关系。核函数只是用来计算映射到高维空间之后的内积的一种简便方法!
线性组合、直积仍是核函数。
3、支持向量机的应用
七、贝叶斯分类器
监督式模型分为判别式模型和生成式模型。
判别模型和生成模型的区别:
判别式模型:输入一个特征X可以直接得到一个y。
生成式模型:上来先学习一个联合概率分布 p(x,y),
再用他根据贝叶斯法则求条件概率密度分布。
—— 没有决策边界的存在
判别式数据对于数据分布特别复杂的情况,比如文本图像视频;
而生成式模型对于数据有部分特征缺失的情况下效果更好,
而且更容易添加数据的先验知识 p(x)
1、贝叶斯决策论
则
建立了四个概率分布之间的关系,已知变量 X 和 未知变量(模型参数)w 之间的计算关系。
假定 X 表示数据,W 表示模型的参数。
Likelihood翻译成可能性或者是似然函数,最大似然估计指的就是这个。
2、极大似然估计
根据事件 x 的观察结果 c ,推断 θ 为多少时,x 最有可能发生。
3、朴素贝叶斯条件 / 概念
*** p152 例子
能不能直接根据这些经验(上面的数据),来判断一个境外人员有没有得新冠呢?
即求解:
比较难求的显然就是 Likelihood,所以朴素贝叶斯假设特征之间相互独立。
根据中心极限定理,频率就等于概率,虽然这里数据没有那么多,也一样可以这么算。
4、EM算法
期望最大化算法,Expectation Maximization
目的:使得似然函数最大化
引入 隐变量(未观测变量)
先猜一个 z 的分布,就是蓝色的分布,然后用它来逼近。
利用Jensen不等式:期望的函数 ≥ 函数的期望,
函数就是log函数,后面的一坨是期望,把q看成一个分布,分式看成z的函数。
现在就可以通过不断改变 z,q来搜索L(θ),从而找到他的最大值。
EM算法步骤
1、E步骤,先固定q分布不变(θ值不变),使用MLE来最大化z。
沿着固定的θ值,向上搜索,碰到红线之后就停止。
2、M步骤,固定z不变,让q最大化寻优。
重复这个步骤,反复迭代,直到找到最优的θ*。
注意虽然EM的迭代一定会收敛,但是不一定收敛到最优的参数值,可能陷入局部最优,所以结果很受初始值的影响。
5、分类器怎么计算
6、估计后验概率策略
八、集成学习
1、集成原理
集成学习通过构建并结合多个学习器来完成学习任务。
也被称为 多分类器系统、基于委员会的学习等。
根据个体学习器的生成方式,目前的集成学习方法大致可分为两大类,即
个体学习器间存在强依赖关系、必须串行生成的序列化方法 —— Boosting
个体学习器间不存在强依赖关系、可同时生成的并行化方法 —— Bagging和“随机森林”(Random Forest)
集成学习按照 所使用的 单个子模型是不是同一种 分为同质的方法和异质的方法。
按照 子模型的连接方式 可以分为串行策略、并行策略和串并结合的策略。
2、Boosting算法 —— 串行
基本思想
每个子模型在训练过程中更加关注上一个模型中表现不好的样本点,以此来提高模型效果。
训练一系列的弱学习器,弱学习器是指仅比随机猜测好一点点的模型,例如较小的决策树。
训练的方式使用加权的数据,在训练的早期,对于错分的数据给予较大的权重。
对于训练好的弱分类器,如果是分类任务则按照权重进行投票,如果是回归任务则进行加权,然后再进行预测。
*** AdaBoost算法 p174
标准AdaBoost只适用于二分类任务。
从偏差-方差分解的角度看,Boosting 主要关注降低偏差,因此 Boosting能基于泛化性能相当弱的学习器构建出很强的集成。
3、Bagging与随机森林RF —— 并行
Bagging
数据组织方式不同,从总的数据集中抽样组成新的子集。
所有支路使用同样的算法。
分类还是使用投票的方式集成,回归任务则是使用平均的方式集成。
从偏差-方差分解的角度看,Bagging 主要关注降低方差,因此它在不剪枝决策树、神经网络等易受样本扰动的学习器上效用更为明显。
有36.8%的样本没被抽到,那么:
不区分训练、测试集,用没被取到的作为测试集。
随机森林 RF
值得一提的是,随机森林的训练效率常优于 Bagging,因为在个体决策树的构建过程中,Bagging使用的是“确定型”决策树,在选择划分属性时要对结点的所有属性进行考察而随机森林使用的“随机型”决策树则只需考察一个属性子集。
4、结合策略
1)平均法(简单平均法、加权平均法)
2)投票法(绝对多数投票法、相对多数投票法、加权投票法)
3)学习法(Stacking等)
其实是一个二次学习的过程。
先用第一份数据 训练这三个模型,
再用第二份数据 经过这三个模型输出之后训练第二级的模型4。
*** 5、多样性 p185
九、聚类学习
1、聚类原理
聚类试图将数据集中的样本划分为若干个通常是不相交的子集,每个子集称为一个 簇。
2、性能度量 / 有效性指标
3、距离计算
4、原型聚类 kmeans
通常情况下,算法先对原型进行初始化,再对原型进行迭代更新求解。
k-均值
根据样本点与簇质心距离判定
以样本间距离衡量簇内相似度
K均值聚类算法步骤:
- 选择k个初始质心,初始质心的选择是随机的,每一个质心是一个类
- 计算样本到各个质心 欧式距离,归入最近的簇
- 计算新簇的质心,重复2 3,直到质心不再发生变化或者达到最大迭代次数
学习向量量化LVQ
高斯混合聚类
5、密度聚类 DBScan
DBSCAN算法:基于一组“邻域”参数来刻画样本 分布的紧密程度。
6、层次聚类
按照层次把数据划分到不同层的簇,形成树状结构,可以揭示数据间的分层结构。
在树形结构上不同层次划分可以得到不同粒度的聚类。
过程分为自底向上的聚合聚类和自顶向下的分裂聚类。
AGNES算法(自底向上的层次聚类算法)。
将每个样本看做一个簇,初始状态下簇的数目 = 样本的数目
簇间距离最小的相似簇合并
下图纵轴不是合并的次序,而是合并的距离
自顶向下的分裂聚类
所有样本看成一个簇
逐渐分裂成更小的簇
目前大多数聚类算法使用的都是自底向上的聚合聚类方法。
十、降维与度量学习
1、降维思想
2、k近邻学习
3、PCA主成分分析
监督学习和无监督学习
各个算法基本思想,课本上的基本概念,以及针对不同机器算法的简单拓展应用
机器学习算法: AdaBoost 详解 - 知乎
01.3 神经网络的基本工作原理 - AI-EDU