查看原文
其他

机器学习笔试精选题精选(四)

红色石头 AI有道 2019-06-21
点击上方“AI有道”,选择“置顶公众号”

关键时刻,第一时间送达!

读本文需要 8 分钟



机器学习是一门理论性和实战性都比较强的技术学科。在应聘机器学习相关工作岗位时,我们常常会遇到各种各样的机器学习问题和知识点。为了帮助大家对这些知识点进行梳理和理解,以便能够更好地应对机器学习笔试包括面试。红色石头准备在公众号连载一些机器学习笔试题系列文章,希望能够对大家有所帮助!


今天,红色石头带大家继续“死磕”相关笔试题!各个击破!


Q1. 在 n 维空间中(n > 1),下列哪种方法最适合用来检测异常值?


A. 正态概率图


B. 箱形图


C. 马氏距离


D. 散点图


答案:C


解析:正态概率图(Normal Probability Plot)一般用来检查一组数据是否服从正态分布。是实数与正态分布数据之间函数关系的散点图。如果这组实数服从正态分布,正态概率图将是一条直线。如下图所示:



箱形图(Box Plot),是一种用作显示一组数据分散情况资料的统计图。因型状如箱子而得名。如下图所示:



散点图(Scatter Plot)是描述离散数据点的空间分布。


马氏距离(Mahalonobis distance)多用来计算某样本点与数据集的距离,优点是具有尺度无关性。马氏距离的计算公式如下:



其中,μ 是样本集均值,S 是样本集协方差矩阵。我们注意到马氏距离的公式与欧式距离公式只是多了一个协方差矩阵的逆。这也正是马氏距离的优点之处,它考虑了不同特征之间的协方差不同,将其进行归一化,使得距离度量与尺度无关。


举个简单的例子来说明,假如 A 的身高体重为(170,60000),B 的身高体重为(170,61000),C 的身高体重是(160,60000),其中身高体重的单位分别是 cm、g。按照常理来说,A 和 B 的体型是比较相近的,但是如果使用欧式距离,计算得到 A 和 C 比较相近。原因在于身高维度的方差较小,而体重维度的方差较大。马氏距离恰恰消除了各个维度方差不同的影响,把方差归一化,使得特征之间的关系更加符合实际情况。


因此,马氏距离更适合来判断样本点与数据集的位置关系,判断其是否离群。正态概率图、箱形图、散点图都比较直观,容易判断出错。


Q2. 逻辑回归与多元回归分析有哪些不同之处?


A. 逻辑回归用来预测事件发生的概率


B. 逻辑回归用来计算拟合优度指数


C. 逻辑回归用来对回归系数进行估计


D. 以上都是


答案:D


解析:A 选项,逻辑回归是用来解决分类问题的,可以用于预测事件发生的概率。


B 选项,一般来说,为了测量真实样本与模型的拟合程度,可以使用逻辑回归来计算拟合优度指数。


C 选项,在拟合逻辑回归模型之后,我们还可以根据系数值,来判断各个独立特征与目标输出的关系(正相关或负相关)。


Q3. 下列关于 bootstrap 说法正确的是?


A. 从总的 M 个特征中,有放回地抽取 m 个特征(m < M)


B. 从总的 M 个特征中,无放回地抽取 m 个特征(m < M)


C. 从总的 N 个样本中,有放回地抽取 n 个样本(n < N)


D. 从总的 N 个样本中,无放回地抽取 n 个样本(n < N)


答案:C


解析:bootstrap 的思想是从已有的数据集中模拟出类似但又不完全一样的数据集。主要是针对没有足够数据来训练多个模型的情况。


bootstrap 的做法是,假设有 N 笔资料 D,先从中选出一个样本,再放回去,再选择一个样本,再放回去,共重复 n 次。这样我们就得到了一个新的 n 笔资料 D',这个新的数据集中可能包含原数据集里的重复样本点,也可能没有原数据集里的某些样本,D' 与 D 类似但又不完全相同。值得一提的是,抽取-放回的操作次数不一定非要是 N,次数可以任意设定。例如原始样本有 10000 个,我们可以抽取-放回 3000 次,得到包含 3000 个样本的 D' 也是完全可以的。


Q4. "监督式学习中存在过拟合,而对于非监督式学习来说,没有过拟合",这句话是否正确?


A. 正确


B. 错误


答案:B


解析:对于非监督式学习,仍然可能存在过拟合。一般来说,评估非监督式学习的指标也有很多,例如使用调整兰德指数(Adjusted Rand Score)来评估聚类模型。


聚类模型中,假设实际类别信息为 C,聚类结果为 K,a 表示在 C 与 K 中都是同类别的元素有几对,b 表示在 C 与 K 中都是不同类别的元素有几对,则兰德指数为:



RI 取值范围为 [0,1],值越大意味着聚类结果与真实情况越吻合。


但是,在聚类结果随机的情况下,RI 并不为 0。因此,为了解决这一问题,调整兰德指数(Adjusted Rand Score)被提出,它具有更高的区分度:



ARI 取值范围为 [−1,1],值越大意味着聚类结果与真实情况越吻合。从广义的角度来讲,ARI 衡量的是两个数据分布的吻合程度。


Q5. 关于 k 折交叉验证,下列说法正确的是?


A. k 值并不是越大越好,k 值过大,会降低运算速度


B. 选择更大的 k 值,会让偏差更小,因为 k 值越大,训练集越接近整个训练样本


C. 选择合适的 k 值,能减小验方差


D. 以上说法都正确


答案: D


解析:机器学习中,在样本量不充足的情况下,为了充分利用数据集对算法效果进行测试,将数据集随机分为 k 个包,每次将其中一个包作为测试集,剩下 k-1 个包作为训练集进行训练。


k 折交叉验证的的 k 值不能太大,也不能太小。k 值过大,会降低运算速度。若 k 与样本数量 N 相同,则是留一法(Leave-One-Out)。k 值较大,训练集越接近整个训练样本,有利于减小模型偏差(bias)。一般可以将 k 作为超参数调试,根据表现选择合适的 k 值。


k 折交叉验证能够有效提高模型的学习能力,类似于增加了训练样本数量,使得学习的模型更加稳健,鲁棒性更强。选择合适的 k 值能够有效避免过拟合。


Q6. 如果回归模型中存在多重共线性(multicollinearity),应该如何解决这一问题而不丢失太多信息(多选)?


A. 剔除所有的共线性变量


B. 剔除共线性变量中的一个


C. 通过计算方差膨胀因子(Variance Inflation Factor,VIF)来检查共线性程度,并采取相应措施


D. 删除相关变量可能会有信息损失,我们可以不删除相关变量,而使用一些正则化方法来解决多重共线性问题,例如 Ridge 或 Lasso 回归。


答案:BCD


解析:如果回归模型中存在共线性变量,那么可以采取相应措施,剔除共线性变量中的一个。为了检验多重共线性,我们可以创建一个相关矩阵来识别和去除相关度在 75% 以上的变量(阈值大小可人为设置)。此外,我们可以使用计算方差膨胀因子(VIF)来检查多重共线性的存在。若 VIF <= 4 则没有多重共线性,若 VIF>10 值意味着严重的多重共线性。此外,我们可以使用容忍度作为多重共线性的指标。


方差膨胀因子(Variance Inflation Factor,VIF):是指解释变量之间存在多重共线性时的方差与不存在多重共线性时的方差之比。VIF 跟容忍度是倒数关系。详细介绍可自行查阅统计学资料。


但是,去除相关变量可能导致信息的丢失。为了保留这些变量,我们可以使用正则化来“惩罚”回归模型,如 Ridge 和 Lasso 回归。此外,我们可以添加一些随机噪声相关变量,使变量变得彼此不同。但是,增加噪声可能会影响预测精度,因此应该谨慎使用这种方法。


Q7. 评估完模型之后,发现模型存在高偏差(high bias),应该如何解决?


A. 减少模型的特征数量


B. 增加模型的特征数量


C. 增加样本数量


D. 以上说法都正确


答案:B


解析:如果模型存在高偏差(high bias),意味着模型过于简单。为了使模型更加健壮,我们可以在特征空间中添加更多的特征。而添加样本数量将减少方差。



Q8. 在构建一个决策树模型时,我们对某个属性分割节点,下面四张图中,哪个属性对应的信息增益最大?



A. outlook


B. humidity


C. windy


D. temperature


答案:A


解析:李航的《统计学习方法》中,对信息增益有如下定义:特征 A 对训练数据集 D 的信息增益 g(D,A),定义为集合 D 的经验熵 H(D) 与特征 A 给定条件下 D 的经验条件熵 H(D|A) 之差,即


g(D,A) = H(D) - H(D|A)


这一题,我们先计算经验熵 H(D):


H(D) = -9/14 * log(9/14) - 5/14 * log(5/14)

        = 0.6518


图一中,经验条件熵 H(D|A) 为:


H(D|A) = 5/14 * (-2/5*log(2/5)-3/5*log(3/5))

           + 4/14 *(-1*log(1)-0)

           + 5/14 * (-3/5*log(3/5)-2/5*log(2/5))

           = 0.4807

图一的信息增益为:


g(D,A) = H(D) - H(D|A) = 0.6518 - 0.4807

           = 0.1711


图二中,经验条件熵 H(D|A) 为:


H(D|A) = 7/14 * (-3/7*log(3/7)-4/7*log(4/7))

           + 7/14 * (-6/7*log(6/7)-1/7*log(1/7))

           = 0.5465


图二的信息增益为:


g(D,A) = H(D) - H(D|A) = 0.6518 - 0.5465

           = 0.1053


图三中,经验条件熵 H(D|A) 为:


H(D|A) = 8/14 * (-6/8*log(6/8)-2/8*log(2/8))

           + 6/14 * (-3/6*log(3/6)-3/6*log(3/6))

           = 0.6184


图三的信息增益为:


g(D,A) = H(D) - H(D|A) = 0.6518 - 0.6184

           = 0.0334


图四中,经验条件熵 H(D|A) 为:


H(D|A) = 4/14 * (-2/4*log(2/4)-2/4*log(2/4))

           + 6/14 *(-4/6*log(4/6)-2/6*log(2/6))

           + 4/14 * (-3/4*log(3/4)-1/4*log(1/4))

           = 0.6315


图四的信息增益为:


g(D,A) = H(D) - H(D|A) = 0.6518 - 0.6315

           = 0.0203


显然,图一 outlook 对应的信息增益最大。


Q9. 在决策树分割结点的时候,下列关于信息增益说法正确的是(多选)?


A. 纯度高的结点需要更多的信息来描述它


B. 信息增益可以用”1比特-熵”获得


C. 如果选择一个属性具有许多特征值, 那么这个信息增益是有偏差的


答案: BC


Q10. 如果一个 SVM 模型出现欠拟合,那么下列哪种方法能解决这一问题?


A. 增大惩罚参数 C 的值


B. 减小惩罚参数 C 的值


C. 减小核系数(gamma参数)


答案:A


解析:SVM模型出现欠拟合,表明模型过于简单,需要提高模型复杂度。


Soft-Margin SVM 的目标为:



C 值越大,相应的模型月复杂。接下来,我们看看 C 取不同的值时,模型的复杂程度。



从上图可以看出,C=1 时,模型比较简单,分类错误的点也比较多,发生欠拟合。当 C 越来越大的时候,模型越来越复杂,分类错误的点也在减少。但是,当 C 值很大的时候,虽然分类正确率提高,但很可能把 noise 也进行了处理,从而可能造成过拟合。


而对于 SVM 的核函数,同样,核系数越大,模型越复杂。举个例子,核系数分别取 1, 10, 100 时对应的分类效果如下:



从图中可以看出,当核系数比较小的时候,分类线比较光滑。当核系数越来越大的时候,分类线变得越来越复杂和扭曲,直到最后,分类线变成一个个独立的小区域。为什么会出现这种区别呢?这是因为核系数越大,其对应的核函数越尖瘦,那么有限个核函数的线性组合就比较离散,分类效果并不好。所以, SVM 也会出现过拟合现象,核系数的正确选择尤为重要,不能太小也不能太大。


参考文献:

https://www.analyticsvidhya.com/blog/2016/11/solution-for-skilltest-machine-learning-revealed/


推荐阅读


机器学习笔试题精选(一)


机器学习笔试题精选(二)


机器学习笔试题精选(三)


7 种回归方法!请务必掌握!




    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存