暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

BAT机器学习算法&工程面试题系列(第八期)

金牌程序员 2019-05-24
238


更多精彩内容,请访问小程序:

金牌程序员


251.我们建立一个5000个特征, 100万数据的机器学习模型. 我们怎么有效地应对这样的大数据训练 : (F)

A. 我们随机抽取一些样本, 在这些少量样本之上训练 
B. 我们可以试用在线机器学习算法 
C. 我们应用PCA算法降维, 减少特征数 
D. B 和 C 
E. A 和 B 
F. 以上所有

答案: (F)

252.我们想要减少数据集中的特征数, 即降维. 选择以下适合的方案 :(D) 
1.使用前向特征选择方法 
2.使用后向特征排除方法 
3.我们先把所有特征都使用, 去训练一个模型, 得到测试集上的表现. 然后我们去掉一个特征, 再去训练, 用交叉验证看看测试集上的表现. 如果表现比原来还要好, 我们可以去除这个特征 
4.查看相关性表, 去除相关性最高的一些特征

A. 1 和 2 
B. 2, 3和4 
C. 1, 2和4 
D. All

答案: (D) 
1.前向特征选择方法和后向特征排除方法是我们特征选择的常用方法 
2.如果前向特征选择方法和后向特征排除方法在大数据上不适用, 可以用这里第三种方法 
3.用相关性的度量去删除多余特征, 也是一个好方法

所以D是正确的。

253.对于随机森林和GradientBoosting Trees, 下面说法正确的是:(A) 
1.在随机森林的单个树中, 树和树之间是有依赖的, 而GradientBoosting Trees中的单个树之间是没有依赖的 
2.这两个模型都使用随机特征子集, 来生成许多单个的树 
3.我们可以并行地生成GradientBoosting Trees单个树, 因为它们之间是没有依赖的, GradientBoosting Trees训练模型的表现总是比随机森林好

A. 2 
B. 1 and 2 
C. 1, 3 and 4 
D. 2 and 4

答案: (A) 
1.随机森林是基于bagging的, 而Gradient Boosting trees是基于boosting的, 所有说反了,在随机森林的单个树中, 树和树之间是没有依赖的, 而GradientBoosting Trees中的单个树之间是有依赖关系。 
2.这两个模型都使用随机特征子集, 来生成许多单个的树。

所以A是正确的。

254.对于PCA(主成分分析)转化过的特征 , 朴素贝叶斯的”不依赖假设”总是成立, 因为所有主要成分是正交的, 这个说法是 :(B)

A. 正确的 
B. 错误的

答案: (B) 
这个说法是错误的。首先,“不依赖”和“不相关”是两回事;其次, 转化过的特征, 也可能是相关的。

255.对于PCA说法正确的是 :(A) 
1.我们必须在使用PCA前规范化数据 
2.我们应该选择使得模型有最大variance的主成分 
3.我们应该选择使得模型有最小variance的主成分 
4.我们可以使用PCA在低维度上做数据可视化

A. 1, 2 and 4 
B. 2 and 4 
C. 3 and 4 
D. 1 and 3 
E. 1, 3 and 4

答案: (A) 
1)PCA对数据尺度很敏感, 打个比方, 如果单位是从km变为cm, 这样的数据尺度对PCA最后的结果可能很有影响(从不怎么重要的成分变为很重要的成分) 
2)我们总是应该选择使得模型有最大variance的主成分 
3)有时在低维度上左图是需要PCA的降维帮助的

256.对于下图, 最好的主成分选择是多少 ?(B)



A. 7 
B. 30 
C. 35 
D. 不确定

答案: (B) 
主成分选择使variance越大越好, 在这个前提下, 主成分越少越好。

257.数据科学家可能会同时使用多个算法(模型)进行预测, 并且最后把这些算法的结果集成起来进行最后的预测(集成学习),以下对集成学习说法正确的是 :(B)

A. 单个模型之间有高相关性 
B. 单个模型之间有低相关性 
C. 在集成学习中使用“平均权重”而不是“投票”会比较好 
D. 单个模型都是用的一个算法

答案: (B)

258.在有监督学习中, 我们如何使用聚类方法?(B) 
1.我们可以先创建聚类类别, 然后在每个类别上用监督学习分别进行学习 
2.我们可以使用聚类“类别id”作为一个新的特征项, 然后再用监督学习分别进行学习 
3.在进行监督学习之前, 我们不能新建聚类类别 
4.我们不可以使用聚类“类别id”作为一个新的特征项, 然后再用监督学习分别进行学习

A. 2 和 4 
B. 1 和 2 
C. 3 和 4 
D. 1 和 3

答案: (B) 
我们可以为每个聚类构建不同的模型, 提高预测准确率;“类别id”作为一个特征项去训练, 可以有效地总结了数据特征。所以B是正确的。

259.以下说法正确的是 :(C) 
1.一个机器学习模型,如果有较高准确率,总是说明这个分类器是好的 
2.如果增加模型复杂度, 那么模型的测试错误率总是会降低 
3.如果增加模型复杂度, 那么模型的训练错误率总是会降低 
4.我们不可以使用聚类“类别id”作为一个新的特征项, 然后再用监督学习分别进行学习

A. 1 
B. 2 
C. 3 
D. 1 and 3

答案: (C) 
考的是过拟合和欠拟合的问题。

260.对应GradientBoosting tree算法, 以下说法正确的是 :(C) 
1.当增加最小样本分裂个数,我们可以抵制过拟合 
2.当增加最小样本分裂个数,会导致过拟合 
3.当我们减少训练单个学习器的样本个数,我们可以降低variance 
4.当我们减少训练单个学习器的样本个数,我们可以降低bias

A. 2 和 4 
B. 2 和 3 
C. 1 和 3 
D. 1 和 4

答案: (C) 
最小样本分裂个数是用来控制“过拟合”参数。太高的值会导致“欠拟合”,这个参数应该用交叉验证来调节。第二点是靠bias和variance概念的。

261.以下哪个图是KNN算法的训练边界 ? (B)



A) B 
B) A 
C) D 
D) C 
E) 都不是

答案:(B) 
KNN算法肯定不是线性的边界,所以直的边界就不用考虑了。另外这个算法是看周围最近的k个样本的分类用以确定分类,所以边界一定是坑坑洼洼的。

262.如果一个训练好的模型在测试集上有100%的准确率, 这是不是意味着在一个新的数据集上,也会有同样好的表现?(B)

A. 是的,这说明这个模型的范化能力已经足以支持新的数据集合了 
B. 不对,依然后其他因素模型没有考虑到,比如噪音数据

答案:(B) 
没有一个模型是可以总是适应新的数据的。我们不可能达到100%的准确率。

263.下面的交叉验证方法 :(B) 
i. 有放回的Bootstrap方法 
ii. 留一个测试样本的交叉验证 
iii. 5折交叉验证 
iv. 重复两次的5折交叉验证 
当样本是1000时,下面执行时间的顺序,正确的是:

A. i > ii > iii > iv 
B. ii > iv > iii > i 
C. iv > i > ii > iii 
D. ii > iii > iv > i

答案:(B)

  • Bootstrap方法是传统的随机抽样,验证一次的验证方法,只需要训练1个模型,所以时间最少。

  • 留一个测试样本的交叉验证,需要n次训练过程(n是样本个数),这里,需要训练1000个模型。

  • 5折交叉验证需要训练5个模型。

  • 重复两次的5折交叉验证,需要训练10个模型。

264.变量选择是用来选择最好的判别器子集, 如果要考虑模型效率,我们应该做哪些变量选择的考虑? :(C) 
1.多个变量其实有相同的用处 
2.变量对于模型的解释有多大作用 
3.特征携带的信息 
4.交叉验证

A. 1 和 4 
B. 1, 2 和 3 
C. 1,3 和 4 
D. 以上所有

答案:(C) 
注意,这题的题眼是考虑模型效率,所以不要考虑选项B

265.对于线性回归模型,包括附加变量在内,以下的可能正确的是 :(D) 
1.R-Squared 和 Adjusted R-squared都是递增的 
2.R-Squared 是常量的,Adjusted R-squared是递增的 
3.R-Squared 是递减的, Adjusted R-squared 也是递减的 
4.R-Squared 是递减的, Adjusted R-squared是递增的

A. 1 和 2 
B. 1 和 3 
C. 2 和 4 
D. 以上都不是

答案:(D) 
R-Squared不能决定系数估计和预测偏差,这就是为什么我们要估计残差图。但是,R-Squared有R-Squared和predicted R-Squared所没有的问题。每次为模型加入预测器,R-Squared递增或者不变。

266.对于下面三个模型的训练情况, 下面说法正确的是 :(C)



1.第一张图的训练错误与其余两张图相比,是最大的 
2.最后一张图的训练效果最好,因为训练错误最小 
3.第二张图比第一和第三张图鲁棒性更强,是三个里面表现最好的模型 
4.第三张图相对前两张图过拟合了 
5.三个图表现一样,因为我们还没有测试数据集

A. 1 和 3 
B. 1 和 3 
C. 1, 3 和 4 
D. 5

267.对于线性回归,我们应该有以下哪些假设?(D) 
1.找到利群点很重要, 因为线性回归对利群点很敏感 
2.线性回归要求所有变量必须符合正态分布 
3.线性回归假设数据没有多重线性相关性

A. 1 和 2 
B. 2 和 3 
C. 1,2 和 3 
D. 以上都不是

答案:(D)

  • 利群点要着重考虑,第一点是对的。

  • 不是必须的,当然如果是正态分布,训练效果会更好。

  • 有少量的多重线性相关性是可以的,但是我们要尽量避免。

268.我们注意变量间的相关性。在相关矩阵中搜索相关系数时, 如果我们发现3对变量的相关系数是(Var1 和Var2, Var2和Var3, Var3和Var1)是-0.98, 0.45, 1.23 . 我们可以得出什么结论?(C) 
1.Var1和Var2是非常相关的 
2.因为Var和Var2是非常相关的, 我们可以去除其中一个 
3.Var3和Var1的1.23相关系数是不可能的

A. 1 and 3 
B. 1 and 2 
C. 1,2 and 3 
D. 1

答案:(C)

  • Var1和Var2的相关系数是负的,所以这是多重线性相关,我们可以考虑去除其中一个。

  • 一 般的,如果相关系数大于0.7或者小于-0.7,是高相关的。

  • 相关系数的范围应该是[-1,1]。

269.如果在一个高度非线性并且复杂的一些变量中“一个树模型可比一般的回归模型效果更好”是(A)

A. 对的 
B. 错的

答案:(A)

270.对于维度极低的特征,选择线性还是非线性分类器?

答案:非线性分类器,低维空间可能很多特征都跑到一起了,导致线性不可分。 
1.如果特征的数量很大,跟样本数量差不多,这时候选用LR或者是Linear Kernel的SVM。 
2.如果特征的数量比较小,样本数量一般,不算大也不算小,选用SVM+Gaussian Kernel。 
3.如果特征的数量比较小,而样本数量很多,需要手工添加一些特征变成第一种情况。

271.SVM、LR、决策树的对比。

模型复杂度:SVM支持核函数,可处理线性非线性问题;LR模型简单,训练速度快,适合处理线性问题;决策树容易过拟合,需要进行剪枝。 
损失函数:SVM hinge loss; LR L2正则化; Adaboost 指数损失。 
数据敏感度:SVM添加容忍度对outlier不敏感,只关心支持向量,且需要先做归一化; LR对远点敏感。 
数据量:数据量大就用LR,数据量小且特征少就用SVM非线性核。

272.什么是ill-condition病态问题?

训练完的模型,测试样本稍作修改就会得到差别很大的结果,就是病态问题,模型对未知数据的预测能力很差,即泛化误差大。

273.简述KNN最近邻分类算法的过程?

1.计算训练样本和测试样本中每个样本点的距离(常见的距离度量有欧式距离,马氏距离等); 
2.对上面所有的距离值进行排序; 
3.选前k个最小距离的样本; 
4.根据这k个样本的标签进行投票,得到最后的分类类别;

274.常用的聚类划分方式有哪些?列举代表算法。

1.基于划分的聚类:K-means,k-medoids,CLARANS。 
2.基于层次的聚类:AGNES(自底向上),DIANA(自上向下)。 
3.基于密度的聚类:DBSACN,OPTICS,BIRCH(CF-Tree),CURE。 
4.基于网格的方法:STING,WaveCluster。 
5.基于模型的聚类:EM,SOM,COBWEB。

275.下面对集成学习模型中的弱学习者描述错误的是?(C)

A. 他们经常不会过拟合 
B. 他们通常带有高偏差,所以其并不能解决复杂学习问题 
C. 他们通常会过拟合

答案:(C) 
弱学习者是问题的特定部分。所以他们通常不会过拟合,这也就意味着弱学习者通常拥有低方差和高偏差。

276.下面哪个/些选项对 K 折交叉验证的描述是正确的?(D) 
1.增大 K 将导致交叉验证结果时需要更多的时间 
2.更大的 K 值相比于小 K 值将对交叉验证结构有更高的信心 
3.如果 K=N,那么其称为留一交叉验证,其中 N 为验证集中的样本数量

A. 1 和 2 
B. 2 和 3 
C. 1 和 3 
D. 1、2 和 3

答案:(D) 
大 K 值意味着对过高估计真实预期误差(训练的折数将更接近于整个验证集样本数)拥有更小的偏差和更多的运行时间(并随着越来越接近极限情况:留一交叉验证)。我们同样在选择 K 值时需要考虑 K 折准确度和方差间的均衡。

277.最出名的降维算法是 PAC 和 t-SNE。将这两个算法分别应用到数据「X」上,并得到数据集「X_projected_PCA」,「X_projected_tSNE」。下面哪一项对「X_projected_PCA」和「X_projected_tSNE」的描述是正确的?(B)

A. X_projected_PCA 在最近邻空间能得到解释 
B. X_projected_tSNE 在最近邻空间能得到解释 
C. 两个都在最近邻空间能得到解释 
D. 两个都不能在最近邻空间得到解释

答案:(B) 
t-SNE 算法考虑最近邻点而减少数据维度。所以在使用 t-SNE 之后,所降的维可以在最近邻空间得到解释。但 PCA 不能。

278.给定三个变量 X,Y,Z。(X, Y)、(Y, Z) 和 (X, Z) 的 Pearson 相关性系数分别为 C1、C2 和 C3。现在 X 的所有值加 2(即 X+2),Y 的全部值减 2(即 Y-2),Z 保持不变。那么运算之后的 (X, Y)、(Y, Z) 和 (X, Z) 相关性系数分别为 D1、D2 和 D3。现在试问 D1、D2、D3 和 C1、C2、C3 之间的关系是什么?(E)

A. D1= C1, D2 < C2, D3 > C3 
B. D1 = C1, D2 > C2, D3 > C3 
C. D1 = C1, D2 > C2, D3 < C3 
D. D1 = C1, D2 < C2, D3 < C3 
E. D1 = C1, D2 = C2, D3 = C3

答案:(E) 
特征之间的相关性系数不会因为特征加或减去一个数而改变。

279.为了得到和 SVD 一样的投射(projection),你需要在 PCA 中怎样做?(A)

A. 将数据转换成零均值 
B. 将数据转换成零中位数 
C. 无法做到

答案:(A) 
当数据有一个 0 均值向量时,PCA 有与 SVD 一样的投射,否则在使用 SVD 之前,你必须将数据均值归 0。

280.假设我们有一个数据集,在一个深度为 6 的决策树的帮助下,它可以使用 100% 的精确度被训练。现在考虑一下两点,并基于这两点选择正确的选项。(A) 
注意:所有其他超参数是相同的,所有其他因子不受影响。 
1.深度为 4 时将有高偏差和低方差 
2.深度为 4 时将有低偏差和低方差

A. 只有 1 
B. 只有 2 
C. 1 和 2 
D. 没有一个

答案:(A) 
如果在这样的数据中你拟合深度为 4 的决策树,这意味着其更有可能与数据欠拟合。因此,在欠拟合的情况下,你将获得高偏差和低方差。


您的关注和转发,是我们不断努力的原动力!



文章转载自金牌程序员,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论