Press "Enter" to skip to content

K近邻算法你掌握了吗?来测试一下就知道了!

 

简介

 

如果你要问我两个机器学习中最直观明了且通俗易懂的算法——那必然就是K近邻算法和基于树的算法了。这两个算法都易于理解,也很容易解释,并且能够很好地去向人们展示。最近,我们就针对这两种算法,整理了一些测试题。

 

如果你是机器学习的新手,也要在理解这两种算法的基础上进行测试。它们虽然简单,但是却十分强大且被广泛运用在工业领域。这些技能测试能够帮助你测试你在K近邻算法方面的技术能力。因为它们是为测试你在K近邻算法上的基础知识与应用能力而量身定制的。

 

有超过650人注册参加考试。如果你错过了这个测试也没关系,下面就是测试的问题与答案。

 

技能测试试题与答案解析

 

1)【True or False】KNN算法在测试时花费更多计算,而不是训练时。

 

A) TRUE B)FALSE

 

答案:A

 

解析:算法的训练阶段仅包括存储训练样本的特征向量和类标签。 在测试阶段,通过在最接近该查询点的k个训练样本中分配最频繁的标签来对测试点进行分类——因此这方面计算更多。

 

2)下图中,若使用K近邻算法,最佳K值应在哪里取得?

 

 

A) 3 B)10 C) 20 D)50

 

答案:B

 

解析:当K为10时,验证的错误率最低,所以K值应取10.

 

3)下图哪种度量距离不能用于KNN算法?

 

A)Manhattan B)Minkowski C)Tanimoto D) Jaccard E)Mahalanobis F) 所有都可以

 

答案:F

 

解析:所有的度量距离都可以用于KNN。

 

4)关于KNN哪种观点是对的?

 

A)它可以用于分类

 

B)它可以用于回归

 

C)它可以用于分类和回归

 

答案:C

 

解析:我们也可以使用KNN来解决回归问题。在这种情况下,预测可以基于k个最相似实例的均值或中值。

 

5)下面关于KNN算法哪种说法是正确的?

 

1.如果所有的数据是同样的大小,KNN算法表现比较好

 

2.KNN算法适用于小数据输入,而大量数据输入时会遇到困难。

 

3.KNN算法并没有对正在处理的问题的功能形式进行假设。

 

A)1和2

 

B)1和3

 

C)只有1

 

D)以上所有

 

答案:D

 

解析:以上所有的说法都是正确的

 

6)以下哪种机器学习算法可用于输入分类和连续变量的缺失值?

 

A )KNN

 

B)线性回归

 

C)逻辑回归

 

答案:A

 

解析:k-NN算法可用于估算分类和连续变量的缺失值。

 

7)关于曼哈顿距离哪种观点是对的?

 

A)它可以用于连续变量

 

B)它可以用于分类变量

 

C)两者都可以

 

D)两者都不可以

 

答案:A

 

解析:曼哈顿距离用于计算实值特征之间的距离。

 

8)对于k-NN中的分类变量,我们使用以下哪种距离测量?

 

1.汉明距离

 

2.欧几里得距离

 

3.曼哈顿距离

 

A)1

 

B)2

 

C)3

 

D)1和2

 

E )2和3

 

F )1和2和3

 

答案:A

 

解析:在连续变量的情况下使用欧几里得距离和曼哈顿距离,而在分类变量的情况下使用汉明距离。

 

9)以下哪一项是欧几里德距离算法下,两个数据点A(1,3)和B(2,3)之间的距离?

 

A)1

 

B)2

 

C)4

 

D)8

 

答案:A

 

解析:sqrt( (1-2)^2 + (3-3)^2) = sqrt(1^2 + 0^2) = 1

 

10)以下哪一项将是曼哈顿距离算法下,两个数据点A(1,3)和B(2,3)之间的距离?

 

A)1

 

B)2

 

C)4

 

D)8

 

答案:A

 

解析:sqrt( mod((1-2)) + mod((3-3))) = sqrt(1 + 0) = 1

 

11题,12题内容

 

假设已经给出了以下数据,其中x和y是两个输入变量,分类结果是因变量。

 

 

下面是散点图,在二维空间里显示上面的数据:

 

 

11)假设您想要使用KNN(K值为3)中的欧式距离预测新数据点x = 1和y = 1的类。那幺这个数据点属于哪个类?

 

A)+类

 

B)-类

 

C)不能确定

 

D)不是上面这些结果

 

答案:A

 

解析:所有三个最近点都是+类,所以这一点将被归类为+ 类。

 

12)在上一个问题中,您现在想要使用7-NN而不是3-KNN,以下x = 1和y = 1属于哪个类?

 

A)+类

 

B)-类

 

C)不能确定

 

答案:B

 

解析:现在这一点将被归类为 – 类,因为有4个-类点和3个+类点在圆圈中。

 

13题,14题的内容:

 

假设您已经给出了以下2类数据,其中“+”表示正类,“-”表示负类。

 

 

13)在KNN中,下面哪个K值,可以值得交叉验证的误差值最小?

 

A)3

 

B)5

 

C)上面都可以

 

D)上面都不可以

 

答案:B

 

解析:K为5时,交叉验证的误差值最小。

 

14)下面哪个是K为5时,交叉验证集的偏差?

 

A)2/14

 

B)4/14

 

C)6/14

 

D)8/14

 

E)以上都不是

 

答案:E

 

解析:K为5时,正确结果为10/14。

 

15)就偏差而言,关于K,下面哪个是正确的?

 

A)增加K时,偏差会增加

 

B)减小K时,偏差会增加

 

C)不能确定

 

D)以上都不对

 

答案:A

 

解析:大K意味着简单的模型,简单的模型总是有高偏差。

 

16)就方差而言,关于K,下面哪个是正确的?

 

A)增加K时,方差会增加

 

B)减小K时,方差会增加

 

C)不能确定

 

D)以上都不对

 

答案:B

 

解析:简单的模型一般会有较小的方差。

 

17)通常我们在K-NN算法中使用了以下两个距离(欧式距离和曼哈顿距离)。这些距离在两个点A(x1,y1)和B(x2,Y2)之间。你的任务是通过查看以下两个图来标记两个距离。关于下图,以下哪个选项是正确的?

 

 

A)左边是曼哈顿距离,右边是欧几里德距离 B)左边是欧几里德距离,右边是曼哈顿距离 C)左边或右边都不是曼哈顿距离 D)左或右都不是欧几里德距离

 

答案:B

 

解析:左边是欧几里德距离如何工作的图形描述,而右边是曼哈顿距离。

 

18)在KNN中发现有噪声,你会做下面哪种选择?

 

A)增加K的值 B)减小K的值 C)噪声与K值无关 D)以上都不对

 

答案:A

 

解析:增加K值能够让你更加相信分类结果。

 

19)在KNN中,由于维度等原因,很容易产生过拟合。那幺你会采用下面哪种方法来解决这个问题呢?

 

1.维度降低

 

2.特征选择

 

A)1 B)2 C)1和2 D)以上都不对

 

答案:C

 

解析:两种方法都是可以的。

 

20)下面两个陈述哪个是对的?

 

1.KNN是一种基于记忆的方法,因为分类器在我们收集到新的数据时会立即适应。

 

2.在最坏的情况下,用于分类新样本的计算复杂度随着训练数据集中的样本数量线性增长。

 

A)1

 

B)2

 

C)1和2

 

D)以上都不对

 

答案:C

 

解析:两个都是对的,显而易见。

 

21)假设给出下面的图像(左边为1.中间为2,右边为3),现在你的任务是找出每幅图中的KNN中的K值,其中K1表示第一个K,K2表示第二个K,K3表示第三个K。

 

 

A) K1 > K2 > K3 B) K1 < K2 C) K1 = K2 = K3 D) None of these

 

答案:D

 

解析:K3是K值最高的,而最低的是K1。

 

22)下图中哪个k 最少可以给出一个交叉验证准确度?

 

 

A)1

 

B)2

 

C)3

 

D)5

 

答案:B

 

解析:如果k值为2,则它会提供最低的交叉验证精度。

 

23)现在有一家公司建立了一个KNN分类器,可以在训练数据时获得100%的准确性。当他们在客户端部署这个模型的时候发现这个模型一点都不准确,可能是下面哪一项出错了?

 

注:模型已经成果部署,除了模型性能外,客户端没有发现其他技术问题。

 

A)它可能是一个过拟合了的模型

 

B)这个模型不适用

 

C)无法解释

 

D)以上都不是

 

答案:A

 

解析:在一个过度拟合的模块中,它可以在训练数据上表现良好,但它并不足以推广给新数据而达到同样的结果。

 

24)下面两个关于KNN的陈述,哪个是对的?

 

1.在k值非常大的情况下,我们可以将来自其他类的点包括在邻域中。

 

2.在k值太小的情况下,算法对噪声非常敏感。

 

A)1

 

B)2

 

C)1和2

 

D)以上都不对

 

答案:C

 

解析:这两个都是显而易见的正确。

 

25)关于KNN分类器,下面哪个说法是正确的?

 

A)K值越大,分类的精度越高

 

B)使用较小的K值,决策边界教平滑

 

C)决策边界是线性的

 

D)KNN没有明确的训练步骤

 

答案:D

 

解析:选项A,并不总是这样,K值不能太小,也不能太大;

 

选项B,C,决策边界可能是有锯齿状的。

 

26)【True or False】能够使用一个1-NN分类器去构建一个2-NN分类器。

 

A) TRUE B)FALSE

 

答案:A

 

解析:可以通过集成1-NN分类器来实现2-NN分类器。

 

27)在k-NN中,当你增加/减少k的值时会发生什幺?

 

A)随着K值增加,决策边界会更加平滑

 

B)随着K值减小,决策边界会更加平滑

 

C)决策边界是否平滑与K值无关

 

D)以上都不对

 

答案:A

 

解析:增加K值,决策边界会更加平滑

 

28)下面两个关于KNN的陈述,哪个是对的?

 

1.我们可以在交叉验证的帮助下选择k的最佳值。

 

2.欧几里德距离将每个特征视为同等重要。

 

A)1

 

B)2

 

C)1和2

 

D)以上都不对

 

答案:C

 

解析:两个说法都是正确的

 

29题,30题内容

 

假设你已经训练好了KNN模型,现在你想要在测试集上进行预测。在测试之前,你想要计算KNN模型用于预测测试集的时间。

 

注:计算两次观察之间的距离需要花费时间D。

 

29)如果测试数据中有N(非常大)个观测值,1-NN所需的时间是多少?

 

A ) NxD B ) NxDx2 C ) (NxD)/2 D ) 以上都不对

 

答案:A

 

解析:当N的值非常大时,计算每个观测值时间就是N*D。

 

30)1-NN,2-NN,3-NN 所用时间之间的关系是什幺?

 

A) 1-NN >2-NN >3-NN B) 1-NN < 2-NN < 3-NN C) 1-NN = 2-NN = 3-NN D) 以上都不对

 

答案:C

 

解析:每个K的训练时间都是相同的。

 

总体分布

 

下面是参加测试者的得分分布图:

 

 

在分布图中可见,超过250人进行了测试,最高分为24分。

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注