机器学习面试题集(个人疑惑的题)

找工作一直在找机器学习的岗位,最近在博客上看到一些面试题,做了一下,对自己不懂的地方做了一些总结:

1. 假设X公司的员工收入分布中位数为$35,000,25%和75%比例处的数值为$21,000 和$53,000。收入$1会被认为是异常值吗?

答案:需要更多信息

解析:异常值是指样本中的个别值明显偏离其余观测值,也叫离群值。目前人们对异常值的判别与剔除主要采用物理判别法和统计判别法两种方法。所谓物理判别法就是根据人们对客观事物已有的认识,判别由于外界干扰、人为误差等原因造成实测数据值偏离正常结果,在实验过程中随时判断,随时剔除。统计判别法是给定一个置信概率,并确定一个置信限,凡超过此限的误差,就认为它不属于随机误差范围,将其视为异常值剔除。当物理识别不易判断时,一般采用统计识别法。该题中,所给的信息量过少,无法肯定一定是异常值。

2.我们可以通过一种叫“正规方程”的分析方法来计算线性回归的相关系数,下列关于“正规方程”哪一项是正确的?

  1.我们不必选择学习比率 (ok) 

  2.当特征值数量很大时会很慢 (ok) 

  3.不需要迭代 (ok) 

注释:正规方程可替代梯度下降来计算相关系数

答案:C  因为残差之和总为零

4.在简单线性回归模型中(单自变量),如果改变输入变量1单元,输出变量会变化多少?

答案:斜率值 [简单线性回归公式为Y=a+bx,如果给x增加1,y就变成了a+b(x+1),即y增加了b]

5.下列哪一种回归方法的相关系数没有闭式解?

答案:Lasso回归没有闭式解,Lasso不允许闭式解,L1-penalty使解为非线性的,所以需要近似解


 

6.

预测值与残差之间不应该存在任何函数关系,若存在函数关系,表明模型拟合的效果并不很好。对应在图中,若横座标是预测值,纵座标是残差,残差应表现为与预测值无关的随机分布。但是,图 3 中残差与预测值呈二次函数关系,表明该模型并不理想

7.假设有如下一组输入并输出一个实数的数据,则线性回归(Y = bX+c)的留一法交叉验证均方误差为?

8.线性回归和逻辑回归中,关于损失函数对权重系数的偏导数,下列说法正确的是?

线性回归和逻辑回归对权重系数的偏导数都相同。

线性回归的损失函数为:

逻辑回归的损失函数为:

线性回归输出值Z经过sigmoid函数就是逻辑回归输出值,结合上述损失函数表达式可知,逻辑回归的损失函数对Z求偏导数与线性回归的损失函数对Z求偏导数是一样的,且两者的Z=(权重向量和特征向量的内积),故线性回归和逻辑回归中,关于损失函数对权重系数的偏导数是一样的。

9.下列哪种方法被用于预测因变量? 1.线性回归  2.逻辑回归 

答案:逻辑回归 [逻辑回归的输出是因变量Y取值的概率,用于分类问题,而不是对因变量的取值进行预测,而线性回归的输出是模型对因变量Y的取值进行预测和估计]

10.Y的预期值是关于变量X(X1,X2….Xn)的线性函数,回归线定义为Y = β0 + β1 X1 + β2 X2……+ βn Xn,下列陈述哪项正确? 1.如果Xi的变化量为 Xi,其它为常量,则Y的变化量为βi Xi,常量βi可以为正数或负数 (ok)

2. βi 的值都是一样的,除非是其它X的βi (ok)

3.X对Y预期值的总影响为每个分影响之和 提示:特征值间相互独立,互不干扰 (ok)

11.假设对数据提供一个逻辑回归模型,得到训练精度X和测试精度Y。在数据中加入新的特征值,则下列哪一项是正确的?

提示:其余参数是一样的

A. 训练精度总是下降  【向模型中加入更多特征值会提高训练精度,低偏差;如果特征值是显著的,测试精度会上升。】

12.以下哪一种方法最适合在n(n>1)维空间中做异常点检测 [马氏距离]

解释:马氏距离是是一种有效的计算两个未知样本集的相似度的多元计量方法,以卡方分布为基础,表示数据的协方差距离。与欧氏距离不同的是它考虑到各种特性之间的联系(例如:一条关于身高的信息会带来一条关于体重的信息,因为两者是关联的)。因此马氏距离常用于多元异常值检测。

13.

一般来说,平均轮廓系数越高,聚类的质量也相对较好。在这道题中,对于研究区域的网格单元,最优聚类数应该是2,这时平均轮廓系数的值最高。但是,聚类结果(k=2)的 SSE 值太大了。当 k=6 时,SEE 的值会低很多,但此时平均轮廓系数的值非常高,仅仅比 k=2 时的值低一点。因此,k=6 是最佳的选择。

14. 在进行聚类分析之前,给出少于所需数据的数据点,下面哪种方法最适合用于数据清理? 1 限制和增加变量 2 去除异常值

答案:1 [在数据点相对较少的时候,不推荐去除异常值,在一些情况下,对变量进行剔除或增加更合适]

15.决策树算法可以用于数据分析中的聚类分析,本质上是一种分类算法

16.答案:【1,2,3】

电影推荐系统是以下哪些的应用实例:
1 分类
2 聚类
3 强化学习
4 回归

解释:一般来说,电影推荐系统会基于用户过往的活动和资料,将用户聚集在有限数量的相似组中。然后,从根本上来说,对同一集群的用户进行相似的推荐。 在某些情况下,电影推荐系统也可以归为分类问题,将最适当的某类电影分配给特定用户组的用户。与此同时,电影推荐系统也可以视为增强学习问题,即通过先前的推荐来改进以后的电影推荐。

17. 一个SVM存在欠拟合问题,下面怎么做能提高模型的性能:A

A.增大惩罚参数C

B.减小惩罚参数C

C.减小核函数系数(gamma值)

解释:C >0称为惩罚参数,是调和二者的系数,C值大时对误差分类的惩罚增大,

当C越大,趋近无穷的时候,表示不允许分类误差的存在,margin越小,容易过拟合。

C值小时对误差分类的惩罚减小,当C趋于0时,表示我们不再关注分类是否正确,只要求margin越大,容易欠拟合。

18.频率派和贝叶斯派的区别,说法正确的是 :贝叶斯学派考虑先验概率

19.以下对朴素贝叶斯算法说法错误的是:D

A.适合多分类任务

B.对于大训练数据集运行速度快

C.属于生成模型

D.特征有缺失值时无法计算

解释:朴素贝叶斯对数据的训练和分类也仅仅是特征概率的数学运算而已,就算缺失了某个特征,顶多不用计数而已,还是可以计算的

20.关于极大似然估计mle,有:

 1) MLE并不总是存在的

 2) 如果MLE存在,而其可能不特异

21.异方差性是线性回归有变化的误差项;回归分析中的残差有:残差的平均值总是为零

22.在导出线性回归参数时,有以下四种假设:

1) y与x的真实关系是线性的

2)模型误差是统计独立的

3)误差通常服从一个平均值为零,标准差是恒定的分布

4)x非随机的,无错的

23.在拟合一个线性回归时:

1) 数据量越大,越容易过拟合

2) 假设区间越小,模型复杂度越小,越容易欠拟合

24.在lasso回归中,大的特征值 => 小相关系数 =>  更少lasso penalty  =>  更有可能被保留

lasso回归使用特征值子集进行选择(使得权重为零,删除一些特征。但ridge仅仅只是让其趋近于0)

25.可用来评价回归模型的指标:R方,调整R方,F统计量,RMSE/MSE/MAE

26.若已判定有多元线性特征时,若移除两个变量会损失一切信息,则可以采取下列方法其中一种即可

1) 只移除一个特征

2) 不移除,但是用正则化算法

补充:共线性是指多变量线性回归中,变量之间由于存在高精度相关关系而是估计结果不准确,会造成特征冗余,容易过拟合

solution:排除变量的相关性/加入正则项

27.在现有数据集和模型上,新加入一个特征,训练精确度一定上升或不变

28.逻辑回归不需要对输入数据做标准化处理,因为LR将各维度特征的线性组合进行了非线性处理。即用sigmoid将其压缩到(0,1)区间,避免了某些特征占主导位置。

29.欠拟合状态是正则化项惩罚程度最高的

30.泛化误差指模型对未知数据的预测能力

31.

32.关于线性回归:

1) 基本假设包括随机误差项(干扰项)是均值为0,方差为1的标准正态分布

2) 在违背基本假设下,普通最小二乘法估计量不再是最佳线性无偏估计

3)可以用DW检验残差是否存在序列相关性

4)多重共线性会使得参数估计值方差减小

33.逻辑回归为什么要对特征进行离散化?

在工业界,很少直接将连续值作为逻辑回归模型的特征输入,而是将连续特征离散为一系列0、1特征后将其喂入LR模型中,有优点:

1) 离散特征的增加和减少都很容易,易于模型迭代

2) 稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展

3)离散后的特征对异常数据有很强的鲁棒性,例如对于年龄的划分:年龄大于30的划分为1,则某一样本的年龄200,即为1.

4)LR属于广义线性模型,表达能力受限;单变量离散为N个后,每个变量都有单独的权重,相当于为模型引入了非线性,能够提升模型表达能力,加大拟合。

5)离散后可进行特征交叉,由M+N个变量变为M*N个变量,进一步引入了非线性,提升表达能力。

6)特征离散后,model会更稳定

7)特征离散后,起到了简化LR的作用,降低了模型过拟合的风险。

正如有人曾说:model使用离散特征还是连续特征,实质上是一个“海量离散特征+简单模型”同“少量连续特征+复杂模型”的权衡。即:离散化线性模型——>折腾特征(现已比较成熟);连续化深度模型————>(发展蓬勃)

34.在大数据集上使用逻辑回归模型,为减少训练时间并且获得相近精度,可以:增加学习率(减少时间)+减少迭代次数(获得相近精度)

35.L1和L2正则化分别服从什么分布?区别?

L1正则化:常用作特征选择,使得特征会等于0,L1正则化服从拉普拉斯分布, f(x|u,b) = \frac{1}{2b}\times e^{-\frac{|x-u|}{b}}

L2正则化:常用于优化泛化性能,降低过拟合,使得特征会趋于零,L2正则化服从高斯分布,f(x) = \frac{1}{\sigma \times \sqrt{2\pi}}\times e^{-\frac{(x-u)^{2}}{2\sigma^{2}}}

贝叶斯的应用疑惑:

1.经常在网上搜索东西的朋友知道,当你不小心输入一个不存在的单词时,搜索引擎会提示你是不是要输入某一个正确的单词,比如当你在Google中输入“Julw”时,系统会猜测你的意图:是不是要搜索“July”,如下图所示:

 

这叫做拼写检查。根据谷歌一员工写的文章How to Write a Spelling Corrector显示,Google的拼写检查基于贝叶斯方法。请说说的你的理解,具体Google是怎么利用贝叶斯方法,实现”拼写检查”的功能。

用户输入一个单词时,可能拼写正确,也可能拼写错误。如果把拼写正确的情况记做c(代表correct),拼写错误的情况记做w(代表wrong),那么”拼写检查”要做的事情就是:在发生w的情况下,试图推断出c。换言之:已知w,然后在若干个备选方案中,找出可能性最大的那个c,也就是求P(c|w)的最大值。而根据贝叶斯定理,有: 
                                                     P(c|w)=\frac{P(w|c)P(c)}{P(w)}
由于对于所有备选的c来说,对应的都是同一个w,所以它们的P(w)是相同的,因此我们只要最大化P(w|c)P(c)即可。其中:

P(c)表示某个正确的词的出现”概率”,它可以用”频率”代替。如果我们有一个足够大的文本库,那么这个文本库中每个单词的出现频率,就相当于它的发生概率。某个词的出现频率越高,P(c)就越大。比如在你输入一个错误的词“Julw”时,系统更倾向于去猜测你可能想输入的词是“July”,而不是“Jult”,因为“July”更常见。

P(w|c)表示在试图拼写c的情况下,出现拼写错误w的概率。为了简化问题,假定两个单词在字形上越接近,就有越可能拼错,P(w|c)就越大。举例来说,相差一个字母的拼法,就比相差两个字母的拼法,发生概率更高。你想拼写单词July,那么错误拼成Julw(相差一个字母)的可能性,就比拼成Jullw高(相差两个字母)。值得一提的是,一般把这种问题称为“编辑距离”,参见程序员编程艺术第二十八~二十九章:最大连续乘积子串、字符串编辑距离。

所以,我们比较所有拼写相近的词在文本库中的出现频率,再从中挑出出现频率最高的一个,即是用户最想输入的那个词。具体的计算过程及此方法的缺陷请参见How to Write a Spelling Corrector。

2. 请大致对比下plsa和LDA的区别。机器学习 ML模型 中等

3.在使用Naive Bayes分类时,不小心将训练数据的两个维度搞重复了,则会有如下:

* 模型效果相比无重复特征的情况下,精确度会降低

* 当两列特征高度相关时,无法用两列特征相同时所得的结论来分析问题

基础知识应用疑惑:

1.  机器学习项目的一个完整的流程:

step1 抽象成数学问题
明确问题是进行机器学习的第一步。机器学习的训练过程通常都是一件非常耗时的事情,胡乱尝试时间成本是非常高的。
这里的抽象成数学问题,指的我们明确我们可以获得什么样的数据,目标是一个分类还是回归或者是聚类的问题,如果都不是的话,如果划归为其中的某类问题。
step2 获取数据
数据决定了机器学习结果的上限,而算法只是尽可能逼近这个上限。
数据要有代表性,否则必然会过拟合。
而且对于分类问题,数据偏斜不能过于严重,不同类别的数据数量不要有数个数量级的差距。
而且还要对数据的量级有一个评估,多少个样本,多少个特征,可以估算出其对内存的消耗程度,判断训练过程中内存是否能够放得下。如果放不下就得考虑改进算法或者使用一些降维的技巧了。如果数据量实在太大,那就要考虑分布式了。
step3 特征预处理与特征选择
良好的数据要能够提取出良好的特征才能真正发挥效力。
特征预处理、数据清洗是很关键的步骤,往往能够使得算法的效果和性能得到显著提高。归一化、离散化、因子化、缺失值处理、去除共线性等,数据挖掘过程中很多时间就花在它们上面。这些工作简单可复制,收益稳定可预期,是机器学习的基础必备步骤。
筛选出显著特征、摒弃非显著特征,需要机器学习工程师反复理解业务。这对很多结果有决定性的影响。特征选择好了,非常简单的算法也能得出良好、稳定的结果。这需要运用特征有效性分析的相关技术,如相关系数、卡方检验、平均互信息、条件熵、后验概率、逻辑回归权重等方法。
step4 训练模型与调优
直到这一步才用到我们上面说的算法进行训练。现在很多算法都能够封装成黑盒供人使用。但是真正考验水平的是调整这些算法的(超)参数,使得结果变得更加优良。这需要我们对算法的原理有深入的理解。理解越深入,就越能发现问题的症结,提出良好的调优方案。
step5 模型诊断
如何确定模型调优的方向与思路呢?这就需要对模型进行诊断的技术。
过拟合、欠拟合 判断是模型诊断中至关重要的一步。常见的方法如交叉验证,绘制学习曲线等。过拟合的基本调优思路是增加数据量,降低模型复杂度。欠拟合的基本调优思路是提高特征数量和质量,增加模型复杂度。
误差分析 也是机器学习至关重要的步骤。通过观察误差样本,全面分析误差产生误差的原因:是参数的问题还是算法选择的问题,是特征的问题还是数据本身的问题……
诊断后的模型需要进行调优,调优后的新模型需要重新进行诊断,这是一个反复迭代不断逼近的过程,需要不断地尝试, 进而达到最优状态。
step6 模型融合
一般来说,模型融合后都能使得效果有一定提升。而且效果很好。
工程上,主要提升算法准确度的方法是分别在模型的前端(特征清洗和预处理,不同的采样模式)与后端(模型融合)上下功夫。因为他们比较标准可复制,效果比较稳定。而直接调参的工作不会很多,毕竟大量数据训练起来太慢了,而且效果难以保证。
step7 上线运行
这一部分内容主要跟工程实现的相关性比较大。工程上是结果导向,模型在线上运行的效果直接决定模型的成败。 不单纯包括其准确程度、误差等情况,还包括其运行的速度(时间复杂度)、资源消耗程度(空间复杂度)、稳定性是否可接受。
这些工作流程主要是工程实践上总结出的一些经验。并不是每个项目都包含完整的一个流程。这里的部分只是一个指导性的说明,只有大家自己多实践,多积累项目经验,才会有自己更深刻的认识。
2.  机器学习算法是否需要进行归一化处理?那些需要?

概率模型不需要进行归一化处理,因为他们不关心变量的值,而仅仅关心变量的分布和变量之间的条件概率。例如决策树、RF不需要(树形结果的数值缩放,不影响分裂点的位置)(树形模型不是利用梯度下降进行优化);而AdaBoost,SVM,LR,KMeans之类的最优化问题需要进行归一化处理。

3.线性分类器和非线性分类器的区别和优势?

线性分类器:输入和参数的关系是线性的,例如:LR、Bayes、单层感知机、线性回归、SVM(线性核)

非线性分类器:输入和参数的关系是非线性的,例如:决策树、RF、GBDT、多层感知机、SVM(非线性核函数)

4.协方差和相关性的区别?

5.数据的逻辑存储结构(如数组,队列,树等)对于软件开发具有十分重要的影响,试对你所了解的各种存储结构从运行速度、存储效率和适用场合等方面进行简要地分析

6.红黑树的5个性质:【红黑树是一棵二叉查找树:左小右大; 并且无键值相等的结点】

* 每个结点要么是红的要么是黑的。  
*  根结点是黑的。  
*  每个叶结点(叶结点即指树尾端NIL指针或NULL结点)都是黑的。  
*  如果一个结点是红的,那么它的两个儿子都是黑的。  
*  对于任意结点而言,其到叶结点树尾端NIL指针的每条路径都包含相同数目的黑结点。 
正是红黑树的这5条性质,使一棵n个结点的红黑树始终保持了logn的高度

7.梯度下降和牛顿法:谁是下降最快的方向?

* 梯度下降并不是下降最快的方向,其只是目标函数在当前的点的切平面上下降最快的方向。在practical implementation中,牛顿方向(考虑海森矩阵)才一般被认为是下降最快的方向,可以达到superlinear的收敛速度。梯度下降类的算法的收敛速度一般是linear甚至sublinear的(在某些带复杂约束的问题)【牛顿方向最快,超线性收敛速度,梯度下降是线性收敛或者次线性收敛】

梯度下降决定方向,而步长决定行走的距离【每要走一步都根据上一步所在的位置选择当前最陡峭最快下山的方向走下一步】,GD容易陷入局部最小。延伸:SGD  BGD  Mini-Batch GD

* 牛顿法:【二次收敛速度】

牛顿和梯度下降的比较:

1) 牛顿法二阶收敛,梯度下降是一阶收敛

2)牛顿法用一个二次曲面去拟合当前你所在的局部曲面,而梯度下降则用一个平面去拟合当前曲面。

牛顿法的优点:

1)二阶收敛速度,收敛速度快

2)一种迭代算法,每步都需要求解目标函数中的hessian矩阵的逆矩阵,计算复杂

8.python语言:

python语言是一种解释性语言,PHP和Ruby也是。;python动态类型的(即在声明变量时,不需要指定变量类型)

面向对象语言,所有允许定义类并且可以继承和组合;python应用场景户:web应用开发,数据科学,AI

* python如何执行内存管理:

1)对象的引用计数机制

2)垃圾回收机制

3)内存池机制

9.常用的损失函数的类型及含义:

对于给定的输入X,由f(X)给出相应的输出Y,这个输出的预测值f(X)与真实值Y可能一致也可能不一致(要知道,有时损失或误差是不可避免的),用一个损失函数来度量预测错误的程度。损失函数记为L(Y, f(X))。

  

10.hashmap 与hashtable的区别:

HashMap基于Hashtable实现,不同之处在于HashMap是非同步的,并且允许null,即null value和null key,Hashtable则不允许null。

hashmap/hashset等凡是带有hash字眼的均基于hashtable实现,没带hash字眼的如set/map均是基于红黑树实现,前者无序,后者有序。

11.PCA:

1) 在经PCA分解之后,数据的协方差矩阵成为对角矩阵

2)PCA分析是通过求协方差矩阵的特征值得到

3)KL变换与PCA是不同的概念,PCA的变换矩阵是协方差矩阵;而KL变换的变换矩阵可以有很多种(二阶矩阵,协方差矩阵等);当KL变换的变换矩阵为协方差矩阵时,该KL变换就是PCA。

12. 如何进行特征选择?

1) 去除方差较少的特征

2) 正则化

3) 数据预处理:缺失值、异常值、离散化、亚编码、二值化、归一化、利用pearson等相关系数,去除高度相关的特征列

4)特征工程中特征选择(过滤式  包裹式  嵌入式)

5)降维:PCA + LDA

13.为什么在神经网络中引入非线性激活函数:
1)对于NN而言,若仅仅在线性激活函数下,多层网络与一层网络相当

2)非线性变换是深度学习的有效原因之一

14.常用的激活函数:sigmoid函数  tanh 函数  RELU函数

Sigmoid激活函数:

f(z) = \frac{1}{1+e^{-z}} \\ f^{'}(z) = f(z)(1-f(z))

 Tanh激活函数:

f(z) = \frac{e^{z}-e^{-z}}{e^{z}+e^{-z}}\\ f^{'}(z) = 1-f^{2}(z)

ReLu激活函数:

f(z) = max(z,0)\\ f^{'}(z) = 1 /0

15深度学习的调参技巧:

1)参数初始化:均匀分布初始化/normal初始化/SVD初始化

2)数据预处理:Z-Score

3)训练技巧:BN +梯度裁剪 + dropout+ Adam/Adadelta + data shuffle

4)Ensemble:同样的参数,不同的初始化方式;不同参数,cross-validation,选取best几组;不同模型,线性融合

16.在人工神经网络中为什么ReLu要好过于tanh和sigmoid function?

1)采用sigmoid等函数,算激活函数时(指数运算),计算量大,反向传播求误差梯度时,求导涉及除法和指数运算,计算量相对大,而采用Relu激活函数,整个过程的计算量节省很多。

2)对于深层网络,sigmoid函数反向传播时,很容易就会出现梯度消失的情况(在sigmoid接近饱和区时,变换太缓慢,导数趋于0,这种情况会造成信息丢失),这种现象称为饱和,从而无法完成深层网络的训练。而ReLU就不会有饱和倾向,不会有特别小的梯度出现。

3)Relu会使一部分神经元的输出为0,这样就造成了网络的稀疏性,并且减少了参数的相互依存关系,缓解了过拟合问题的发生【BN可用于缓解梯度消失/爆炸】

17.LSTM中为什么存在两种sigmoid和Relu激活函数?

LSTM中sigmoid和tanh函数的目标不同,sigmoid函数用在各种gate上,产生了0~1的值,而Tanh用在了状态和输出上,是对数据的处理。

18.数据不平衡怎么处理?

* 采样:重采样或者欠采样,使得大致平衡

* 数据生成:利用已知样本生成新样本

* 进行数据的加权:参考AdaBoost

* 改变评价标准:用AUC/ROC来评价

* 采用Bagging/Boosting/ensemble等集成学习方法 【备注:Bagging与dropout有着类似的防止过拟合的效果】

19.卷积函数并未给NN引入非线性,但ReLu可以给NN引入非线性

20.激活函数的属性:

1)非线性

2)几乎处处可微;例如Relu不满足处处可微,但满足几乎处处可微

3)非饱和性:饱和性是指其在某些区间梯度接近于0(梯度消失),使得参数无法更新

4)计算简单

5)单调性:即导数符合不变。这使得在激活函数处的梯度方向不会经常改变,从而让训练更容易收敛

6)输出范围有限

7)接近恒等变换

8)参数少

9)归一化:主要思想是使样分布自动归一化到零均值。单方差的分布,从而稳定训练。

21.I类错误指的是假正类错误;II类错误值的是假负类错误

22.对类别变量进行label encoding时,应该考虑

1)分类变量的所有类别在训练集中出现的,是否在测试集中出现?

2)类别的频率分布在训练集和测试集上是否相同?

23.全局最小也属于局部最小

24.对数损失不可能取到负值

25.ACC准确度不能用于衡量类别不平衡的问题;而P R  ROC AUC 等指标可以进行衡量

26.在一个n维空间中,最好的检测outlier的方法是马氏距离;

马氏距离是基于卡方分布的,度量多元outlier离群点的方法

马氏距离是在n维空间中两个点的真实距离,马氏距离表示数据的协方差距离

*欧氏距离的特点:平移不变性,旋转不变性

* 马氏距离的特点:平移不变性,旋转不变性、尺度不变性、不受量纲影响、考虑了模式分布。

26.PCA与SVD 

PCA的概念是:使得数据投影后的方差最大,找到这样一个投影向量,满足方差最大的条件即可,而经过了去除均值的操作之后,就可以用SVD分解来求解这样一个向量,选择特征值最大的方向

PCA本质是对于一个以矩阵为参数的分布进行似然估计,而SVD是矩阵近似的有效手段。

27.PCA与AE进行降维的区别:

PCA提取的是数据分布方差比较大的方向,而AE的中间层可以提取预测/重建能力的特征。

28.PCA

在PCA前规范数据(零均值化); 应该选择使得模型有最大variance的主成分;  可以使用PCA在低纬度上进行数据可视化。

29.相关系数[参考之前博客中的三大统计相关系数]

相关系数属于[-1,1],一般而言,大于0.7或者小于等于-0.7就属于强相关的。

30.关于PCA 与t-SNE应用于X,得到X_Projected_PCA, X_Projected_t_SNE得到:X_Projected_t_SNE在最近邻空间能得到解释(因为t_sne算法考虑最近邻点而减少数据维度)

31.三个变量X Y Z,(X,Y),(Y,Z),(X,Z)相关系数为C1,C2,C3;然后X=X+2,Y=Y-2,(X,Y),(Y,Z),(X,Z)相关系数为D1,D2,D3

三者的相关系数的关系是:C1=D1,C2=D2,C3=D3

32.t_SNE是学习非参数映射。SNE(随机邻域嵌入)将数据点之间的高维欧式距离转换为表示相似度的条件概率。t_SNE重点解决了两个问题:

1)SNE不对称的问题(用联合概率分布代替条件概率分布)  【t_SNE是对称的】

2)不同类别之间簇的拥挤问题(引入t分布)

33.t_SNE是非线性的,PCA是线性的。t_SNE可调的参数:维度数量;平稳测量有效数量的邻居;最大迭代数

但是当数据量级巨大时,t_SNE无法产生更好的效果

LDA旨在最大化类间距离,最小化类内距离。但是当若有辨识性的信息不是平均值,而是数据方差时,LDA会失败。

34.LDA和PCA的关系:

* LDA  PCA均是线性的

* LDA有监督学习,PCA是无监督学习

* PCA是最大化数据方差,LDA最大化类间距离+最小化类内距离

* LDA明确尝试对数据类别之间的差异进行建模,而PCA没有(尽量保留了数据的原始信息)

LDA的M维特征,可以产生一个M-1判别向量。

35.梯度消失和梯度爆炸会因层数越深而越明显,其是由于网络太深,网络权值更新不稳定造成的。本事是梯度反向传播中的连乘效应。洛必达法则。

聚类函数相关:

1.影响聚类算法的效果的主要因素有:分类准则+特征选取+模式相似性测度

2.影响k-means的主要因素是:模式相似性测度+初始类中心的选取

3.较好的k-means初始中心的选取方法:先选择一个中心点,然后再按照最远距离逐一进行选择

4.常用的聚类算法划分方式:

* 基于划分的聚类:k-means,k-medoids,clarans

* 基于层次的聚类:AGNES(自下而上),DIANA(自上而下)

* 基于密度的聚类:DBSCAN,OPTICS,BIRCH,CURE

* 基于网格的方法:STING,Wave cluster

* 基于模型的聚类:EM  SOM  COBWEB

5.样本输入顺序、模式相似性测度、初始类中心的选取会对k-means产生影响,而聚类准则不会产生影响。一般的聚类准则是相似的数据被归为一类,不太容易发生改变。模式相似性测度例如马氏距离或者欧式距离

6.在k-means算法中,以下均适用于获得全局最小:

1)尝试为不同的质心初始化运行算法

2)调整迭代次数

3)找到集群的最佳数量(交叉验证)

决策树、随机森林(Bagging)、GBDT、XGBoost等(Boosting)集成学习算法:

1.如何解决RF中的缺失值?

*方法1:对于训练集中同一class下的数据,若是分类变量缺失,则用众数补上,如果是连续变量,则用中位数填补

*方法2:

2. 观察增益gain, alpha和gamma越大,增益越小?机器学习 ML基础 中

xgboost寻找分割点的标准是最大化gain. 考虑传统的枚举每个特征的所有可能分割点的贪心法效率太低,xgboost实现了一种近似的算法。大致的思想是根据百分位法列举几个可能成为分割点的候选者,然后从候选者中计算Gain按最大值找出最佳的分割点。它的计算公式分为四项, 可以由正则化项参数调整(lamda为叶子权重平方和的系数, gama为叶子数量):

结果:gama越大gain越小;lamda越大, gain可能小也可能大

3.Bagging和Boosting的区别:

* 1)采样方式不同:Bagging均匀采样,Boosting根据错误率采样

*2)Bagging各个预测函数五权重,而Boosting是有权重的

*3)Bagging各个预测函数可并行生成,而Boosting的各个预测函数必须串行生成

4.根据中心极限定理,train error和test error之间的差必然会减少。

5.Boostrap是有放回的从N个样本中抽样n个样本

6.集成学习中的弱学习器通常不会过拟合,即意味着其拥有低方差和高偏差

SVM EM HMM CRF

1.EM算法:仅有观测序列,无状态序列时来学习模型参数,即HMM中的学习算法:Baum-Welch算法

2.viterbi算法:非参数估计方法,例如:HMM中预测问题的维特比算法

3.前向后向算法:HMM中概率计算的方法

4.极大似然估计:当观测序列和对应的状态序列都存在时的监督学习算法,用作估计参数。

5.下列哪个不属于CRF模型对于HMM和MEMM模型的优势( ) 机器学习 ML模型 中
A.特征灵活
B.速度快
C.可容纳较多上下文信息
D.全局最优
正确答案:B
解析: HMM(一个模型,两个假设,三个计算) - MEMM(打破观测独立假设) - CRF(无向概率图,全局最优,打破齐次马尔科夫假设)
CRF 的优点:特征灵活,可以容纳较多的上下文信息,能够做到全局最优      CRF的缺点:速度慢
CRF没有HMM那样严格的独立性假设条件,因而可以容纳任意的上下文信息。特征设计灵活(与ME一样) —与HMM比较
由于CRF计算全局最优输出节点的条件概率,它还克服了最大熵马尔可夫模型标记偏置(Label-bias)的缺点。 ­—与MEMM比较
CRF是在给定需要标记的观察序列的条件下,使用维特比算法,计算整个标记序列的联合概率分布,而不是在给定当前状态条件下,定义下一个状态的状态分布。—与ME比较
6.SVM对噪声不敏感,是鲁棒的

7.SVM常用的核函数:线性核  多项式核   径向基核函数  高斯核函数 sigmoid核函数

核函数的选择:

1)首先利用专家的先验知识预先选定核函数

2)利用cross_validation,在进行核函数选取时,分别尝试不同的核函数,归纳最小误差的核函数

3)利用由smits等提出的混合核函数方法

8.基于核的机器学习算法:

* radial basis function(RBF, 径向基核函数)

* linear discriminate analysis (LDA, 线性判别分析)

* support vector machine (SVM,支持向量机)

9.集成学习的单个模型之间具有低相关性

10.GBDT:

* 当增加最小样本分裂个数时,可以防止过拟合

* 当减少训练单个学习器的样本个数时,可以降低vaeiance

11.正态分布:

* 具有集中性和对称性

*均值、方差可以决定正态分布的位置和形态

*标准正态分布的偏度为0,峰度为1.期望为0,方差为1.【判断异常的3\sigma原则】

12.一般而言,移除支持向量,决策边界会发生改变;移非支持向量,决策边界不会发生改变。但有时具体实例时,仍然需要根据实例进行具体分析

13.下列哪一项关于模型能力秒速正确的是(A)

A.隐藏层层数增加,模型能力增加(但如果一直无限增加,可能会造成过拟合)

B.dropout比例增加,model capacity增加

C.学习率增加,model capacity增加

D.都不正确

14.当NN神经网络的权重非随机化赋值,而是全部均设为0.则神经网络可以进行训练,但是所有的神经元最后都会变成识别同样的东西。

15.多个变量高度相关时,称为多元共线性

16.K折交叉验证中的K:K越大,bias越小,训练时间越长;在选择K时,要最小化数据集之间的方差。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章