22道机器学习常见面试题目汇总!(附详细解答)

做者 | 数据分析1480
来源 | lsxxx2011

(1) 无监督和有监督算法的区别?算法

有监督学习:对具备概念标记(分类)的训练样本进行学习,以尽量对训练样本集外的数据进行标记(分类)预测。这里,全部的标记(分类)是已知的。所以,训练样本的岐义性低。bootstrap

无监督学习:对没有概念标记(分类)的训练样本进行学习,以发现训练样本集中的结构性知识。这里,全部的标记(分类)是未知的。所以,训练样本的岐义性高。聚类就是典型的无监督学习。小程序

(2) SVM 的推导,特性?多分类怎么处理?网络

SVM是最大间隔分类器,几何间隔和样本的误分次数之间存在关系,app

,其中机器学习

从线性可分状况下,原问题,特征转换后的dual问题,引入kernel(线性kernel,多项式,高斯),最后是soft margin。函数

线性:简单,速度快,可是须要线性可分。性能

多项式:比线性核拟合程度更强,知道具体的维度,可是高次容易出现数值不稳定,参数选择比较多。学习

高斯:拟合能力最强,可是要注意过拟合问题。不过只有一个参数须要调整。测试

多分类问题,通常将二分类推广到多分类的方式有三种,一对一,一对多,多对多。

一对一:将N个类别两两配对,产生N(N-1)/2个二分类任务,测试阶段新样本同时交给全部的分类器,最终结果经过投票产生。

一对多:每一次将一个例做为正例,其余的做为反例,训练N个分类器,测试时若是只有一个分类器预测为正类,则对应类别为最终结果,若是有多个,则通常选择置信度最大的。从分类器角度一对一更多,可是每一次都只用了2个类别,所以当类别数不少的时候一对一开销一般更小(只要训练复杂度高于O(N)便可获得此结果)。

多对多:若干各种做为正类,若干个类做为反类。注意正反类必须特殊的设计。

(3) LR 的推导,特性?

LR的优势在于实现简单,而且计算量很是小,速度很快,存储资源低,缺点就是由于模型简单,对于复杂的状况下会出现欠拟合,而且只能处理2分类问题(能够经过通常的二元转换为多元或者用softmax回归)。

(4) 决策树的特性?

决策树基于树结构进行决策,与人类在面临问题的时候处理机制十分相似。其特色在于须要选择一个属性进行分支,在分支的过程当中选择信息增益最大的属性,定义以下  

在划分中咱们但愿决策树的分支节点所包含的样本属于同一类别,即节点的纯度愈来愈高。决策树计算量简单,可解释性强,比较适合处理有缺失属性值的样本,可以处理不相关的特征,可是容易过拟合,须要使用剪枝或者随机森林。信息增益是熵减去条件熵,表明信息不肯定性较少的程度,信息增益越大,说明不肯定性下降的越大,所以说明该特征对分类来讲很重要。因为信息增益准则会对数目较多的属性有所偏好,所以通常用信息增益率(c4.5)

其中分母能够看做为属性自身的熵。取值可能性越多,属性的熵越大。

Cart决策树使用基尼指数来选择划分属性,直观的来讲,Gini(D)反映了从数据集D中随机抽取两个样本,其类别标记不一致的几率,所以基尼指数越小数据集D的纯度越高,通常为了防止过拟合要进行剪枝,有预剪枝和后剪枝,通常用cross validation集进行剪枝。

连续值和缺失值的处理,对于连续属性a,将a在D上出现的不一样的取值进行排序,基于划分点t将D分为两个子集。通常对每个连续的两个取值的中点做为划分点,而后根据信息增益选择最大的。与离散属性不一样,若当前节点划分属性为连续属性,该属性还能够做为其后代的划分属性。

(5) SVM、LR、决策树的对比?

SVM既能够用于分类问题,也能够用于回归问题,而且能够经过核函数快速的计算,LR实现简单,训练速度很是快,可是模型较为简单,决策树容易过拟合,须要进行剪枝等。从优化函数上看,soft margin的SVM用的是hinge loss,而带L2正则化的LR对应的是cross entropy loss,另外adaboost对应的是exponential loss。因此LR对远点敏感,可是SVM对outlier不太敏感,由于只关心support vector,SVM能够将特征映射到无穷维空间,可是LR不能够,通常小数据中SVM比LR更优一点,可是LR能够预测几率,而SVM不能够,SVM依赖于数据测度,须要先作归一化,LR通常不须要,对于大量的数据LR使用更加普遍,LR向多分类的扩展更加直接,对于类别不平衡SVM通常用权重解决,即目标函数中对正负样本代价函数不一样,LR能够用通常的方法,也能够直接对最后结果调整(经过阈值),通常小数据下样本维度比较高的时候SVM效果要更优一些。

(6) GBDT 和随机森林的区别?

随机森林采用的是bagging的思想,bagging又称为bootstrap aggreagation,经过在训练样本集中进行有放回的采样获得多个采样集,基于每一个采样集训练出一个基学习器,再将基学习器结合。随机森林在对决策树进行bagging的基础上,在决策树的训练过程当中引入了随机属性选择。传统决策树在选择划分属性的时候是在当前节点属性集合中选择最优属性,而随机森林则是对结点先随机选择包含k个属性的子集,再选择最有属性,k做为一个参数控制了随机性的引入程度。

另外,GBDT训练是基于Boosting思想,每一迭代中根据错误更新样本权重,所以是串行生成的序列化方法,而随机森林是bagging的思想,所以是并行化方法。

(7) 如何判断函数凸或非凸?什么是凸优化?

首先定义凸集,若是x,y属于某个集合C,而且全部的

也属于c,那么c为一个凸集,进一步,若是一个函数其定义域是凸集,而且

则该函数为凸函数。上述条件还能推出更通常的结果,

若是函数有二阶导数,那么若是函数二阶导数为正,或者对于多元函数,Hessian矩阵半正定则为凸函数。

(也可能引到SVM,或者凸函数局部最优也是全局最优的证实,或者上述公式指望状况下的Jessen不等式)

(8) 如何解决类别不平衡问题?

有些状况下训练集中的样本分布很不平衡,例如在肿瘤检测等问题中,正样本的个数每每很是的少。从线性分类器的角度,在用

对新样本进行分类的时候,事实上在用预测出的y值和一个y值进行比较,例如经常在y>0.5的时候判为正例,不然判为反例。概率

反映了正例可能性和反例可能性的比值,阈值0.5刚好代表分类器认为正反的可能性相同。在样本不均衡的状况下,应该是分类器的预测概率高于观测概率就判断为正例,所以应该是

时预测为正例,这种策略称为rebalancing。可是训练集并不必定是真实样本整体的无偏采样,一般有三种作法,一种是对训练集的负样本进行欠采样,第二种是对正例进行升采样,第三种是直接基于原始训练集进行学习,在预测的时候再改变阈值,称为阈值移动。注意过采样通常经过对训练集的正例进行插值产生额外的正例,而欠采样将反例划分为不一样的集合供不一样的学习器使用。

(9) 解释对偶的概念。

一个优化问题能够从两个角度进行考察,一个是primal 问题,一个是dual 问题,就是对偶问题,通常状况下对偶问题给出主问题最优值的下界,在强对偶性成立的状况下由对偶问题能够获得主问题的最优下界,对偶问题是凸优化问题,能够进行较好的求解,SVM中就是将primal问题转换为dual问题进行求解,从而进一步引入核函数的思想。

(10) 如何进行特征选择?

特征选择是一个重要的数据预处理过程,主要有两个缘由,首先在现实任务中咱们会遇到维数灾难的问题(样本密度很是稀疏),若能从中选择一部分特征,那么这个问题能大大缓解,另外就是去除不相关特征会下降学习任务的难度,增长模型的泛化能力。冗余特征指该特征包含的信息能够从其余特征中推演出来,可是这并不表明该冗余特征必定没有做用,例如在欠拟合的状况下也能够用过加入冗余特征,增长简单模型的复杂度。

在理论上若是没有任何领域知识做为先验假设那么只能遍历全部可能的子集。可是这显然是不可能的,由于须要遍历的数量是组合爆炸的。通常咱们分为子集搜索和子集评价两个过程,子集搜索通常采用贪心算法,每一轮从候选特征中添加或者删除,分别成为前向和后先搜索。或者二者结合的双向搜索。子集评价通常采用信息增益,对于连续数据每每排序以后选择中点做为分割点。

常见的特征选择方式有过滤式,包裹式和嵌入式,filter,wrapper和embedding。Filter类型先对数据集进行特征选择,再训练学习器。Wrapper直接把最终学习器的性能做为特征子集的评价准则,通常经过不断候选子集,而后利用cross-validation过程更新候选特征,一般计算量比较大。嵌入式特征选择将特征选择过程和训练过程融为了一体,在训练过程当中自动进行了特征选择,例如L1正则化更易于得到稀疏解,而L2正则化更不容易过拟合。L1正则化能够经过PGD,近端梯度降低进行求解。

(11) 为何会产生过拟合,有哪些方法能够预防或克服过拟合?

通常在机器学习中,将学习器在训练集上的偏差称为训练偏差或者经验偏差,在新样本上的偏差称为泛化偏差。显然咱们但愿获得泛化偏差小的学习器,可是咱们事先并不知道新样本,所以实际上每每努力使经验偏差最小化。然而,当学习器将训练样本学的太好的时候,每每可能把训练样本自身的特色当作了潜在样本具备的通常性质。这样就会致使泛化性能降低,称之为过拟合,相反,欠拟合通常指对训练样本的通常性质还没有学习好,在训练集上仍然有较大的偏差。

欠拟合:通常来讲欠拟合更容易解决一些,例如增长模型的复杂度,增长决策树中的分支,增长神经网络中的训练次数等等。

过拟合:通常认为过拟合是没法完全避免的,由于机器学习面临的问题通常是np-hard,可是一个有效的解必定要在多项式内能够工做,因此会牺牲一些泛化能力。过拟合的解决方案通常有增长样本数量,对样本进行降维,下降模型复杂度,利用先验知识(L1,L2正则化),利用cross-validation,early stopping等等。

(12) 什么是误差与方差?

泛化偏差能够分解成误差的平方加上方差加上噪声。误差度量了学习算法的指望预测和真实结果的偏离程度,刻画了学习算法自己的拟合能力,方差度量了一样大小的训练集的变更所致使的学习性能的变化,刻画了数据扰动所形成的影响,噪声表达了当前任务上任何学习算法所能达到的指望泛化偏差下界,刻画了问题自己的难度。误差和方差通常称为bias和variance,通常训练程度越强,误差越小,方差越大,泛化偏差通常在中间有一个最小值,若是误差较大,方差较小,此时通常称为欠拟合,而误差较小,方差较大称为过拟合。

误差:

方差:

(13) 神经网络的原理,如何进行训练?

神经网络自发展以来已是一个很是庞大的学科,通常而言认为神经网络是由单个的神经元和不一样神经元之间的链接构成,不够的结构构成不一样的神经网络。最多见的神经网络通常称为多层前馈神经网络,除了输入和输出层,中间隐藏层的个数被称为神经网络的层数。BP算法是训练神经网络中最著名的算法,其本质是梯度降低和链式法则。

(14) 介绍卷积神经网络,和 DBN 有什么区别?

卷积神经网络的特色是卷积核,CNN中使用了权共享,经过不断的上采用和卷积获得不一样的特征表示,采样层又称为pooling层,基于局部相关性原理进行亚采样,在减小数据量的同时保持有用的信息。DBN是深度信念网络,每一层是一个RBM,整个网络能够视为RBM堆叠获得,一般使用无监督逐层训练,从第一层开始,每一层利用上一层的输入进行训练,等各层训练结束以后再利用BP算法对整个网络进行训练。

(15) 采用 EM 算法求解的模型有哪些,为何不用牛顿法或梯度降低法?

用EM算法求解的模型通常有GMM或者协同过滤,k-means其实也属于EM。EM算法必定会收敛,可是可能收敛到局部最优。因为求和的项数将随着隐变量的数目指数上升,会给梯度计算带来麻烦。

(16) 用 EM 算法推导解释 Kmeans。

k-means算法是高斯混合聚类在混合成分方差相等,且每一个样本仅指派一个混合成分时候的特例。注意k-means在运行以前须要进行归一化处理,否则可能会由于样本在某些维度上过大致使距离计算失效。k-means中每一个样本所属的类就能够当作是一个隐变量,在E步中,咱们固定每一个类的中心,经过对每个样本选择最近的类优化目标函数,在M步,从新更新每一个类的中心点,该步骤能够经过对目标函数求导实现,最终可得新的类中心就是类中样本的均值。

(17) 用过哪些聚类算法,解释密度聚类算法。

k-means算法,聚类性能的度量通常分为两类,一类是聚类结果与某个参考模型比较(外部指标),另外是直接考察聚类结果(内部指标)。后者一般有DB指数和DI,DB指数是对每一个类,找出类内平均距离/类间中心距离最大的类,而后计算上述值,并对全部的类求和,越小越好。相似k-means的算法仅在类中数据构成簇的状况下表现较好,密度聚类算法从样本密度的角度考察样本之间的可链接性,并基于可链接样本不断扩展聚类蔟获得最终结果。DBSCAN(density-based spatial clustering of applications with noise)是一种著名的密度聚类算法,基于一组邻域参数

进行刻画,包括邻域,核心对象(邻域内至少包含

个对象),密度直达(j由i密度直达,表示j在i的邻域内,且i是一个核心对象),密度可达(j由i密度可达,存在样本序列使得每一对都密度直达),密度相连(xi,xj存在k,i,j均有k可达),先找出样本中全部的核心对象,而后以任一核心对象做为出发点,找出由其密度可达的样本生成聚类蔟,直到全部核心对象被访问过为止。

(18) 聚类算法中的距离度量有哪些?

聚类算法中的距离度量通常用闽科夫斯基距离,在p取不一样的值下对应不一样的距离,例如p=1的时候对应曼哈顿距离,p=2的状况下对应欧式距离,p=inf的状况下变为切比雪夫距离,还有jaccard距离,幂距离(闽科夫斯基的更通常形式),余弦类似度,加权的距离,马氏距离(相似加权)做为距离度量须要知足非负性,同一性,对称性和直递性,闽科夫斯基在p>=1的时候知足读来那个性质,对于一些离散属性例如{飞机,火车,轮船}则不能直接在属性值上计算距离,这些称为无序属性,能够用VDM(Value Diffrence Metrix),属性u上两个离散值a,b之间的VDM距离定义为

其中

表示在第i个簇中属性u上a的样本数,样本空间中不一样属性的重要性不一样的时候能够采用加权距离,通常若是认为全部属性重要性相同则要对特征进行归一化。通常来讲距离须要的是类似性度量,距离越大,类似度越小,用于类似性度量的距离未必必定要知足距离度量的全部性质,例如直递性。好比人马和人,人马和马的距离较近,而后人和马的距离可能就很远。

(19) 解释贝叶斯公式和朴素贝叶斯分类。

贝叶斯公式:

最小化分类错误的贝叶斯最优分类器等价于最大化后验几率。

基于贝叶斯公式来估计后验几率的主要困难在于,条件几率

是全部属性上的联合几率,难以从有限的训练样本直接估计获得。朴素贝叶斯分类器采用了属性条件独立性假设,对于已知的类别,假设全部属性相互独立。这样,朴素贝叶斯分类则定义为

若是有足够多的独立同分布样本,那么

能够根据每一个类中的样本数量直接估计出来。在离散状况下先验几率能够利用样本数量估计或者离散状况下根据假设的几率密度函数进行最大似然估计。朴素贝叶斯能够用于同时包含连续变量和离散变量的状况。若是直接基于出现的次数进行估计,会出现一项为0而乘积为0的状况,因此通常会用一些平滑的方法,例如拉普拉斯修正,

这样既能够保证几率的归一化,同时还能避免上述出现的现象。

(20) 解释L1和L2正则化的做用。

L1正则化是在代价函数后面加上

,L2正则化是在代价函数后面增长了

,二者都起到必定的过拟合做用,二者都对应必定的先验知识,L1对应拉普拉斯分布,L2对应高斯分布,L1偏向于参数稀疏性,L2偏向于参数分布较为稠

(21) TF-IDF是什么?

TF指Term frequecy,表明词频,IDF表明inverse document frequency,叫作逆文档频率,这个算法能够用来提取文档的关键词,首先通常认为在文章中出现次数较多的词是关键词,词频就表明了这一项,然而有些词是停用词,例如的,是,有这种大量出现的词,首先须要进行过滤,好比过滤以后再统计词频出现了中国,蜜蜂,养殖且三个词的词频几乎一致,可是中国这个词出如今其余文章的几率比其余两个词要高很多,所以咱们应该认为后两个词更能表现文章的主题,IDF就表明了这样的信息,计算该值须要一个语料库,若是一个词在语料库中出现的几率越小,那么该词的IDF应该越大,通常来讲TF计算公式为(某个词在文章中出现次数/文章的总词数),这样消除长文章中词出现次数多的影响,IDF计算公式为log(语料库文章总数/(包含该词的文章数)+1)。将二者乘乘起来就获得了词的TF-IDF。传统的TF-IDF对词出现的位置没有进行考虑,能够针对不一样位置赋予不一样的权重进行修正,注意这些修正之因此是有效的,正是由于人观测过了大量的信息,所以建议了一个先验估计,人将这个先验估计融合到了算法里面,因此使算法更加的有效

(22) 文本中的余弦距离是什么,有哪些做用?

余弦距离是两个向量的距离的一种度量方式,其值在-1~1之间,若是为1表示两个向量同相,0表示两个向量正交,-1表示两个向量反向。使用TF-IDF和余弦距离能够寻找内容类似的文章,例如首先用TF-IDF找出两篇文章的关键词,而后每一个文章分别取出k个关键词(10-20个),统计这些关键词的词频,生成两篇文章的词频向量,而后用余弦距离计算其类似度。

搜索进入咱们的小程序,解锁更多新鲜资讯和优质内容,还有不少免费试听课程,不要错过哟!

相关文章
相关标签/搜索