day6 AI面试刷题

  • 1. 什么是集成学习算法?
  • 2. 集成学习主要有哪几种框架, 并简述它们的工作过程?
  • 3. Boosting算法有哪两类,它们之间的区别是什么?
  • 4. 什么是偏差和方差?
  • 5. 为什么说Bagging可以减少弱分类器的方差,而Boosting 可以减少弱分类器的偏差?

1. 什么是集成学习算法?

参考答案:
集成学习(Ensemble Learning)就是将多个机器学习模型组合起来,共同工作已达到优化算法的目的。集成学习的一般步骤是:1. 生产一组“个体学习器”(Individual learner);2. 用某种策略将它们结合起来。

个体学习器通常由一个学习算法通过数据训练产生。在同质集成(系统中个体学习器的类型相同)中,个体学习器又被称为“基学习器”;而在异质集成(系统中个体学习的类型不同)中,个体学习器又被称为“组建学习器”(Component Learner)。

集成学习的思想类似于我们俗话常说的“三个臭皮匠胜过一个诸葛亮”。

参考 什么是集成学习

2. 集成学习主要有哪几种框架, 并简述它们的工作过程?

参考答案:
集成学习主要的集成框架有:Bagging,Boosting 和 Stacking。其中 Bagging 和 Boosting 为同质集成,而 Stacking 为异质集成。

  • Bagging (Bootstrap Aggregating): Bagging的核心思想为并行地训练一系列各自独立的同类型,然后再将各个模型的输出结果按照某种策略进行聚合(例如分类中可采用投票策略,回归中可采用平均策略)。Bagging方法主要分为两个阶段:

    • Bootstrap阶段,即采用有放回的抽样方法,将训练集分为n个子样本;并用基学习器对每组样本分别进行训练,得到n个基模型。
    • Aggregating阶段,将上一阶段训练得到的n个基模型组合起来,共同做决策。在分类任务中,可采用投票法。比如相对多数投票法,即将结果预测为得票最多的类别。而在回归任务中可采用平均法,即将每个基模型预测得到的结果进行简单平均或者加权平均来获得最终的预测结果。
  • Boosting:Boosting的核心思想为串行地训练一系列前后依赖的同类模型,即后一个模型用来对前一个模型的输出结果进行纠正。Boosting算法是可将弱学习器提升为强学习的算法。学习过程是:先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本进行调整,使得先前基学习器预测错误的训练样本在后续训练中收到更多关注,然后将当前基学习器集成到集成学习器中并基于调整后的样本分布来训练下一个基学习器,如此重复进行,直至基学习器数目达到事先指定的值T。
  • Stacking: Stacking 的核心思想为并行的训练一系列各自独立的不同类型模型,然后通过训练一个元模型(meta-model)来将各个模型的输出结果进行结合。也可以用两个阶段来描述 Stacking 算法:
    • 第一阶段:分别采用全部训练样本训练n个组件模型,要求这些个体学习器必须是异构的,也就是说采用的学习方法不同;比如可以分别是线性学习器,SVM,决策树模型和深度模型。
    • 第二阶段:训练一个元模型(meta-model)来将各个组件模型的输出结果进行结合。具体过程是,将各个学习器在训练集上得到的预测结果作为训练特征和训练集的真实结果组成新的训练集;用这个新组成的训练集来训练一个元模型。这个元模型可以是线性模型或者树模型。

3. Boosting算法有哪两类,它们之间的区别是什么?

参考答案:
Boosting算法主要有AdaBoost(Adaptive Boost)自适应提升算法和Gradient Boosting 梯度提升算法。最主要的区别在于两者如何识别和解决模型的问题。
AdaBoost 用分错的数据样本来识别问题,通过调整分错的数据样本的权重来改进模型。Gradient Boosting通过负梯度来识别问题,通过计算负梯度来改进模型。

4. 什么是偏差和方差?

参考答案:
偏差指的是预测值的期望与真实值之间的差距,偏差越大,预测值越偏离真实数据的标签。
方差描述的是预测值的变化范围,离散程度,也就是离预测值期望的距离,方差越大,数据的分布越分散。

可通过打靶射击的例子来做类比理解,我们假设一次射击就是一个机器学习模型对一个样本进行预测,射中红色靶心位置代表预测准确,偏离靶心越远代表预测误差越大。
偏差则是衡量射击的蓝点离红圈的远近,射击位置即蓝点离红色靶心越近则偏差越小,蓝色离红色靶心越远则偏差越大;方差衡量的是射击是否稳定,即射击的位置蓝点是否聚集,蓝点越集中则方差越小,蓝点越分散则方差越大。

5. 为什么说Bagging可以减少弱分类器的方差,而Boosting 可以减少弱分类器的偏差?

参考答案:
Bagging算法对数据重采样,然后在每个样本集训练出来的模型上取平均值。假设有n个随机变量,方差记为σ2\sigma^2σ2,两两变量之间的相关性是0<ρ<10\lt\rho\lt 10<ρ<1,则 n 个随机变量均值的方差为:
var(1n∑i=1nXi)=σ2n+n−1nρσ2\begin{aligned} var(\frac{1}{n}\sum^n_{i=1}X_i)=\frac{\sigma^2}{n}+\frac{n-1}{n}\rho\sigma^2 \end{aligned}var(n1​i=1∑n​Xi​)=nσ2​+nn−1​ρσ2​
上式中随着n增大,第一项趋于0,第二项趋于ρσ2\rho\sigma^2ρσ2,所以Bagging能够降低整体方差。在随机变量完全独立的情况下,n个随机变量的方差为 σ2n\frac{\sigma^2}{n}nσ2​,n个随机变量的方差是原来的 1n\frac{1}{n}n1​。

Bagging 算法对 n 个独立不相关的模型的预测结果取平均,方差可以得到减少,如果模型之间相互独立,则集成后模型的方差可以降为原来的 1n\frac{1}{n}n1​,但是在现实情况下,模型不可能完全独立。为了追求模型的独立性,Bagging的方法做了不同的改进,比如随机森林算法每次选取节点分裂属性时,会随机抽取一个属性子集,而不是从所有的属性中选取最优属性,这就为了避免弱分类器之间过强的关联性,通过训练集的重采样也能够带来弱分类器之间的一定独立性。这样多个模型学习数据,不会像在单模型的情形中,模型因为学习到数据某个特殊的特征而造成方差过高。

设单模型的期望为 μ\muμ,则 Bagging 的期望预测为:
E(1n∑i=1nXi)=1nE(∑i=1nXi)=E(Xi)≈μE(\frac{1}{n}\sum^n_{i=1}X_i)=\frac{1}{n}E(\sum^n_{i=1}X_i)=E(X_i)\approx\muE(n1​∑i=1n​Xi​)=n1​E(∑i=1n​Xi​)=E(Xi​)≈μ

说明 Bagging 整体模型的期望近似于单模型的期望,这意味整体模型的偏差也与单模型的偏差近似。所以Bagging不能减少偏差。

在 Boosting 算法训练过程中,我们计算弱分类器的错误和残差,作为下一个分类器学习目标调整的依据,这个过程本身就是在不断减小损失函数的值,其偏差自然逐步下降,但是由于是采用这种串行和自适应的策略,各子模型之间是强相关的,于是子模型之和并不能显著降低方差,所以说 Boosting 主要还是靠降低偏差来提升模型性能。

day6 AI面试刷题相关推荐

  1. 如果不是为了面试,AI工程师刷题有用吗?

    面试官手把手带你刷题 AI岗位面试题 5周详解+训练 今天限时特价9.9元 在准备应聘的过程中,大部分同学关注点都在自己的技术水平以及项目经验是否能够比过其他人.但往往忽略了一点,你会的和你在面试中能 ...

  2. 程序员跳槽面试刷题必备,微软工程师放大招!| 程序员硬核评测

    整理 | 一一 出品 | AI科技大本营(ID:rgznai100) 春节刚过,年终奖收入囊中,属于工程师们一年一度的跳槽季也来了. 跳槽后薪水翻倍自然爽歪歪,但最怕的是面试翻车,那就悲剧了.可想而知 ...

  3. 1000 面试题,BAT 机器学习面试刷题宝典!

    点击上方,选择星标或置顶,每天给你送干货! 阅读大概需要好多分钟 跟随小博主,每天进步一丢丢 ID:Dr.Wu 公众号:大鱼AI 来源:CSDN 编辑:三石 刷题,是面试前的必备环节.本文作者便总结了 ...

  4. mysql怎么刷题_面试刷题mysql1:一条sql语句是如何经过mysql的体系结构的?

    {port} -u${user} -p ,输入密码. 使用连接器连接服务端: 连接成功之后,权限修改不会影响当前连接,连接的有效期默认是8个小时: 连接之后,执行过程中使用内存会持续增加,应该定时重置 ...

  5. 肝了一个月,我做了个免费的面试刷题网

    大家好,我是鱼皮. 如今找工作.面试实在是太卷了,每轮面试都 必考 八股文,不背不行.网上虽然有很多面试题,但过于分散,就导致很多朋友又不知道到哪去找题.该背哪些题了. 所以我决定做一个完全免费.干净 ...

  6. 面试鸭专业面试刷题网站源码 支持自由组卷/在线刷题等功能

    面试鸭 面试刷题 网站系统源码 面试鸭一个干净的面试刷题网站!专业面试刷题网站,助你成为面试达人!支持自由组卷.在线刷题.校招社招斩获大厂offer,求职必备! 面试鸭专业面试刷题网站源码: http ...

  7. java黑马面试_JavaWeb-黑马面面(面试刷题系统)项目实战

    经历了多次Java基础项目后,本次项目难度升级!挑战JavaWeb-- 黑马面面项目 . 黑马面面是一款面向程序员的面试刷题系统,服务于java开发工程师学习完毕后的复习问题,通过大量刷题,提高企业面 ...

  8. 面试刷题LeetCode经典100道

    准备面试刷题,100道经典LeetCode题目奉上. 题号 英文题名 中文题名 难度 likes 数 标签 1 Two Sum 两数之和 Easy 11712 数组,哈希表 2 Add Two Num ...

  9. 最新 2022欧莱雅AI面试真题题库

    [#AI面试# 2022欧莱雅AI面试真题题库 #快消面试#] 今年欧莱雅的网申需要提前完成3道AI测评才能投递简历!只不过不用录制视频或者音频,只需要录入文字即可,但是后面肯定也还是有AI面试的,所 ...

最新文章

  1. 删除中间结点(直接用来当前节点操作)
  2. linux为启动菜单加密码
  3. ES5-5 参数默认值、递归、预编译、暗示全局变量
  4. thinkphp的增删改查
  5. 以太坊代币事件监控_以太坊:什么是ERC20标准?
  6. ElasticSearch 复合查询
  7. Java 8实现BASE64编解码
  8. 吴恩达|机器学习作业3.1前馈神经网络
  9. mysql 截取json字符串_mysql如何截取一个json字符串?
  10. StringUtils,FileUtils,PropertiesUtils,DataBaseUtils
  11. 蓝桥杯官网练习系统基础练习(十一)
  12. Python爬虫入门:初识爬虫
  13. eclipse加载jdbc驱动(mysql)
  14. C# NPOI Excel 合并单元格和取消单元格
  15. [Spark调优]--TaskSetManager的有效Locality Levels
  16. python爬虫——selenium+bs4爬取选股宝‘利好‘or’利空'股票信息
  17. Excel按相同列内容合并表
  18. 浙大版《C语言程序设计》第四版(何钦铭颜晖) 第12章 文件 课后习题答案
  19. 成都待慕电商:抖音智能推荐常见问题汇总
  20. 左耳朵耗子:我看ChatGPT,为啥谷歌掉了千亿美金

热门文章

  1. 从零开始学前端 - 2. HTML常用标签_1
  2. 用数组存储三个学生对象,并遍历数组
  3. oracle 12c ins 13001,安装Oracle 12c Release 2报错:INS-13001
  4. GPL与BSD许可证的区别
  5. 中芯微和高通410的随身WiFi哪种好,随身WiFi怎么刷机
  6. Python读取PDF文档(或TXT)
  7. 一文让你彻底理解关于消息队列的使用
  8. 单片机原理及应用(1)--延时1s
  9. JavaWeb学习笔记之——CSS
  10. 高级复制解决冲突用DBMS_RECTIFIER_DIFF.RECTIFY出现的问题