红⾊⽯头的个⼈⽹站:
机器学习是⼀门理论性和实战性都⽐较强的技术学科。在应聘机器学习相关⼯作岗位时,我们常常会遇到各种各样的机器学习问题和知识点。为了帮助⼤家对这些知识点进⾏梳理和理解,以便能够更好地应对机器学习笔试包括⾯试。红⾊⽯头准备在连载⼀些机器学习笔试题系列⽂章,希望能够对⼤家有所帮助!
今天的笔试题主要涉及的知识点包括:降维、PCA、特征选择、随机森林、GBDT、集成学习等。 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 通过多轮迭代,每轮迭代产⽣⼀个弱分类器,每个分类器在上⼀轮分类器的残差基础上进⾏训练。对弱分类器的要求⼀般是⾜够简单,并且是低⽅差和⾼偏差的,因为训练的过程是通过降低偏差来不断提⾼最终分类器的精度。
参考⽂献: