机器学习强大如一座军械库, 里面有各种威力惊人的武器, 不过你首先得学会如何使用举个栗子, 回归 (Regression) 是一把能够有效分析数据的利剑, 但它对高度复杂的数据却束手无策支持向量机 (Support Vector Machines,SVM) 就好比一把锋利的小刀, 特别是在小数据集上建模显得更为强大有力
本套测试题专为 SVM 及其应用而设计, 目前超过 550 人注册了这个测试(排行榜), 一起来看看你的 SVM 知识能得多少分吧, 顺便还能查漏补缺
Helpful Resources
1. 十大常用机器学习算法(附 Python 和 R 代码)
2.SVM 原理及代码
Skill test Questions and Answers
假定你用一个线性 SVM 分类器求解二类分类问题, 如下图所示, 这些用红色圆圈起来的点表示支持向量, 据此回答问题 1 和 2:
1. 如果移除这些圈起来的数据, 决策边界 (即分离超平面) 是否会发生改变?
A.Yes B. No
答案: A
Tips: 如果改变这三个点中任意一个点的位置就会引入松弛约束条件, 决策边界就会发生变化
2. 如果将数据中除圈起来的三个点以外的其他数据全部移除, 那么决策边界是否会改变?
A.True B. False
答案: B
Tips: 决策边界只会被支持向量影响, 跟其他点无关
3. 关于 SVM 泛化误差描述正确的是
A.超平面与支持向量之间距离
B.SVM 对未知数据的预测能力
C.SVM 的误差阈值
答案: B
Tips: 统计学中的泛化误差是指对模型对未知数据的预测能力
4. 如果惩罚参数 C 趋于无穷, 下面哪项描述是正确的?
A.若最优分离超平面存在, 必然能够将数据完全分离
B.软间隔分类器能够完成数据分类
C.以上都不对
答案: A
Tips: 如果误分类惩罚很高, 软间隔不会一直存在, 因为没有更多的误差空间
5. 以下关于硬间隔描述正确的是
A.SVM 允许分类存在微小误差
B.SVM 允许分类是有大量误差
C.以上均不正确
答案: A
Tips: 硬间隔意味着 SVM 在分类时很严格, 在训练集上表现尽可能好, 有可能会造成过拟合
6. 训练 SVM 的最小时间复杂度为 O(n2), 那么一下哪种数据集不适合用 SVM?
A.大数据集 B. 小数据集 C. 中等大小数据集 D. 和数据集大小无关
答案: A
有明确分类边界的数据集最适合 SVM
7. SVM 的效率依赖于:
A.核函数的选择 B. 核参数 C. 软间隔参数 C D. 以上所有
答案: D
Tips: SVM 的效率依赖于以上三个基本要求, 它能够提高效率, 降低误差和过拟合
8. 支持向量是那些最接近决策平面的数据点
A.TRUE B. FALSE
答案: A
9. SVM 在下列那种情况下表现糟糕:
A.线性可分数据 B. 清洗过的数据 C. 含噪声数据与重叠数据点
答案: C
Tips: 当数据中含有噪声数据与重叠的点时, 要画出干净利落且无误分类的超平面很难
10. 假定你使用了一个很大γ值的 RBF 核, 这意味着:
A. 模型将考虑使用远离超平面的点建模
B.模型仅使用接近超平面的点来建模
C.模型不会被点到超平面的距离所影响
D.以上都不正确
答案: B
Tips: SVM 调参中的γ衡量距离超平面远近的点的影响对于较小的γ, 模型受到严格约束, 会考虑训练集中的所有点, 而没有真正获取到数据的模式对于较大的γ, 模型能很好地学习到模型
11.SVM 中的代价参数表示:
A.交叉验证的次数
B.使用的核
C.误分类与模型复杂性之间的平衡
D.以上均不是
答案: C
Tips: 代价参数决定着 SVM 能够在多大程度上适配训练数据如果你想要一个平稳的决策平面, 代价会比较低; 如果你要将更多的数据正确分类, 代价会比较高可以简单的理解为误分类的代价
假定你使用 SVM 学习数据 X, 数据 X 里面有些点存在错误现在如果你使用一个二次核函数, 多项式阶数为 2, 使用松弛变量 C 作为超参之一, 请回答 12-13
12. 当你使用较大的 C(C 趋于无穷), 则:
A.仍然能正确分类数据
B.不能正确分类
C.不确定
D.以上均不正确
答案: A
Tips: 采用更大的 C, 误分类点的惩罚就更大, 因此决策边界将尽可能完美地分类数据
13. 如果使用较小的 C(C 趋于 0), 则:
A.误分类
B.正确分类
C.不确定
D.以上均不正确
答案: A
Tips: 分类器会最大化大多数点之间的间隔, 少数点会误分类, 因为惩罚太小了
14. 如果我使用数据集的全部特征并且能够达到 100% 的准确率, 但在测试集上仅能达到 70% 左右, 这说明:
A.欠拟合 B. 模型很棒 C. 过拟合
答案: C
Tips: 如果在训练集上模型很轻易就能达到 100% 准确率, 就要检查是否发生过拟合
15. 下面哪个属于 SVM 应用
A.文本和超文本分类
B.图像分类
C.新文章聚类
D.以上均是
答案: D
Tips: SVM 广泛应用于实际问题中, 包括回归, 聚类, 手写数字识别等
假设你训练 SVM 后, 得到一个线性决策边界, 你认为该模型欠拟合据此回答 16-18 题:
16. 在下次迭代训练模型时, 应该考虑:
A.增加训练数据
B.减少训练数据
C.计算更多变量
D.减少特征
答案: C
Tips: 由于是欠拟合, 最好的选择是创造更多特征带入模型训练
17. 假设你在上一题做出了正确的选择, 那么以下哪一项会发生:
1. 降低偏差
2. 降低方差
3. 增加偏差
4. 降低方差
A.1 和 2
B.2 和 3
C.1 和 4
D.2 和 4
答案: C
Tips: 更好的模型会降低偏差并提高方差
18. 假如你想修改 SVM 的参数, 同样达到模型不会欠拟合的效果, 应该怎么做?
A.增大参数 C
B.减小参数 C
C.改变 C 并不起作用
D.以上均不正确
答案: A
Tips: 增大参数 C 会得到正则化模型
19.SVM 中使用高斯核函数之前通常会进行特征归一化, 以下关于特征归一化描述正确的是?
1.经过特征正则化得到的新特征优于旧特征
2.特征归一化无法处理类别变量
3.SVM 中使用高斯核函数时, 特征归一化总是有用的
A.1 B. 1 and 2 C. 1 and 3 D. 2 and 3
答案: B
假定你使用 SVM 来处理 4 类分类问题, 你使用了 one-vs-all 策略, 据此回答 20-22
20. 此种情况下要训练 SVM 模型多少次?
- A.1
- B.2
- C. 3
- D. 4
答案: D
Tips: 使用 one-vs-all 策略就要训练 4 次 , 每次把一个类当成正类, 其他的类当作负类, 然后学习出 4 个模型, 对新数据取函数值最大的那个类作为预测类别
21. 假定用 one-vs-all 训练一次 SVM 要 10 秒, 那么总共应该训练多少秒?
A.20
B.40
C.60
D.80
答案: B
Tips: 每个训练 10 秒, 要训练 4 次, 那就是 40 秒
22. 假设现在只有两个类, 这种情况下 SVM 需要训练几次?
A.1
B.2
C.3
D.4
答案: A
Tips: 两个类训练 1 次就可以了
假设你训练了一个基于线性核的 SVM, 多项式阶数为 2, 在训练集和测试集上准确率都为 100%, 据此回答 23-24
23. 如果增加模型复杂度或核函数的多项式阶数, 将会发生什么?
A.导致过拟合
B.导致欠拟合
C.无影响, 因为模型已达 100% 准确率
D.以上均不正确
答案: A
Tips: 增加模型复杂度会导致过拟合
24. 如果增加模型复杂度之后, 你发现训练集上准确率还是 100%, 可能是什么原因造成的?
1. 数据不变, 适配更多的多项式项或参数, 算法开始记忆数据中的一切
2. 数据不变, SVM 不必在更大的假设空间中搜索分类超平面
A.1
B.2
C.1 and 2
D.以上均不正确
答案: C
25. 以下关于 SVM 核函数说法正确的是
1. 核函数将低维数据映射到高维空间
2. 是一个相似度函数(similarity function)
A.1
B.2
C.1 and 2
D.以上均不正确
答案: C
Overall Distribution
至今超过 350 人参与了这项测试, 得分分布情况如下:
作者博客还有其他如降维机器学习 SQL 的自测题, 感兴趣的可以去作者博客看看
- GitHub: https://github.com/anki1909
- LinkedIn: https://www.linkedin.com/in/ankit-gupta-84b737ba?trk=nav_responsive_tab_profile
来源: http://click.aliyun.com/m/42694/