BAT机器学习面试1000题系列

BAT机器学习⾯试1000题系列
⼏点声明:
1、本⽂的内容全部来源于七⽉在线发布的BAT机器学习⾯试1000题系列;师生关系
2、⽂章中带斜体的⽂字代表是本⼈⾃⼰增加的内容,如有错误还请批评指正;
3、原⽂中有部分链接已经失效,故⽽本⼈重新加上了新的链接,如有不当,还请指正。(也已⽤斜体标出)
4、部分答案由于完全是摘抄⾃其它的博客,所以本⼈就只贴出答案链接,这样既可以节省版⾯,也可以使排版更加美观。点击对应的问题即可跳转。
战与决最后,此博⽂的排版已经经过本⼈整理,公式已⽤latex语法表⽰,⽅便读者阅读。同时链接形式也做了优化,可直接跳转⾄相应页⾯,希望能够帮助读者提⾼阅读体验,⽂中如果因为本⼈的整理出现纰漏,还请指出,⼤家共同进步!
1.请简要介绍下SVM。
SVM,全称是support vector machine,中⽂名叫⽀持向量机。SVM是⼀个⾯向数据的分类算法,它的⽬标是为确定⼀个分类超平⾯,从⽽将不同的数据分隔开。
扩展:
⽀持向量机学习⽅法包括构建由简⾄繁的模型线性可分⽀持向量机、线性⽀持向量机及⾮线性⽀持向量机。当训练数据线性可分时,通过硬间隔最⼤化,学习⼀个线性的分类器,即线性可分⽀持向量机,⼜称为硬间隔⽀持向量机;当训练数据近似线性可分时,通过软间隔最⼤化,也学习⼀个线性的分类器,即线性⽀持向量机,⼜称为软间隔⽀持向量机;当训练数据线性不可分时,通过使⽤核技巧及软间隔最⼤化,学习⾮线性⽀持向量机。
2.请简要介绍下Tensorflow的计算图。
@寒⼩阳:Tensorflow是⼀个通过计算图的形式来表述计算的编程系统,计算图也叫数据流图,可以把计算图看做是⼀种有向
图,Tensorflow中的每⼀个计算都是计算图上的⼀个节点,⽽节点之间的边描述了计算之间的依赖关系。
3.请问GBDT和XGBoost的区别是什么?
@Xijun LI:XGBoost类似于GBDT的优化版,不论是精度还是效率上都有了提升。与GBDT相⽐,具体的优点有:
1.损失函数是⽤泰勒展式⼆项逼近,⽽不是像GBDT⾥的就是⼀阶导数;
2.对树的结构进⾏了正则化约束,防⽌模型过度复杂,降低了过拟合的可能性;
3.节点分裂的⽅式不同,GBDT是⽤的基尼系数,XGBoost是经过优化推导后的。
知识点链接:
4.在k-means或kNN,我们是⽤欧⽒距离来计算最近的邻居之间的距离。为什么不⽤曼哈顿距离?
曼哈顿距离只计算⽔平或垂直距离,有维度的限制。另⼀⽅⾯,欧⽒距离可⽤于任何空间的距离计算问题。因为,数据点可以存在于任何空间,欧⽒距离是更可⾏的选择。例如:想象⼀下国际象棋棋盘,象或车所做的移动是由曼哈顿距离计算的,因为它们是在各⾃的⽔平和垂直⽅向做的运动。
5.百度2015校招机器学习笔试题。
知识点链接:
6.简单说说特征⼯程。
7.关于LR。
@rickjin:把LR从头到脚都给讲⼀遍。建模,现场数学推导,每种解法的原理,正则化,LR和maxent模型啥关系,LR为啥⽐线性回归好。有不少会背答案的⼈,问逻辑细节就糊涂了。原理都会? 那就问
⼯程,并⾏化怎么做,有⼏种并⾏化⽅式,读过哪些开源的实现。还会,那就准备收了吧,顺便逼问LR模型发展历史。
水电站设计
声明:由于原⽂中的链接已经失效,故⽽⾃⼰补充了⼀个新的链接2011安徽高考数学理科
知识点链接:
8.overfitting怎么解决?
dropout、regularization、batch normalizatin
9.LR和SVM的联系与区别?
@朝阳在望,联系:
1、LR和SVM都可以处理分类问题,且⼀般都⽤于处理线性⼆分类问题(在改进的情况下可以处理多分类问题)
2、两个⽅法都可以增加不同的正则化项,如L1、L2等等。所以在很多实验中,两种算法的结果是很接近的。
区别:
1、LR是参数模型,SVM是⾮参数模型。
2、从⽬标函数来看,区别在于逻辑回归采⽤的是Logistical Loss,SVM采⽤的是hinge loss.这两个损
失函数的⽬的都是增加对分类影响较⼤的数据点的权重,减少与分类关系较⼩的数据点的权重。
3、SVM的处理⽅法是只考虑Support Vectors,也就是和分类最相关的少数点,去学习分类器。⽽逻辑回归通过⾮线性映射,⼤⼤减⼩了离分类平⾯较远的点的权重,相对提升了与分类最相关的数据点的权重。
纳黔高速4、逻辑回归相对来说模型更简单,好理解,特别是⼤规模线性分类时⽐较⽅便。⽽SVM的理解和优化相对来说复杂⼀些,SVM转化为对偶问题后,分类只需要计算与少数⼏个⽀持向量的距离,这个在进⾏复杂核函数计算时优势很明显,能够⼤⼤简化模型和计算。
5、Logic 能做的 SVM能做,但可能在准确率上有问题,SVM能做的Logic有的做不了。
答案来源:
10.LR与线性回归的区别与联系?
@nishizhen
个⼈感觉逻辑回归和线性回归⾸先都是⼴义的线性回归,
其次经典线性模型的优化⽬标函数是最⼩⼆乘,⽽逻辑回归则是似然函数,
另外线性回归在整个实数域范围内进⾏预测,敏感度⼀致,⽽分类范围,需要在[0,1]。逻辑回归就是⼀种减⼩预测范围,将预测值限定为[0,1]间的⼀种回归模型,因⽽对于这类问题来说,逻辑回归的鲁棒性⽐线性回归的要好。
@乖乖癞⽪狗:逻辑回归的模型本质上是⼀个线性回归模型,逻辑回归都是以线性回归为理论⽀持的。但线性回归模型⽆法做到sigmoid的⾮线性形式,sigmoid可以轻松处理0/1分类问题。
11.为什么XGBoost要⽤泰勒展开,优势在哪⾥?
@AntZ:XGBoost使⽤了⼀阶和⼆阶偏导, ⼆阶导数有利于梯度下降的更快更准. 使⽤泰勒展开取得⼆阶倒数形式, 可以在不选定损失函数具体形式的情况下⽤于算法优化分析.本质上也就把损失函数的选取和模型算法优化/参数选择分开了. 这种去耦合增加了XGBoost的适⽤性。
12.XGBoost如何寻最优特征?是⼜放回还是⽆放回的呢?
@AntZ:XGBoost在训练的过程中给出各个特征的评分,从⽽表明每个特征对模型训练的重要性.。XGBoost利⽤梯度优化模型算法, 样本是不放回的(想象⼀个样本连续重复抽出,梯度来回踏步会不会⾼兴)。但XGBoost⽀持⼦采样, 也就是每轮计算可以不使⽤全部样本。
13.谈谈判别式模型和⽣成式模型?
判别⽅法:由数据直接学习决策函数 Y = f(X),或者由条件分布概率 P(Y|X)作为预测模型,即判别模型。
⽣成⽅法:由数据学习联合概率密度分布函数 P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型,即⽣成模型。
由⽣成模型可以得到判别模型,但由判别模型得不到⽣成模型。
常见的判别模型有:K近邻、SVM、决策树、感知机、线性判别分析(LDA)、线性回归、传统的神经⽹络、逻辑斯蒂回归、boosting、条件随机场
常见的⽣成模型有:朴素贝叶斯、隐马尔可夫模型、⾼斯混合模型、⽂档主题⽣成模型(LDA)、限制玻尔兹曼机
14.L1和L2的区别。
L1范数(L1 norm)是指向量中各个元素绝对值之和,也有个美称叫“稀疏规则算⼦”(Lasso regularization)。
⽐如 向量A=[1,-1,3], 那么A的L1范数为 |1|+|-1|+|3|.
三星掌上电脑简单总结⼀下就是:
L1范数: 为x向量各个元素绝对值之和。
L2范数: 为x向量各个元素平⽅和的1/2次⽅,L2范数⼜称Euclidean范数或Frobenius范数
Lp范数: 为x向量各个元素绝对值p次⽅和的1/p次⽅.
在⽀持向量机学习过程中,L1范数实际是⼀种对于成本函数求解最优的过程,因此,L1范数正则化通过向成本函数中添加L1范数,使得学习得到的结果满⾜稀疏化,从⽽⽅便⼈类提取特征。
L1范数可以使权值稀疏,⽅便特征提取。
L2范数可以防⽌过拟合,提升模型的泛化能⼒。
15.L1和L2正则先验分别服从什么分布 ?
@齐同学:⾯试中遇到的,L1和L2正则先验分别服从什么分布,L1是拉普拉斯分布,L2是⾼斯分布。
16.CNN最成功的应⽤是在CV,那为什么NLP和Speech的很多问题也可以⽤CNN解出来?为什么AlphaGo⾥也⽤了CNN?这⼏个不相关的问题的相似性在哪⾥?CNN通过什么⼿段抓住了这个共性?
@许韩
知识点链接(答案解析):
17.说⼀下Adaboost,权值更新公式。当弱分类器是Gm时,每个样本的的权重是w1,w2…,请写出最终的决策公式。
18.LSTM结构推导,为什么⽐RNN好?
推导forget gate,input gate,cell state, hidden information等的变化;因为LSTM有进有出且当前的cell informaton是通过input gate控制之后叠加的,RNN是叠乘,因此LSTM可以防⽌梯度消失或者爆炸。
19.经常在⽹上搜索东西的朋友知道,当你不⼩⼼输⼊⼀个不存在的单词时,搜索引擎会提⽰你是不是要输⼊某⼀个正确的单词,⽐如当你在Google中输⼊“Julw”时,系统会猜测你的意图:是不是要搜索“July”,如下图所⽰:
这叫做拼写检查。根据⾕歌⼀员⼯写的⽂章显⽰,Google的拼写检查基于贝叶斯⽅法。请说说的你的理解,具体Google是怎么利⽤贝叶斯⽅法,实现”拼写检查”的功能。
⽤户输⼊⼀个单词时,可能拼写正确,也可能拼写错误。如果把拼写正确的情况记做c(代表correct),拼写错误的情况记做w(代表wrong),那么”拼写检查”要做的事情就是:在发⽣w的情况下,试图推断出c。换⾔之:已知w,然后在若⼲个备选⽅案中,出可能性最⼤的那个c,也就是求的最⼤值。⽽根据贝叶斯定理,有:
由于对于所有备选的c来说,对应的都是同⼀个w,所以它们的P(w)是相同的,因此我们只要最⼤化 即可。其中:
P(c)表⽰某个正确的词的出现”概率”,它可以⽤”频率”代替。如果我们有⼀个⾜够⼤的⽂本库,那么这个⽂本库中每个单词的出现频率,就相当于它的发⽣概率。某个词的出现频率越⾼,P(c)就越⼤。⽐如在你输⼊⼀个错误的词“Julw”时,系统更倾向于去猜测你可能想输⼊的词是“July”,⽽不是“Jult”,因为“July”更常见。
P(w|c)表⽰在试图拼写c的情况下,出现拼写错误w的概率。为了简化问题,假定两个单词在字形上越接近,就有越可能拼错,P(w|c)就越⼤。举例来说,相差⼀个字母的拼法,就⽐相差两个字母的拼法,发⽣概率更⾼。你想拼写单词July,那么错误拼成Julw(相差⼀个字母)的可能性,就⽐拼成Jullw⾼(相差两个字母)。值得⼀提的是,⼀般把这种问题称为“编辑距离”,参见。
所以,我们⽐较所有拼写相近的词在⽂本库中的出现频率,再从中挑出出现频率最⾼的⼀个,即是⽤户最想输⼊的那个词。具体的计算过程及此⽅法的缺陷请参见。
20.为什么朴素贝叶斯如此“朴素”?
因为它假定所有的特征在数据集中的作⽤是同样重要和独⽴的。正如我们所知,这个假设在现实世界中是很不真实的,因此,说朴素贝叶斯真的很“朴素”。
21.机器学习中,为何要经常对数据做归⼀化?
@zhanlijun
本题解析来源:
22.谈谈深度学习中的归⼀化问题。
详情参见此视频:
23.请简要说说⼀个完整机器学习项⽬的流程。

本文发布于:2024-09-24 09:16:36,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/53861.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:模型   线性   回归   计算   分类   问题
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议