前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器学习入门 4-2 scikit-learn中的机器学习算法封装

机器学习入门 4-2 scikit-learn中的机器学习算法封装

作者头像
触摸壹缕阳光
发布2019-11-13 20:31:43
9020
发布2019-11-13 20:31:43
举报

本系列是《玩转机器学习教程》一个整理的视频笔记。本小节主要介绍使用sklearn实现KNN算法。

使用函数方式将KNN代码封装

由于一会我们需要在jupyter notebook中运行他,因此我们在需要调用的jupyter路径下创建一个KNN.py的Python文件。KNN.py内容如下所示:

在jupyter notebook中调用外部代码,需要使用%run魔法命令。

使用sklearn实现KNN

机器学习的流程如下:

我们将大量的学习资料喂给机器学习算法,这个机器学习算法就会相应的训练出一个模型,之后来了一个新的输入样例之后,将这个输入样例送给这个模型,这个模型就能预测出这个新的输入样例的预测结果。

  1. 在监督机器学习中输入的大量学习资料就是训练样本以及对应的标签;
  2. 机器学习算法得到训练模型过程我们称之为拟合,英文为fit;
  3. 输入样例输入模型,模型输出结果的过程叫做预测,英文为predict。

kNN也属于这个过程,但是kNN算法中我们并没有得到模型,事实上确实如此,这可能也是KNN算法一个重要的特性,可以说kNN是一个不需要训练过程的算法,从上面的学习也可以知道,kNN算法直接将输入样例送给了训练数据集,在训练数据集上找到离输入样例最近的K个点,然后选出来投票数最高的哪一个标签就是预测的结果。

因此对于k近邻算法来说:

  1. k近邻算法是非常特殊的,可以被认为是没有模型的算法;
  2. 为了和其他算法统一,可以认为训练数据集就是模型本身,在sklearn中实现kNN就是使用的这种设计方式,就是为了和其他算法进行统一,这样一来每一个算法都会有fit和predict的过程;

重新整理kNN的代码

前面实现了使用sklearn实现kNN算法的流程,下面重新整理我们的kNN代码,将他封装成使用sklearn实现kNN算法一样的模式。

在外部创建一个KNN2.py的Python文件,使用外部调用的方式在jupyter中调用。KNN2.py具体内容如下:

在jupyter中调用:

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档