红色石头的我的网站:redstonewill.com面试
机器学习是一门理论性和实战性都比较强的技术学科。在应聘机器学习相关工做岗位时,咱们经常会遇到各类各样的机器学习问题和知识点。为了帮助你们对这些知识点进行梳理和理解,以便可以更好地应对机器学习笔试包括面试。红色石头准备在公众号连载一些机器学习笔试题系列文章,但愿可以对你们有所帮助!算法
今天的笔试题主要涉及的知识点包括:降维、PCA、特征选择、随机森林、GBDT、集成学习等。dom
Q1. 咱们想要训练一个 ML 模型,样本数量有 100 万个,特征维度是 5000,面对如此大数据,如何有效地训练模型(多选)?机器学习
A. 对训练集随机采样,在随机采样的数据上创建模型函数
B. 尝试使用在线机器学习算法性能
C. 使用 PCA 算法减小特征维度学习
答案:ABC测试
解析:本题考查的是如何解决样本数量和特征维度过大的问题。大数据
在有限的内存下,如何处理高特征纬度的训练样本是一项很是艰巨的任务。下面这些方法能够用来解决这一问题。优化
咱们能够随机抽样数据集,包括样本数量和特征数量。这意味着,咱们能够建立一个更小的数据集,好比说,有 1000 个特征和 300000 个样本进行训练。
使用在线学习(online learning)算法
使用主成分分析算法(PCA)挑选有效的特征,去除冗余特征。
关于在线学习与离线学习,离线学习是咱们最为常见的一种机器学习算法模式,使用所有数据参与训练。训练完成,整个模型就肯定了;而在线学习通常每次使用一个数据或是小批量数据进行训练,每次训练都会优化模型,模型处于不断优化更改状态。
PCA(principal Component Analysis),是一种使用最普遍的数据压缩算法。在PCA中,数据从原来的坐标系转换到新的坐标系,由数据自己决定。转换坐标系时,以方差最大的方向做为坐标轴方向,由于数据的最大方差给出了数据的最重要的信息。第一个新坐标轴选择的是原始数据中方差最大的方法,第二个新坐标轴选择的是与第一个新坐标轴正交且方差次大的方向。重复该过程,重复次数为原始数据的特征维数。
什么是冗余特征呢?好比汽车数据中,里面既有以“公里/每小时”度量特征,也有“英里/小时”的特征,显然这两个特征有一个是多余的。
Q2. 咱们但愿减小数据集中的特征数量。你能够采起如下哪个步骤来减小特征(多选)?
A. 使用正向选择法(Forward Selection)
B. 使用反向消除法(Backward Elimination)
C. 逐步选择消除法(Stepwise)
D. 计算不一样特征之间的相关系数,删去相关系数高的特征之一
答案:ABCD
解析:本题考查的是机器学习模型中特征选择问题。
正向选择(Forward Selection)是首先选择一个特征,每一个特征都试一遍,选择对模型准确率提高最高的那个特征;而后再在这个特征基础上添加另一个特征,方法相似,直到模型准确率再也不提示为止。
反向消除(Backward Elimination)是首先包含了全部的特征,而后尝试删除每一个特征,最终删掉对模型准确率提高最高的一个特征(由于删除这个特征,模型准确率反而增长了,说明是无用特征)。如此类推,直到删除特征并不能提高模型为止。
相对于 Forward Selection,Backward Elimination 的优势在于其容许一些低贡献值的特征可以进到模型中去(有时候低贡献值的特征能在组合中有更大的贡献值,而 Forward Selection 忽略了这种组合的可能性),所以Backward Elimination可以避免受一两个占主导地位的特征的干扰。
另外还有一种特征选择方法是 Stepwise,该方法结合上述二者的方法,新加入一个特征以后,再尝试删去一个特征,直至达到某个预设的标准。这种方法的缺点是,预设的标准很差定,并且容易陷入到过拟合当中。
除此以外,也可使用基于相关性的特征选择,能够去除多重线性特征。例如上一题中“公里/每小时”和“英里/小时”是相关性很大的特征,可删其一。
Q3. 下面关于 Random Forest 和 Gradient Boosting Trees 说法正确的是?
A. Random Forest 的中间树不是相互独立的,而 Gradient Boosting Trees 的中间树是相互独立的
B. 二者都使用随机特征子集来建立中间树
C. 在 Gradient Boosting Trees 中能够生成并行树,由于它们是相互独立的
D. 不管任何数据,Gradient Boosting Trees 老是优于 Random Forest
答案:B
解析:本题考查的是随机森林和梯度提高树(GBDT)的基本几率和区别。
Random Forest 是基于 Bagging 的,而 Gradient Boosting Trees 是基于 Boosting 的。Bagging 和 Boosting 的区别在于:
1)样本选择上:
Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。
Boosting:每一轮的训练集不变,只是训练集中每一个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。
2)样例权重:
Bagging:使用均匀取样,每一个样例的权重相等。
Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。
3)预测函数:
Bagging:全部预测函数的权重相等。
Boosting:每一个弱分类器都有相应的权重,对于分类偏差小的分类器会有更大的权重。
4)并行计算:
Bagging:各个预测函数能够并行生成。
Boosting:各个预测函数只能顺序生成,由于后一个模型参数须要前一轮模型的结果。
所以,Gradient Boosting Trees 的中间树不是相互独立的,由于前一棵树的结果影响下一棵树。Random Forest 的中间树相互独立,所以能够并行生成这些树。
在这两种算法中,咱们使用随机特征集来生成中间树。
Gradient Boosting Trees 并不总比 Random Forest 好,依赖于数据。
Q4. “对于 PCA 处理后的特征,其朴素贝叶斯特征相互独立的假设必定成立,由于全部主成分都是正交的,因此不相关”。这句话是否正确?
A. True
B. False
答案:B
解析:本题考查的是 PCA 和 朴素贝叶斯的基本几率和区别。
这句话有两处错误:一是 PCA 转换以后的特征不必定不相关;二是不相关并不等价于相互独立。
正交和不相关没有必然关系,只有当一个随机变量的统计平均等于零时,正交和不相关等价。
独立则一定不相关,而不相关却不必定互相独立,只有是高斯时独立和不相关才等价。
Q5. 下列关于 PCA 说法正确的是(多选)?
A. 在使用 PCA 以前,咱们必须标准化数据
B. 应该选择具备最大方差的主成分
C. 应该选择具备最小方差的主成分
D. 可使用 PCA 在低维空间中可视化数据
答案:ABD
解析:本题考查的是主成分分析(PCA)的基本概念和推导原理。
PCA 对数据中变量的尺度很是敏感,所以咱们须要对各个变量进行标准化。方法是减去各自变量的均值,除以标准差。
举个例子,假如某个变量单位从 km 改为 cm,大大增长了其方差,那么该变量可能就成为了主成分。这是咱们不但愿看大的。
B 是正确的,由于咱们老是选择方差最大的主成分。能够这么来理解,方差越大,说明在该特征上分布越普遍,说明该特征月有用,影响越大。
PCA 有时在较低维度上绘制数据是很是有用。例如咱们能够提取前 2 个主要组成部分,而后在二维平面上使用散点图可视化数据。
Q6. 下图中,主成分的最佳数目是多少?
A. 10
B. 20
C. 30
D. 没法肯定
答案:C
解析:本题考查的是 PCA 的基本概念。
显然,当主成分数目为 30 的时候,积累的方差比例最大。
Q7. 数据科学家常用多个算法进行预测,并将多个机器学习算法的输出(称为“集成学习”)结合起来,以得到比全部个体模型都更好的更健壮的输出。则下列说法正确的是?
A. 基本模型之间相关性高
B. 基本模型之间相关性低
C. 集成方法中,使用加权平均代替投票方法
D. 基本模型都来自于同一算法
答案:B
解析:本题考查的是集成学习的基本原理。
集成学习,顾名思义,经过将多个单个学习器集成/组合在一块儿,使它们共同完成学习任务。
举个例子来讲明,假如你有 T 个朋友,每一个朋友向你预测推荐明天某支股票会涨仍是会跌,那么你该选择哪一个朋友的建议呢?第一种方法是从 T 个朋友中选择一个最受信任,对股票预测能力最强的人,直接遵从他的建议就好。这是一种广泛的作法,对应的就是 validation 的思想,即选择犯错误最小的模型。第二种方法,若是每一个朋友在股票预测方面都是比较厉害的,都有各自的专长,那么就同时考虑 T 个朋友的建议,将全部结果作个投票,一人一票,最终决定出对该支股票的预测。这种方法对应的是 uniformly 思想。第三种方法,若是每一个朋友水平不一,有的比较厉害,投票比重应该更大一些,有的比较差,投票比重应该更小一些。那么,仍然对 T 个朋友进行投票,只是每一个人的投票权重不一样。这种方法对应的是 non-uniformly 的思想。第四种方法与第三种方法相似,可是权重不是固定的,根据不一样的条件,给予不一样的权重。好比若是是传统行业的股票,那么给这方面比较厉害的朋友较高的投票权重,若是是服务行业,那么就给这方面比较厉害的朋友较高的投票权重。以上所述的这四种方法都是将不一样人不一样意见融合起来的方式,这就是集成思想,即把多个基本模型结合起来,获得更好的预测效果。
一般来讲,基本模型之间的相关性越低越好,由于每一个模型有各自的特长,集成起来才更增强大。
Q8. 如何在监督式学习中使用聚类算法(多选)?
A. 首先,能够建立聚类,而后分别在不一样的集群上应用监督式学习算法
B. 在应用监督式学习算法以前,能够将其类别 ID 做为特征空间中的一个额外的特征
C. 在应用监督式学习以前,不能建立聚类
D. 在应用监督式学习算法以前,不能将其类别 ID 做为特征空间中的一个额外的特征
答案:AB
解析:本题考查的是聚类算法与监督式学习。
咱们能够为不一样的集群构建独立的机器学习模型,而且能够提升预测精度。将每一个类别的 ID 做为特征空间中的一个额外的特征可能会提升的精度结果。
Q9. 下面哪句话是正确的?
A. 机器学习模型的精准度越高,则模型的性能越好
B. 增长模型的复杂度,总能减少测试样本偏差
C. 增长模型的复杂度,总能减少训练样本偏差
D. 以上说法都不对
答案:C
解析:本题考查的是机器学习模型的评判指标。
机器学习模型的精准度(Precision)越高,模型性能不必定越好,还要看模型的召回率(Recall),特别是在正负样本分布不均的状况下。通常使用 F1 score 评判标准。
增长模型复杂度,一般可能形成过拟合。过拟合的表现是训练样本偏差减少,而测试样本偏差增大。
Q10. 关于 GBDT 算法,下列说法正确的是(多选)?
A. 增长用于分割的最小样本数量,有助于避免过拟合
B. 增长用于分割的最小样本数量,容易形成过拟合
C. 减少每一个基本树的样本比例,有助于减少方差
D. 减少每一个基本树的样本比例,有助于减少误差
答案:AC
解析:本题考查的是 GBDT 的基本概念。
节点中用于分割所需的最小样本数用来控制过拟合。太高的值可能致使欠拟合,所以,它应该使用交叉验证进行调整。
每一个基本树选择的样本比例是经过随机抽样来完成的。小于1的值可以减少方差使模型具备鲁棒性。典型值 0.8 一般工做良好,但能够进一步精细调整。
GBDT 经过多轮迭代,每轮迭代产生一个弱分类器,每一个分类器在上一轮分类器的残差基础上进行训练。对弱分类器的要求通常是足够简单,而且是低方差和高误差的,由于训练的过程是经过下降误差来不断提升最终分类器的精度。
参考文献:
https://www.analyticsvidhya.com/blog/2016/11/solution-for-skilltest-machine-learning-revealed/