开发者学习笔记【阿里云人工智能工程师ACA认证(2023版):机器学习经典算法介绍(三)】
课程地址:https://edu.aliyun.com/course/3112108/lesson/19264
机器学习经典算法介绍(三)
七、集成算法介绍与应用
1.集成学习算法定义及流派
接下来是机器学习经典算法介绍里面的集成算法介绍与应用。所谓集成学习,顾名思义就是集成多个基学习器的结果,采用一定的融合机制,得到一个更为准确、更为稳定的结果。多个基机器学习算法,美国我们叫它叫做它基学习器。
这里面隐含一个条件,就是基学习器的学习结果之间是存在差异的,如果不存在差异,那构建多个来完成任务的意义并不大,因为通过这种方式没有办法找到策略去改变优化的一个结果。集成学习的应用场景,比如有土地覆盖测绘、恶意软件检测,这个集成学习简单来有三个臭皮匠顶个诸葛亮的这个概念,可能某一个基学习器,可能或者每一个基学习器他们训练出来之后都是弱模型,这些基本的模型的性能可能并不那么好,要是因为它们具有较高的偏质,比如低质有度模型。要是因为它这个方差太大导致鲁棒性不强。有这种问题。
集成学习的这个思想就是把这些低学习器、弱学习器,把它们的偏质或者是方差结合,创建一个强学习器,从而能够获得更好的性能。按照对多个机学习其集成策略和融合机制的不同。集成学习主要包含三大派系,begging、 boosting 和stacking。
这里 bagging 的本意就是放进袋子里, bagging 又叫自助法, Boost 是本意,英文本意是推进,助推的意思。 Boost 又叫提升法。
stagking ,stacking 本意就是堆叠,所以这个也叫堆叠法。
2. Bagging集成学习算法
Baging 集成学习算法又叫自助法,它的定义是主要对样本训练集合进行随机化抽样,通过反复的抽样训练新的模型,反复的抽样训练新的模型,最终在这个模型的基础上取平均。
这是我们看下面的图,这是训练样本,我们对这个训练样本进行随机采样,抽取出来子样本1,子样本 2 等,子样本 n 很多个,而样本机,然后对每个样本分别的训练,子样本1训练得到基学习器1。子样本 2 训练得到基学习器2,此样本 n 训练得到基学习N。
这样一共得到 1 到 n 个模型,然后再通过取平均值、取多数票等方式来产生预测效果得到的这个就是强学习器。
在抽取训练样本的时候,我们经常采用随机抽样的方式,这样就可能出现训练样本里面,他在抽取时有的样本一次都没有被抽取到,这样可能到最后就是都训练完后得到这个强学习模型。
有训练样本的数据里面没有被踩中,对于这种数据我们称它为带外数据,这个叫begging,就放进袋子里,没有抽中的叫带外数据。如果这些数据没有参与模型的训练拟合,那这些数据可以用来检测模型的泛化能力。
3.Boosting集成学习算法
Boosting集成学习算法是一个很有趣的集成学习算法,学习它的定义。
boosting 是通过不断的使用一个弱学习器,某前一个弱学习器的不足,然后来串行的构造一个较强的学习器,这个强学习器能够使目标函数足够小。 boosting 这个单词就是助推的意思,火箭有分三级火箭,然后一层一层的去助推,这个名字的起名也有这个意思,有一个弱学习器,然后我们再用一个弱学习器,新的一个弱学习器,去弥补前面的不足,这样一层一层的串行,让这个多级的火箭能够达到一个很好的效果。
我们看解释图,有训练样本,就有训练样本,我们从里面抽取,然后用权重一一的这个训练集去训练得到一个低学习器,得到后我们会根据他的学习误差,然后再来调整权重,然后得到权重 2 的样本,得到权重 2 的样本,然后抽取出来权重 2 的训练集,再训练得到积学习器2,这时你就知道这个学习器是调整过的,然后再重复这个过程,再根据学习误差来调整权重,得到权重 n 的训练集,然后再训练得到基学习器n,那这个每一个学习器可能是一个弱学习器,但是经过这种组合之后就可以得到一个强学习器。
boosting 这种集成学习算法。很像我们去读书的时候学习,去应对各个学科,如果你开始经过训练后,可能成绩不尽如人意,不太好
你要根据你的学习误差去调整,调整你的学习的权重,比如你经过一次考试之后,发现某些方面不可能这个知识不太足,那么你调整这个权重后,根据权重再重新训练,就得到一个新的学习器,然后再测试,再调整完之后又发现新的不足,然后再从这个样本里面再去训练。这样不断的改进,就会变得越来越强,这就是boosting提升学习算法的主要思想。
4. stacking 集成学习算法
stacking 集成学习算法, stacking 是堆叠堆的。
staging ,是通过一个元分类器或者是元回归器来整合多个分类模型或者是回归模型的集成学习技术。
元分类题或者是元回归器,基础模型,利用整个训练集来做训练,元模型,将基础模型的输出作为特征进行训练。 stacking 算法它集成完后是元分类器或者是元学习器,元分类器或者是元回归器,它是整合了前面的模型,前面是多个初级的学习器。 12345 一直到 n ,多个初级的学习器那训练样本。
但是元学习器,它用到的不是直接的训练样本,而是训练样本经过了初级学习器之后得到的这个预测值,其实元学习器最后它训练的数据其实是初级学习器它的预测值,同样它的测试数据集,测试集也要用这个初级学习器去做预测得到那个结果才是元学习器的预测值。
八、聚类算法介绍与应用
聚类算法它的英文又叫Cluster,我们先来看它的定义,聚类属于无监督学习的一种,它是使同一类的数据尽可能的聚集到一起,不同的数据尽量分离。对于有标签的数据进行的是有监督学习,常见的任务,比如分类回归,而对于无标签的数据,要从无标签的数据中寻找到数据的潜在的信息,这就是无监督学习。
聚类就是无监督学习的一种,聚类,它把相似的对象放到同一个簇里,然后一个簇里面的数据的对象的相似性尽可能的无限大,同时不在同一个处里的数据对象差异性也尽可能的大。也就是聚类后,同一类的数据尽可能地聚集到一起,不同类的数据尽可能地分离。
聚类的典型的应用场景,比如非人恶意流量识别在很多的服务中,很多的应用中,比如网站的服务,或者是手机的访问的服务,会出现有人用机器人去作弊的这种情况,这种情况对商业可能会有一定的影响,但是用机器去作弊,去访问,跟人的这个访问的特征是不一样的。这时可以用聚类算法去识别出哪些是人针对人去访问的,哪些是非人的恶意的流量。
另一个应用场景,新闻主题聚类这个也是非常的常见,有了新闻后,有了文本这个新闻到底是属于哪一个主题,怎么样对这个新闻进行分类,如果人工做,可能工作量会很大,我们可以用文本聚类的方式对于文章自动地为它进行分类,这是聚类算法的一些应用的场景。我们看下面的图,来讨论这个聚类算法解决什么样的问题。
我们看下面的图,这个是画出的是原始数据,这个数据都没有做标注,都是这样,它在这个空间就这样分布着。
我们的任务是从里面找出这个数据之间的关系,就是同一类的尽可能聚在一起,不同类的尽量的分离。我们的目标像这个当前的场景,我们希望它聚类的结果是这样,就是用不同的圆,这样聚出的这个叫做簇,相当于是三个不同的簇,三个不同的簇就是三个聚类的结果。肋里面的距离非常的近,然后肋间的距离就非常的远,这个就是希望达到的效果。
对于聚类算法,首先很重要的一个问题,也是要解决这些实例之间的距离的估算,我们这个数据是把它简化在一个平面里,大家很容易很直观的看出它们的距离。
对于复杂的数据,它们的距离计算是参照之前的我们计算数据的距离可能有不同的方式,比如用欧式距离的方式,总的就是也先要先找到一个方式去计算数据之间的距离,先把这个距离算出后才能聚类,这是第一步,然后是计算之后就是怎么样找到这个聚类的问题。
这里聚类的算法也有很多,比如像 k 均值、他的思路可能是在预设在这个数据里面有 k 个类,然后找 k 个类的中心点,在不断的迭代的运算中去改变中心点,去计算出来哪一种方式聚类得到的这个效果会最好,哪种方式得到的效果最好,也是用聚类这个距离之间的总体的值去衡量,也是不同的聚类的算法可能有不同的优点缺点。
除了 k 均值这种算法外,还有像是d,b,c, can 这种基于密度聚类的算法,通过分布的这种紧密度来进行聚类。
九、本节回顾
通过本节的学习,我们学到了:
1、线性回归算法,它是用线性回归来找到两种或者是两种以上变量之间的定量关系这样一种统计方法。
应用的场景,比如异常检测、农业贷款检测这种。
2、逻辑回归,它是在线性回归上添加了非线性变化,然后让这个逻辑回归它的输出的值变成了离散性,我们经常也都叫它回归,不管是线性回归还是逻辑回归。
3、朴素贝叶斯算法,它是基于贝叶斯定理,这是概率论里面的一个非常著名、非常基础的一个定理。
它是有一个特征条线图例,假设它是假设特征条件之间是没有关系的,是相互独立的,在这个假设的基础上去计算,这个简化了计算量,效果也很好。
朴素贝叶斯还是很常用的一个分类算法应用场景,比如垃圾分类、舆情分析。然后我们学习了 k 近邻算法,叫 k 近邻,又叫 KNN Linus 的neighborhood,最近的邻居,k 近邻它是从训练集中找到与新实例最近的 k 个实例,新的实例对它进行分类找它最近的 k 个,那 k 个实例主要是什么它就是哪一个分类,它就属于哪一个分类,根据这 k 个实例来进行预测。思路就是近朱者赤,它在哪一类的旁边就属于哪一类,它的应用场景有约会匹配。可能离近的就可以约会。然后是商品推荐,即你选中这一类的商品,周边的商品可能也是你感兴趣的。
4、向量机算法 SVM support vactor machine ,SVM 算法,支持向量机它是一类对数据进行二元分类的广义线性分类器,其决策边界是对学习样本求解最大边距超平面。
先理解支持降量机的思路,它是把分类问题变成去找这个一个超平面的问题,把数据放在这里,然后去分类的时候怎么样找到一个平面能把这个数据分开,如果是当前的情况维度不好区分,可能要进行升维。能用这种方式解决问题,它的应用场景有心脏病预测、用户窃电识别这种,比如这个人会不会患心脏病,他可能数据会有很多的维度,通过学习数据去找这个不同的维度的数据跟是否会得心脏病去做判断。
5、决策树算法,是很经典的分类算法,决策树算法它得到的是一个决策树的模型,一个树形的,叫 decision tree 树形的结构来进行预测分析。有这个决策树模型后,对于这个分类的问题很简单,就把这个新的实例放到树里面检测。这个算法的部分我们主要讲决策树是怎么产生的,怎么样去选取特征,讲了一些基本的关于信息论,关于信息商、信息增益的这个概念。决策树的是三个阶段,怎么样去做特征选取,怎么去把这个树生成,最后是这个树怎么样去剪枝,决策树的应用场景可能有,银行贷款识别、动物识别。
6、集成学习算法,它是一种机器学习的范式。在集成学习里我们会训练多个模型来解决相同的问题,这种一般叫做弱学习器或者叫基学习器,用训练多个来解决相同的问题,他们可能每个结果不太好,我们把它结合起来就能获得更好的结果。这里很重要的假设就是弱模型被正确的组合的时候可以得到更好的、更精确的或者是更棒的模型。集成算法主要三个大的分类,一个是bagging,就是同质学习器,把同质学习器相互独立,并行的把它们组合。
begging 之后是boosting,begging 我们可以理解是就称它为自助法, boosting 就叫提升法,提升法它是有一个加权的过程,就是在这个弱学习后,没有正确分类的数据会被加权,然后做提升。然后是这个 stacking 堆叠法,是把这个训练好的模型对整个训练集预测结果都变成新的训练集,测试集也是以此类推得到新的测试集,再进行预测。集成算法主要的思路就是用怎样用弱的模型产生一个更好的模型,它的应用领域可能有土地覆盖社会可能有恶意软件检测这种。
方向。
7、聚类算法,它是无监督学习里面的一种,目的是让同一类的数据尽可能的聚集在一起,不同的数据尽量的分离。聚类算法主要有名的有,比如 k 均值,有 d b c can 有层次聚类。
距离算法,它是在未知的无监督的这个数据里面去寻找这个簇,寻找出来这个叫簇,它的应用场景,比如有非人恶意流量识别,或者是新闻主题的聚类。