【从零开始学机器学习第 06 篇】
摘要:介绍 kNN 模型的几个重要的超参数。
上一篇文章我们说到了 kNN 模型中的超参数。简而言之,超参数就是在模型运行前就要先确定的参数。比如指定的 k 个近邻值 k 就是一个超参数。为什么需要超参数呢,是因为使用不同的超参数就会建立不同的 kNN 模型最终也会得到不同的预测结果,我们尽可能想预测地更准确些,所以就需要尝试不同的超参数得到最好的模型。
说到超参数,还需要知道一个概念「模型参数」二者区别是:
超参数是在模型运行前确定的
模型参数是在算法运行过程自己学习的参数
kNN 是最简单的机器学习算法,模型中只有超参数没有模型参数,之后我们会陆续介绍的线性回归、逻辑回归等算法有模型参数,模型也会更加复杂。
kNN 模型的超参数有许多,可以在 sklearn 官网中找到,这里介绍几个最重要的。
https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html
第一个超参数:algorithm
algorithm 即算法,意思就是建立 kNN 模型时采用什么算法去搜索最近的 k 个点,有四个选项:
brute(暴力搜索)
kd_tree(KD树)
ball_tree(球树)
auto(默认值,自动选择上面三种速度最快的)
我们之前建立模型时没有设置这个参数,模型默认使用了 auto 方法,不过还是有必要了解一下这几种方法的区别。
![640?wx_fmt=png](https://img-blog.csdnimg.cn/img_convert/72bc72175530ffef5aa88434627af379.png)
首先,我们知道 KNN 模型的核心思想是计算大量样本点之间的距离。
第一种算法 brute (暴力搜索)。意思就是计算预测样本和全部训练集样本的距