前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器学习入门 4-5 超参数

机器学习入门 4-5 超参数

作者头像
触摸壹缕阳光
发布2019-11-13 14:11:52
5690
发布2019-11-13 14:11:52
举报

本系列是《玩转机器学习教程》一个整理的视频笔记。本小节主要介绍超参数相关的概念。

超参数

通过前面的小节,我们知道了kNN算法中k这个参数值,在sklearn中k这个值被封装成了k_neighbors参数。在前面我们随机的指定参数k的值,究竟k的值为多少的时候,模型才是最好的呢?这就涉及到了机器学习领域非常重要的问题~超参数问题。

我们将这些在运行机器学习算法之前需要指定的参数,称之为超参数。kNN算法中的k就是kNN算法的超参数。和超参数相对应的概念就是模型参数,模型参数就是在模型训练过程中,机器学习算法根据训练样本学习到的参数。其实可以简单理解:

  1. 超参数,需要在使用机器学习算法之前指定的数值,指定不同的数值可能为模型带来不同的泛化能力,使用机器学习算法相同,但是其中的超参数不同,也可以认为是两种不同的模型,因此可以看出超参数还是很重要的;
  2. 模型参数,模型在训练的过程中根据训练集学到的参数。

如何寻找好的超参数:

  1. 领域知识,根据不同的领域,比如自然语言处理或者计算机视觉,最好的超参数可能是不一样的,这些最好的超参数是可以通过领域知识所得到的;
  2. 经验数值,对于不同的任务有很多经验数值,很多机器学习库或者深度学习库中会封装一些默认的数值,通常这些默认数值都是一些比较好的经验数值,比如kNN在sklearn中,k值默认是5,此时的5就是经验上kNN算法比较好的数值;
  3. 实验搜索,通常来说,根据我们任务的不同,最好的超参数和经验数值是不一样的,这种情况下就只能使用实验搜索的方式了,也就是说我们尝试几种不同的超参数,比如在kNN算法中,我们制定几个不同k的值,最终选择表现最好的k的值作为实际模型所使用的的超参数的值。

实现自己寻找最好k值

下面使用实验搜索的方式寻找kNN算法中超参数k。

需要注意:

如果我们得到最好的k的值为10的话,此时我们有必要对10以上的数再次进行搜索,这是因为通常来讲不同参数决定不同准确率,他们之间呈现一个连续的变化的。如果我们寻找的最好参数值,他在边界上时候,就意味着有更好的值在边界的外面,此时我们需要稍微拓展一下搜索的范围。

比如:此时得到最好的值为10的话,我可能需要将范围指定到[8-20],在进行搜索。看看有没有可能得到更好的超参数。

KNN其他的超参数

kNN中不仅有k这一个超参数,考不考虑距离也是kNN算法的超参数。

此时我们只考虑了离绿色节点最近的三个节点,可是忽略了最近三个节点相应的距离是多少,从图中可以看出,红色节点离绿色节点距离最近,虽然两个蓝色节点距离次之,但是还是距离绿色的节点比较远,所以此时是不是应该为红色节点票赋予更高的权重,这就是kNN另外一个用法,考虑了距离的权重。

通常而言,考虑距离的权重,是将距离的导数作为权重,即距离越小,他相应的倒数越大,权重值相应的也就最大。

此外,如果考虑了距离,还有另外一个优点,比如当我们使用普通的kNN算法的话,指定k = 3的时候,如果分类的样本数也有三类的话,就很有可能产生平票的情况。比如如下图所示:

距离绿色节点最近的三个节点分属于三个类别,如果使用最开始学习到的kNN算法的话,可能会随机选择一个节点作为结果,这其实是不合理的。但是此时如果将距离考虑进来之后,就能够非常好的解决平票的问题,因为此时我们比较的是离绿色节点最近的那个节点,因此此时红色节点获胜。在sklearn中需不需要考虑距离,通过weight参数指定:

  1. "uniform",不需要考虑距离权重,默认值;
  2. “distance”,考虑距离权重。

因此我们同样可以使用上面寻找最好k值的方式来寻找,需不需要考虑距离权重这个超参数。

此时我们考虑了距离,继续谈谈什么是距离,在kNN算法中说的距离都是欧拉距离:

说到距离,还有其他的距离:

曼哈顿距离具体就是在x方向上的差值加上在y方向上的差值,图中的红蓝黄都是曼哈顿距离,他们是相等的,绿色的线对应的就是欧拉距离。对距离继续推导:

因此我们又有了新的超参数p。在sklearn中构造函数中有p参数值,在sklearn中他的默认值为2,相当于默认使用的是欧拉距离。

上面介绍的搜索方式就是网格搜索,这里还有一些问题,比如当我们使用"uniform"的时候,也就是不考虑距离权重的时候,不需要指定p的值。但是当我们指定weight为"distance"的时候,也就是考虑距离权重的时候,此时和p就会牵扯到p值的设定,因此超参数之间可能还会有相互依赖的关系。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI机器学习与深度学习算法 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档