黑马程序员技术交流社区

标题: 【上海校区】直通 BAT!机器学习笔试题精选(二) [打印本页]

作者: 不二晨    时间: 2018-7-20 09:45
标题: 【上海校区】直通 BAT!机器学习笔试题精选(二)

Q1. 假如我们使用 Lasso 回归来拟合数据集,该数据集输入特征有 100 个(X1,X2,…,X100)。现在,我们把其中一个特征值扩大 10 倍(例如是特征 X1),然后用相同的正则化参数对 Lasso 回归进行修正。

那么,下列说法正确的是?

A. 特征 X1 很可能被排除在模型之外

B. 特征 X1 很可能还包含在模型之中

C. 无法确定特征 X1 是否被舍弃

D. 以上说法都不对

答案: B

解析:Lasso 回归类似于线性回归,只不过它在线性回归的基础上,增加了一个对所有参数的数值大小约束,如下所示:



min 1m∑i=1m(yi−β0−xTiβ)2  subject to  ||β||1≤tmin 1m∑i=1m(yi−β0−xiTβ)2  subject to  ||β||1≤t


其中,t 为正则化参数。Lasso 回归其实就是在普通线性回归的损失函数的基础上增加了个 β 的约束。那么 β 的约束为什么要使用这种形式,而不使用 β 的平方约束呢?原因就在于第一范数的约束下,一部分回归系数刚好可以被约束为 0。这样的话,就达到了特征选择的效果。如下图所示:




左边是第二范式,右边是第一范式。第一范数约束下,β 更有可能被约束成 0。这点非常类似于 L1 和 L2 正则化的区别,有兴趣的请看我之前一篇文章:机器学习中 L1 和 L2 正则化的直观解释

因此,Lasso 回归适用于样本数量较少,特征维度较大的情形,便于从较多特征中进行特征选择。例如 DNA 数据,特征维度很大,我们只希望通过 Lasso 回归找出与某些疾病有关的 DNA 片段。

本题中,将特征 X1 数值扩大 10 倍,他对应的回归系数将相应会减小,但不为 0,以此来保证仍然满足 β 的正则化约束。

Q2. 关于特征选择,下列对 Ridge 回归和 Lasso 回归说法正确的是?

A. Ridge 回归适用于特征选择

B. Lasso 回归适用于特征选择

C. 两个都适用于特征选择

D. 以上说法都不对

答案:B

解析:上一题我们已经介绍过,Lasso 回归会让一部分回归系数刚好可以被约束为 0,起到特征选择的效果。

Ridge 回归又称岭回归,它是普通线性回归加上 L2 正则项,用来防止训练过程中出现的过拟合。L2 正则化效果类似上一题左图,限定区域是圆,这样,得到的回归系数为 0 的概率很小,很大概率是非零的。因此,比较来说,Lasso 回归更容易得到稀疏的回归系数,有利于舍弃冗余或无用特征,适用于特征选择。

Q3. 如果在线性回归模型中增加一个特征变量,下列可能发生的是(多选)?

A. R-squared 增大,Adjust R-squared 增大

B. R-squared 增大,Adjust R-squared 减小

C. R-squared 减小,Adjust R-squared 减小

D. R-squared 减小,Adjust R-squared 增大

答案:AB

解析:线性回归问题中,R-Squared 是用来衡量回归方程与真实样本输出之间的相似程度。其表达式如下所示:




上式中,分子部分表示真实值与预测值的平方差之和,类似于均方差 MSE;分母部分表示真实值与均值的平方差之和,类似于方差 Var。一般来说,R-Squared 越大,表示模型拟合效果越好。R-Squared 反映的是大概有多准,因为,随着样本数量的增加,R-Squared 必然增加,无法真正定量说明准确程度,只能大概定量。

单独看 R-Squared,并不能推断出增加的特征是否有意义。通常来说,增加一个特征特征,R-Squared 可能变大也可能保持不变,两者不一定呈正相关。

如果使用校正决定系数(Adjusted R-Squared):




其中,n 是样本数量,p 是特征数量。Adjusted R-Squared 抵消样本数量对 R-Squared 的影响,做到了真正的 0~1,越大越好。

增加一个特征变量,如果这个特征有意义,Adjusted R-Square 就会增大,若这个特征是冗余特征,Adjusted R-Squared 就会减小。

Q4. 下面三张图展示了对同一训练样本,使用不同的模型拟合的效果(蓝色曲线)。那么,我们可以得出哪些结论(多选)?




A. 第 1 个模型的训练误差大于第 2 个、第 3 个模型

B. 最好的模型是第 3 个,因为它的训练误差最小

C. 第 2 个模型最为“健壮”,因为它对未知样本的拟合效果最好

D. 第 3 个模型发生了过拟合

E. 所有模型的表现都一样,因为我们并没有看到测试数据

答案:ACD

解析:1、2、3 模型分别对应的多项式阶数由小到大,即模型由简单到复杂。模型越简单,容易发生欠拟合;模型越复杂,容易发生过拟合。第 1 个模型过于简单,出现欠拟合;第 3 个模型过于复杂,对训练样本拟合得很好,但在测试样本上效果会很差,即过拟合;第 2 个模型最为“健壮”,在训练样本和测试样本上拟合效果都不错!

Q5. 下列哪些指标可以用来评估线性回归模型(多选)?

A. R-Squared

B. Adjusted R-Squared

C. F Statistics

D. RMSE / MSE / MAE

答案:ABCD

解析:R-Squared 和 Adjusted R-Squared 的概念,我们在 Q3 有过介绍,它们都可以用来评估线性回归模型。F Statistics 是指在零假设成立的情况下,符合F分布的统计量,多用于计量统计学中。

RMSE 指的是均方根误差:



RMSE=1m∑i=1m(y(i)−y^(i))2−−−−−−−−−−−−−−−√RMSE=1m∑i=1m(y(i)−y^(i))2


MSE 指的是均方误差:



MSE=1m∑i=1m(y(i)−y^(i))2MSE=1m∑i=1m(y(i)−y^(i))2


MAE 指的是评价绝对误差:



MAE=1m∑i=1m|y(i)−y^(i)|MAE=1m∑i=1m|y(i)−y^(i)|


以上指标都可以用来评估线性回归模型。

Q6. 线性回归中,我们可以使用正规方程(Normal Equation)来求解系数。下列关于正规方程说法正确的是?

A. 不需要选择学习因子

B. 当特征数目很多的时候,运算速度会很慢

C. 不需要迭代训练

答案:ABC

解析:求解线性回归系数,我们一般最常用的方法是梯度下降,利用迭代优化的方式。除此之外,还有一种方法是使用正规方程,原理是基于最小二乘法。下面对正规方程做简要的推导。

已知线性回归模型的损失函数 Ein 为:



Ein=1m(XW−Y)2Ein=1m(XW−Y)2


对 Ein 计算导数,令 ∇Ein=0:



∇Ein=2m(XTXW−XTY)=0∇Ein=2m(XTXW−XTY)=0


然后就能计算出 W:



W=(XTX)−1XTYW=(XTX)−1XTY


以上就是使用正规方程求解系数 W 的过程。可以看到,正规方程求解过程不需要学习因子,也没有迭代训练过程。当特征数目很多的时候,<span class="MathJax" id="MathJax-Element-31-Frame" tabindex="0" data-mathml="XTX" role="presentation" style="box-sizing: border-box; outline: 0px; display: inline; line-height: normal; text-align: left; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; word-break: break-all; position: relative;">XTXXTX 矩阵求逆会很慢,这时梯度下降算法更好一些。

如果 <span class="MathJax" id="MathJax-Element-32-Frame" tabindex="0" data-mathml="XTX" role="presentation" style="box-sizing: border-box; outline: 0px; display: inline; line-height: normal; text-align: left; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; word-break: break-all; position: relative;">XTXXTX 矩阵不可逆,是奇异矩阵怎么办呢?其实,大部分的计算逆矩阵的软件程序,都可以处理这个问题,也会计算出一个逆矩阵。所以,一般伪逆矩阵是可解的。

Q7. 如果 Y 是 X(X1,X2,…,Xn)的线性函数:

Y = β0 + β1X1 + β2X2 + ··· + βnXn

则下列说法正确的是(多选)?

A. 如果变量 Xi 改变一个微小变量 ΔXi,其它变量不变。那么 Y 会相应改变 βiΔXi。

B. βi 是固定的,不管 Xi 如何变化

C. Xi 对 Y 的影响是相互独立的,且 X 对 Y 的总的影响为各自分量 Xi 之和

答案:ABC

解析:这题非常简单,Y 与 X(X1,X2,…,Xn)是线性关系,故能得出 ABC 结论。

Q8. 构建一个最简单的线性回归模型需要几个系数(只有一个特征)?

A. 1 个

B. 2 个

C. 3 个

D. 4 个

答案:B

解析:最简单的线性回归模型,只有一个特征,即 Y = aX + b,包含 a 和 b 两个系数。

Q9. 下面两张图展示了两个拟合回归线(A 和 B),原始数据是随机产生的。现在,我想要计算 A 和 B 各自的残差之和。注意:两种图中的坐标尺度一样。




关于 A 和 B 各自的残差之和,下列说法正确的是?

A. A 比 B 高

B. A 比 B 小

C. A 与 B 相同

D. 以上说法都不对

答案:C

解析:A 和 B 中各自的残差之和应该是相同的。线性回归模型的损失函数为:



J=1m(XW−Y)2J=1m(XW−Y)2


对损失函数求导,并令 ∇J=0,即可得到 XW-Y=0,即残差之和始终为零。

Q10. 如果两个变量相关,那么它们一定是线性关系吗?

A. 是

B. 不是

答案:B

解析:相关不一定是线性关系,也有可能是非线性相关。

Q11. 两个变量相关,它们的相关系数 r 可能为 0。这句话是否正确?

A. 正确

B. 错误

答案:A

解析:一般来说,相关系数 r=0 是两变量相互独立的必要不充分条件。也就是说,如果两个变量相互独立,那么相关系数 r 一定为 0,如果相关系数 r=0,则不一定相互独立。相关系数 r=0 只能说明两个变量之间不存在线性关系,仍然可能存在非线性关系。

那么,若两个变量相关,存在非线性关系,那么它们的相关系数 r 就为 0。

Q12. 加入使用逻辑回归对样本进行分类,得到训练样本的准确率和测试样本的准确率。现在,在数据中增加一个新的特征,其它特征保持不变。然后重新训练测试。则下列说法正确的是?

A. 训练样本准确率一定会降低

B. 训练样本准确率一定增加或保持不变

C. 测试样本准确率一定会降低

D. 测试样本准确率一定增加或保持不变

答案:B

解析:在模型中增加更多特征一般会增加训练样本的准确率,减小 bias。但是测试样本准确率不一定增加,除非增加的特征是有效特征。

这题对应的知识点也包括了增加模型复杂度,虽然会减小训练样本误差,但是容易发生过拟合。

Q13. 下面这张图是一个简单的线性回归模型,图中标注了每个样本点预测值与真实值的残差。计算 SSE 为多少?




A. 3.02

B. 0.75

C. 1.01

D. 0.604

答案:A

解析:SSE 是平方误差之和(Sum of Squared Error),SSE = (-0.2)^2 + (0.4)^2 + (-0.8)^2 + (1.3)^2 + (-0.7)^2 = 3.02

Q14. 假设变量 Var1 和 Var2 是正相关的,那么下面那张图是正确的?图中,横坐标是 Var1,纵坐标是 Var2,且对 Var1 和 Var2 都做了标准化处理。




A. Plot 1

B. Plot 2

答案:B

解析:显然,Plot 2 显示出 Var2 与 Var1 是正相关的,例如 Var2 = Var1。Plot 1 显示出 Var2 与 Var1 是负相关的,例如 Var2 = -Var1。

Q15. 假设一个公司的薪资水平中位数是 <span class="MathJax" id="MathJax-Element-23-Frame" tabindex="0" data-mathml="35,000,排名第25" role="presentation" style="box-sizing: border-box; outline: 0px; display: inline; font-weight: normal; line-height: normal; text-align: left; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; word-break: break-all; position: relative;">35,000,排名第2535,000,排名第2521,000 和 <span class="MathJax" id="MathJax-Element-24-Frame" tabindex="0" data-mathml="53,000。如果某人的薪水是" role="presentation" style="box-sizing: border-box; outline: 0px; display: inline; font-weight: normal; line-height: normal; text-align: left; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; word-break: break-all; position: relative;">53,000。如果某人的薪水是53,000。如果某人的薪水是1,那么它可以被看成是异常值(Outlier)吗?

A. 可以

B. 不可以

C. 需要更多的信息才能判断

D. 以上说法都不对

答案:C

解析:异常值(Outlier)指样本中的个别值,其数值明显偏离它(或他们)所属样本的其余观测值,也称异常数据,离群值。目前人们对异常值的判别与剔除主要采用物理判别法和统计判别法两种方法。

所谓物理判别法就是根据人们对客观事物已有的认识,判别由于外界干扰、人为误差等原因造成实测数据值偏离正常结果,在实验过程中随时判断,随时剔除。

统计判别法是给定一个置信概率,并确定一个置信限,凡超过此限的误差,就认为它不属于随机误差范围,将其视为异常值剔除。当物理识别不易判断时,一般采用统计识别法。

该题中,所给的信息量过少,无法肯定一定是异常值。



作者: 不二晨    时间: 2018-7-20 10:53
优秀,奈斯
作者: wuqiong    时间: 2018-7-23 11:35

作者: 摩西摩西OvO    时间: 2018-7-23 13:42

作者: 梦缠绕的时候    时间: 2018-7-25 17:25

作者: 梦缠绕的时候    时间: 2018-7-25 17:26

作者: 摩西摩西OvO    时间: 2018-7-26 09:30

作者: 吴琼老师    时间: 2018-7-26 16:07





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2