红色石头的我的网站:redstonewill.com面试
机器学习是一门理论性和实战性都比较强的技术学科。在应聘机器学习相关工做岗位时,咱们经常会遇到各类各样的机器学习问题和知识点。为了帮助你们对这些知识点进行梳理和理解,以便可以更好地应对机器学习笔试包括面试。红色石头准备在公众号连载一些机器学习笔试题系列文章,但愿可以对你们有所帮助!算法
今天的笔试题主要涉及的知识点包括:SVM、高斯核、F1 score、Leave-One_out 交叉验证、神经网络、隐马尔可夫模型等。网络
Q1. 假设咱们在支持向量机(SVM)算法中对 Gamma(RBF 核系数 γ)的不一样值进行可视化。因为某种缘由,咱们忘记了标记伽马值的可视化。令 g一、g二、g3 分别对应着下面的图 一、图 2 和图 3。则关于 g一、g二、g3 大小下列说法正确的是?机器学习
A. g1 > g2 > g3函数
B. g1 = g2 = g3性能
C. g1 < g2 < g3学习
D. g1 > g2 = g3测试
E. g1 < g2 = g3优化
答案:C网站
解析:本题考查的是 Kernel SVM 中 Gamma γ 对模型形状的影响。
SVM 中为了获得更加复杂的分类面并提升运算速度,一般会使用核函数的技巧。径向基核函数(RBF)也称为高斯核函数是最经常使用的核函数,其核函数的表达式以下所示:
形式与高斯分布相似,Gamma γ 是高斯分布中标准差 Sigma σ 的导数。咱们知道在高斯分布中,σ 越小,对应的高斯曲线就越尖瘦。也就是说 γ 越大,高斯核函数对应的曲线就越尖瘦。这样,运用核技巧获得的 SVM 分类面就更加曲折复杂,甚至会将许多样本隔离成单个的小岛。
下面是 γ 分别取 一、十、100 时对应的 SVM 分类效果:
值得一提的是,γ 太小容易形成欠拟合,γ 过大容易形成过拟合。
Q2. 咱们知道二元分类的输出是几率值。通常设定输出几率大于或等于 0.5,则预测为正类;若输出几率小于 0.5,则预测为负类。那么,若是将阈值 0.5 提升,例如 0.6,大于或等于 0.6 的才预测为正类。则准确率(Precision)和召回率(Recall)会发生什么变化(多选)?
A. 准确率(Precision)增长或者不变
B. 准确率(Precision)减少
C. 召回率(Recall)减少或者不变
D. 召回率(Recall)增大
答案:AC
解析:本题考察的是二元分类阈值提升对准确率和召回率的影响。
首先来看一下什么是准确率和召回率,下面分别用 P 和 R 表明。以一个简单的例子来讲明,例如预测 20 个西瓜中哪些是好瓜,这 20 个西瓜中实际有 15 个好瓜,5 个坏瓜。某个模型预测的结果是:16 个好瓜,4 个坏瓜。其中,预测的 16 个好瓜中有 14 个确实是好瓜,预测的 4 个坏瓜中有 3 个确实是坏瓜。下面以一张图表说明:
这样,准确率 P 的定义是:
能够理解为预测好瓜中,确实是好瓜的比例。该例子中 P = 14/(14+2)。
召回率 R 的定义是:
能够理解为真实的好瓜被预测出来的比例。该例子中 R = 14/(14+1)。
如今,若是二元分类阈值提升,至关于断定好瓜的标准更严格了。因此可能会形成预测是好瓜的数目减小,即 TP 和 FP 均减少。所以准确率可能会增长,极端的,苛刻条件,只预测一个是好瓜,那该瓜是好瓜的几率会很大,即准确率很高。可是 15 个好瓜你只挑出来 1 个,召回率就下降了。
准确率和召回率都不能很好地反映模型性能,一般使用 F1 score 来做为模型预测水平判据。F1 Score 被定义为准确率和召回率的调和平均数。,以下所示:
Q3. 点击率预测是一个正负样本不平衡问题(例如 99% 的没有点击,只有 1% 点击)。假如在这个非平衡的数据集上创建一个模型,获得训练样本的正确率是 99%,则下列说法正确的是?
A. 模型正确率很高,不须要优化模型了
B. 模型正确率并不高,应该创建更好的模型
C. 没法对模型作出好坏评价
D. 以上说法都不对
答案:B
解析:这一题延续了上题中准确率和召回率的知识点,考查了正负样本分布不均问题。
模型训练过程当中正负样本分布不均是常见的问题。这时候不能单独只看预测正确率。对于此题来讲,若是咱们预测的结果是 100% 没有点击,0% 点击,那么能够说正确率是 99%,由于只有 1% 的点击预测错误。可是,咱们其实更关心的那 1% 的点击率并无预测出来。能够说这样的模型是没有任何意义的。
对应正负样本不平衡的状况须要作一些数据处理,主要包括:采样、数据合成、惩罚因子加权、一分类。其中,一分类便是在正负样本分布极不平衡的时候,把它看作一分类(One Class Learning)或异常检测(Novelty Detection)问题。这类方法的重点不在于捕捉类间的差异,而是为其中一类进行建模,经典的工做包括 One-class SVM 等。
Q4. 假设咱们使用 kNN 训练模型,其中训练数据具备较少的观测数据(下图是两个属性 x、y 和两个标记为 “+” 和 “o” 的训练数据)。如今令 k = 1,则图中的 Leave-One-Out 交叉验证错误率是多少?
A. 0%
B. 20%
C. 50%
D. 100%
答案:D
解析:本题考查的是 kNN 算法和 Leave-One-Out 交叉验证。
kNN 算法是标记类算法,取当前实例最近邻的 k 个样本,k 个样本中所属的最多类别即断定为该实例的类别。本题中 k = 1,则只须要看最近邻的那一个样本属于“+” 仍是“o”便可。
Leave-One-Out 交叉验证是一种用来训练和测试分类器的方法,假定数据集有N 个样本,将这个样本分为两份,第一份 N-1 个样本用来训练分类器,另外一份 1 个样本用来测试,如此迭代 N 次,全部的样本里全部对象都经历了测试和训练。
分别对这 10 个点进行观察能够发现,每一个实例点最近邻的都不是当前实例所属的类别,所以每次验证都是错误的。总体的错误率即为 100%。
Q5. 若是在大型数据集上训练决策树。为了花费更少的时间来训练这个模型,下列哪一种作法是正确的?
A. 增长树的深度
B. 增长学习率
C. 减少树的深度
D. 减小树的数量
答案:C
解析:本题考查的是决策树相关概念。
通常用决策树进行分类,从根结点开始,对实例的某一特征进行测试,根据测试结果,将实例分配到其子结点。这时,每个子结点对应着该特征的一个取值。如此递归地对实例进行测试并分类,直至达到叶结点。最后将实例分到叶结点的类中。—— 引自李航 《统计学习方法》
决策树深度越深,在训练集上偏差会越小,准确率越高。可是容易形成过拟合,并且增长模型的训练时间。对决策树进行修剪,减少树的深度,可以提升模型的训练速度,有效避免过拟合。
单决策树中,学习率不是一个有效参数。
决策树是单树,随机森林由多个决策树组成。
Q6. 关于神经网络,下列说法正确的是?
A. 增长网络层数,可能会增长测试集分类错误率
B. 增长网络层数,必定会增长训练集分类错误率
C. 减小网络层数,可能会减小测试集分类错误率
D. 减小网络层数,必定会减小训练集分类错误率
答案:AC
解析:本题考查的是神经网络层数对训练偏差和测试偏差的影响。
通常来讲,神经网络层数越多,模型越复杂,对数据的分类效果越好。因此,从最简单的层数开始,增长网络层数都能使得训练偏差和测试偏差减少。可是,神经网络层数过多容易形成过拟合,即对训练样本分类效果很好,偏差小,可是测试偏差很大。
为了不发生过拟合,应该选择合适的神经网络层数并使用正则化技术来让神经网络更加稳健。
Q7. 假设咱们使用原始的非线性可分版本的 Soft-SVM 优化目标函数。咱们须要作什么来保证获得的模型是线性可分离的?
A. C = 0
B. C = 1
C. C 正无穷大
D. C 负无穷大
答案:C
解析:本题考查的是 SVM 和 Soft-SVM 之间的联系和彼此转化条件。
Soft-SVM 在原来的 SVM 基础上增长了分类错误项,以下式:
其中,第二项即为分类错误项。C 为参数相似于正则化中的惩罚因子。其中, ξn 表示每一个点犯错误的程度,ξn = 0,表示没有错误,ξn 越大,表示错误越大,即点距离边界(负的)越大。参数 C 表示尽量选择宽边界和尽量不要犯错二者之间的权衡,由于边界宽了,每每犯错误的点会增长。large C 表示但愿获得更少的分类错误,即不惜选择窄边界也要尽量把更多点正确分类;small C 表示但愿获得更宽的边界,即不惜增长错误点个数也要选择更宽的分类边界。所以,C 正无穷大时,能够实现没有分类错误的点,模型线性可分。
从另外一方面来看,线性可分 SVM 中,对偶形式解得拉格朗日因子 αn≥0;而在 Soft-SVM 中,对偶形式解得拉格朗日因子 0 ≤ αn ≤ C。显然,当 C 无正无穷大的时候,二者形式相同。
值得一提的是,当 C 值很大的时候,虽然分类正确率提升,但极可能把 noise 也进行了处理,从而可能形成过拟合。也就是说 Soft-SVM 一样可能会出现过拟合现象,因此参数 C 的选择很是重要。下图是 C 分别取一、十、100时,相应的分类曲线:
Q8. 在训练完 SVM 以后,咱们能够只保留支持向量,而舍去全部非支持向量。仍然不会影响模型分类能力。这句话是否正确?
A. 正确
B. 错误
答案:A
解析:本题考查的是对支持向量机 SVM 的概念理解。
其实,刚学习支持向量机时会有个疑问,就是为何会叫这个名字。该算法决定分类面的通常是关键的几个点,这几个点构建了分类面,所以被称为支持向量。该算法也就叫支持向量机了。训练完毕以后,其它非支持向量对分类面并没有影响,去掉无妨。
对于线性可分的 SVM,能够根据拉格朗日因子 αn 数值来判断当前样本 (xn, yn) 是否为 SV。
若 αn = 0:不是 SV
若 αn > 0:是 SV,且分类正确
对于 Soft-SVM(线性不可分),能够根据拉格朗日因子 αn 数值与参数 C 的关系来判断当前样本 (xn, yn) 是否为 SV。
若 αn = 0:不是 SV,且分类正确
若 0 < αn < C:是 SV
若 αn = C:不是 SV,且分类错误(或刚好位于分类面上)
对 SVM 概念不太清楚的同窗能够看看林轩田机器学习技法 1-6 对 SVM 的讲解,通俗易懂,内容翔实。对应的笔记能够在本公众号查阅,放上第 1 讲连接:
Q9. 下列哪些算法能够用来够造神经网络(多选)?
A. kNN
B. 线性回归
C. 逻辑回归
答案:BC
解析:本题考查的是 kNN、线性回归、逻辑回归与神经网络之间的一些关系。
kNN 是一种基于实例的学习算法,不具备任何训练参数。所以不能用来构造神经网络。
线性回归和逻辑回归均可以用来构造神经网络模型,其实两者就是单神经元的神经网络。
Q10. 下列数据集适用于隐马尔可夫模型的是?
A. 基因数据
B. 影评数据
C. 股票市场价格
D. 以上全部
答案:D
解析:本题考查的是隐马尔可夫模型适用于解决哪类问题。
隐马尔可夫模型(Hidden Markov Model,HMM)是关于时序的几率模型,描述一个隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观察而产生观测随机序列的过程。所以,隐马尔可夫模型适用于解决时间序列问题。
参考文献:
Solutions for Skilltest Machine Learning : Revealed