2019/3/23 机器学习算法与自然语言处理
https://mp.weixin.qq.com/s/exHB6SkIOpxJDChUoa4oTw 1/79
1000面试题,BAT机器学习面试刷题宝典
新智元推荐
来源:CSDN
作者:qinjianhuang
整理编辑:三石
【新智元导读】刷题,是面试前的必备环节。本文作者便总结了往年BAT机器学习面试题,干
货满满,值得收藏。
想要入职大厂可谓是千军万马过独木桥。
为了通过层层考验,刷题肯定是必不可少的。本文作者根据网络在线发布的BAT机器学习面试
1000题系列,整理了一份面试刷题宝典。
1.请简要介绍下SVM。
SVM,全称是support vector machine,中文名叫支持向量机。SVM是一个面向数据的分类算
法,它的目标是为确定一个分类超平面,从而将不同的数据分隔开。
扩展:
昨天机器学习算法与自然语言处理
2019/3/23 机器学习算法与自然语言处理
https://mp.weixin.qq.com/s/exHB6SkIOpxJDChUoa4oTw 2/79
支持向量机学习方法包括构建由简至繁的模型:线性可分支持向量机、线性支持向量机及非线性支
持向量机。当训练数据线性可分时,通过硬间隔最大化,学习一个线性的分类器,即线性可分支持
向量机,又称为硬间隔支持向量机;当训练数据近似线性可分时,通过软间隔最大化,也学习一个
线性的分类器,即线性支持向量机,又称为软间隔支持向量机;当训练数据线性不可分时,通过使
用核技巧及软间隔最大化,学习非线性支持向量机。
支持向量机通俗导论(理解SVM的三层境界)
https://www.cnblogs.com/v-July-v/archive/2012/06/01/2539022.html
机器学习之深入理解SVM
http://blog.csdn.net/sinat_35512245/article/details/54984251
2.请简要介绍下Tensorflow的计算图。
@寒小阳:Tensorflow是一个通过计算图的形式来表述计算的编程系统,计算图也叫数据流图,
可以把计算图看做是一种有向图,Tensorflow中的每一个计算都是计算图上的一个节点,而节点
之间的边描述了计算之间的依赖关系。
3.请问GBDT和XGBoost的区别是什么?
@Xijun LI:XGBoost类似于GBDT的优化版,不论是精度还是效率上都有了提升。与GBDT相
比,具体的优点有:
损失函数是用泰勒展式二项逼近,而不是像GBDT里的就是一阶导数;
对树的结构进行了正则化约束,防止模型过度复杂,降低了过拟合的可能性;
节点分裂的方式不同,GBDT是用的基尼系数,XGBoost是经过优化推导后的。
知识点链接:集成学习的总结
https://xijunlee.github.io/2017/06/03/%E9%9B%86%E6%88%90%E5%AD%A6%E4%B9%A0%E
6%80%BB%E7%BB%93/
4.在k-means或kNN,我们是用欧氏距离来计算最近的邻居之间的距离。为什么不用曼哈顿距
离?
曼哈顿距离只计算水平或垂直距离,有维度的限制。另一方面,欧氏距离可用于任何空间的距离计
算问题。因为,数据点可以存在于任何空间,欧氏距离是更可行的选择。例如:想象一下国际象棋
2019/3/23 机器学习算法与自然语言处理
https://mp.weixin.qq.com/s/exHB6SkIOpxJDChUoa4oTw 3/79
棋盘,象或车所做的移动是由曼哈顿距离计算的,因为它们是在各自的水平和垂直方向做的运动。
5.百度2015校招机器学习笔试题。
知识点链接:百度2015校招机器学习笔试题
http://www.itmian4.com/thread-7042-1-1.html
6.简单说说特征工程。
7.关于LR。
@rickjin:把LR从头到脚都给讲一遍。建模,现场数学推导,每种解法的原理,正则化,LR和
maxent模型啥关系,LR为啥比线性回归好。有不少会背答案的人,问逻辑细节就糊涂了。原理都
会? 那就问工程,并行化怎么做,有几种并行化方式,读过哪些开源的实现。还会,那就准备收了
吧,顺便逼问LR模型发展历史。
2019/3/23 机器学习算法与自然语言处理
https://mp.weixin.qq.com/s/exHB6SkIOpxJDChUoa4oTw 4/79
知识点链接:机器学习之Logistic回归(逻辑蒂斯回归)
http://blog.csdn.net/sinat_35512245/article/details/54881672
8.overfitting怎么解决?
dropout、regularization、batch normalizatin
9.LR和SVM的联系与区别?
@朝阳在望,联系:
1、LR和SVM都可以处理分类问题,且一般都用于处理线性二分类问题(在改进的情况下可以处理
多分类问题)
2、两个方法都可以增加不同的正则化项,如L1、L2等等。所以在很多实验中,两种算法的结果是
很接近的。
区别:
1、LR是参数模型,SVM是非参数模型。
2、从目标函数来看,区别在于逻辑回归采用的是Logistical Loss,SVM采用的是hinge loss.这
两个损失函数的目的都是增加对分类影响较大的数据点的权重,减少与分类关系较小的数据点的权
2019/3/23 机器学习算法与自然语言处理
https://mp.weixin.qq.com/s/exHB6SkIOpxJDChUoa4oTw 5/79
重。
3、SVM的处理方法是只考虑Support Vectors,也就是和分类最相关的少数点,去学习分类器。
而逻辑回归通过非线性映射,大大减小了离分类平面较远的点的权重,相对提升了与分类最相关的
数据点的权重。
4、逻辑回归相对来说模型更简单,好理解,特别是大规模线性分类时比较方便。而SVM的理解和
优化相对来说复杂一些,SVM转化为对偶问题后,分类只需要计算与少数几个支持向量的距离,这个
在进行复杂核函数计算时优势很明显,能够大大简化模型和计算。
5、Logic 能做的 SVM能做,但可能在准确率上有问题,SVM能做的Logic有的做不了。
答案来源:机器学习常见面试问题(一)
http://blog.csdn.net/timcompp/article/details/62237986
10.LR与线性回归的区别与联系?
@nishizhen
个人感觉逻辑回归和线性回归首先都是广义的线性回归,
其次经典线性模型的优化目标函数是最小二乘,而逻辑回归则是似然函数,
另外线性回归在整个实数域范围内进行预测,敏感度一致,而分类范围,需要在[0,1]。逻辑回归
就是一种减小预测范围,将预测值限定为[0,1]间的一种回归模型,因而对于这类问题来说,逻辑
回归的鲁棒性比线性回归的要好。
@乖乖癞皮狗:逻辑回归的模型本质上是一个线性回归模型,逻辑回归都是以线性回归为理论支持
的。但线性回归模型无法做到sigmoid的非线性形式,sigmoid可以轻松处理0/1分类问题。
11.为什么XGBoost要用泰勒展开,优势在哪里?
@AntZ:XGBoost使用了一阶和二阶偏导, 二阶导数有利于梯度下降的更快更准. 使用泰勒展开取
得二阶倒数形式, 可以在不选定损失函数具体形式的情况下用于算法优化分析.本质上也就把损失函
数的选取和模型算法优化/参数选择分开了. 这种去耦合增加了XGBoost的适用性。
12.XGBoost如何寻找最优特征?是又放回还是无放回的呢?
@AntZ:XGBoost在训练的过程中给出各个特征的评分,从而表明每个特征对模型训练的重要
性.。XGBoost利用梯度优化模型算法, 样本是不放回的(想象一个样本连续重复抽出,梯度来回踏步
会不会高兴)。但XGBoost支持子采样, 也就是每轮计算可以不使用全部样本。