最后
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
给大家分享一些关于HTML的面试题。
1. 学习器的组合可以从三个方面带来好处
2. 结合策略
一、概述
========
1. 什么是集成学习?
集成学习(ensemble learning)是用多种学习方法的组合来获取比原方法更优的结果。
使用于组合的算法是弱学习算法,即分类正确率仅比随机猜测略高的学习算法,但是组合之后的效果仍可能高于强学习算法,即集成之后的算法准确率和效率都很高。
“三个臭皮匠顶个诸葛亮”
2. 例子
考虑一个简单的例子,在二分类问题中,假定3个分类器在三个样本中的表现如下图所示,其中√ 表示分类正确,X 号表示分类错误,集成的结果通过投票产生。
集成个体应:好而不同,即个体学习器要有一定的“准确性”,即学习器不能太坏,并且要有“多样性”,即学习器间具有差异
3. 聚类的两大算法
(1)个体学习器存在强依赖性、必须串行生成的序列化方法,典型代表是Boosting
(2)个体学习器之间不存在强依赖性、可同时生成的并行化方法,典型代表是Bagging和随机森林(Random Forest)
二、Boosting(提升方法)
====================
1. 概述
主要思想是将弱分类器组装成一个强分类器。
在分类问题中,主要思想是将弱分类器组装成一个强分类器。具体地,它通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高分类的性能。
提升方法就是从弱学习算法出发,反复学习,得到一系列弱分类器(又称基分类器),然后组合这些弱分类器,构成一个强分类器。
大多数的提升方法都是改变训练数据的概率分布(训练数据的权值分布),针对不同的训练数据分布调用弱学习算法学习一系列弱分类器。
最著名的提升方法:AdaBoost
2. Boosting的两个核心问题
如何改变权重?如何将分类器融合成强分类器?
(1)如何在每一轮如何改变训练数据的权值或概率分布?
通过提高那些在前一轮被弱分类器分错样例的权值,减小前一轮分对样例的权值,来使得分类器对误分的数据有较好的效果。
(2)通过什么方式来组合弱分类器?
通过加法模型将弱分类器进行线性组合
三、AdaBoost
==============
AdaBoost是Boosting最著名的提升方法
1. 概述
刚开始训练时对每一个训练例赋相等的权重,然后用该算法对训练集训练t轮,每次训练后,对训练失败的训练例赋以较大的权重,也就是让学习算法在每次学习以后更注意学错的样本,从而得到多个预测函数。通过拟合残差的方式逐步减小残差,将每一步生成的模型叠加得到最终模型。
主要思想:需不断修改误分样本的权重
2. AdaBoost两个问题如何解决
(1)每一轮如何改变训练数据的权值或概率分布?
AdaBoost:提高那些被前一轮弱分类器错误分类样本的权值,降低那些被正确分类样本的权值
(2)如何将弱分类器组合成一个强分类器?
AdaBoost:加权多数表决,加大分类误差率小的弱分类器的权值,使其在表决中起较大的作用,减小分类误差率大的弱分类器的权值,使其在表决中起较小的作用。
3. 算法思想
4. 算法流程
5. 算法过程图示
四、Bagging(装袋法)
==================
1. 概述
装袋法(Bagging)又称为Bootstrap Aggregating,其原理是通过组合多个训练集的分类结果来提升分类效果
装袋法由于多次采样,每个样本被选中的概率相同,因此噪声数据的影响下降,所以装袋法太容易受到过拟合的影响
Bagging的算法原理和 boosting不同在于训练数据的选取,它的弱学习器之间没有依赖关系,可以并行生成,而Bagging使用的是所有的训练数据。
bagging的个体弱学习器的训练集是通过随机采样得到的。通过T次的随机采样,我们就可以得到T个采样集,对于这T个采样集,我们可以分别独立的训练出T个弱学习器,再对这T个弱学习器通过集合策略来得到最终的强学习器。
采样方法:自助采样
2. 自助采样方法(有放回)
自助采样法(Bootstrap sampling),即对于m个样本的原始训练集,我们每次先随机采集一个样本放入采样集,接着把该样本放回,也就是说下次采样时该样本仍有可能被采集到,这样采集m次,最终可以得到m个样本的采样集,由于是随机采样,这样每次的采样集是和原始训练集不同的,和其他采样集也是不同的,这样得到多个不同的弱学习器。
五、随机森林
==========
1. 概述
随机森林(Random Forest,简称RF)是bagging的一个扩展变种,他的随机体现在:采样的随机性,属性选择的随机性。
随机森林使用了CART决策树作为弱学习器;
2. 算法思想
最后
javascript是前端必要掌握的真正算得上是编程语言的语言,学会灵活运用javascript,将对以后学习工作有非常大的帮助。掌握它最重要的首先是学习好基础知识,而后通过不断的实战来提升我们的编程技巧和逻辑思维。这一块学习是持续的,直到我们真正掌握它并且能够灵活运用它。如果最开始学习一两遍之后,发现暂时没有提升的空间,我们可以暂时放一放。继续下面的学习,javascript贯穿我们前端工作中,在之后的学习实现里也会遇到和锻炼到。真正学习起来并不难理解,关键是灵活运用。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
够灵活运用它。如果最开始学习一两遍之后,发现暂时没有提升的空间,我们可以暂时放一放。继续下面的学习,javascript贯穿我们前端工作中,在之后的学习实现里也会遇到和锻炼到。真正学习起来并不难理解,关键是灵活运用。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
[外链图片转存中…(img-hzmdHwV6-1715465434694)]
[外链图片转存中…(img-hEjgU0aO-1715465434695)]