专栏首页人工智能小白入门最简单的机器学习算法

小白入门最简单的机器学习算法

阅读本文大概需要3分钟

菜鸟独白

上一篇(菜鸟学机器学习启航篇)对机器学习做了初步的介绍,机器学习的算法有很多,小白开始学习的时候,往往会被弄晕。有没有比较简单适合小白入手的算法呢~~当然有的,今天我们从最最简单的机器学习算法kNN入手,慢慢的通过一些简单的例子来理解机器学习。

1.挑兵器

1).语言

机器学习的文章,我主要以Python3为主,当然有的时候会穿插Python2.因为我一直是Py2/3混用的,而且Py2有点恋恋不舍,毕竟用了好多年了,一般会针对不同的项目用不同的语言.

2).开发工具

Python开发的工具非常多,前面入门上手篇我介绍过一些(入门篇我写了60几篇值得收藏|菜鸟学Python【入门文章大全】),机器学习我主要用Jupyter notebook非常方便,其实做数据分析我也喜欢用它(爬虫,数据分析我写了40几篇),但是爬虫一般我会用Pycharm去爬数据。

3).主要的库

机器学习框架我以sklearn为主,当然pandas和numpy也都是必备的!有同学会问这些库怎么下载啊? 你可以用pip安装,也可以直接下载anaconda这个神器,非常方便,一下子把机器学习,数据分析要的库全部安装了,省的你一个一个下载.

2.挑个最简单的数据集

工欲善其事,必先利其器。挑完了称手兵器,准备工作都做好了,那么开始看数据集了.

一开始上手的时候,切记不能太难,欲速不达则不达。选来选去,我还是觉得最经典的数据集irsi(鸢尾花)比较合适,亮点如下:

1).数据集非常小巧

直接内置在sklearn库里面,不用我们再去网站上下载了,150行的数据,适合上手

2).数据比较干净

因为sklearn里面的数据都是经过清洗的,现实里的大部分数据都是未清洗的,其实机器学习里面有一大部分的时间是清洗数据,对特征值进行处理.

3).数据集长啥样

鸢尾花是一个非常有趣的数据集,一般一朵花有3部分组成:有花萼、花瓣和花蕊三个部分,花萼就是绿色的那部分在最外边,然后是花瓣,最里面是花蕊.

这里我通过采集花萼和花瓣的长宽,来对数据进行分类。一共有150朵花,分成了3类花:

1).Iris setosa

2).Iris versicolor

3).Iris virginica

是不是蛮漂亮的,下我们来具体看一下数据集.

4).导入数据集

导入相应的库和sklean里面的iris数据集,它是一个大的字典里面有花的数据(4个维度的特征值,标签值,标签名,表述,特征名字)

构建iris数据集,把数据转换成pandas的DataFrame看一下,我们随机抽5行看一下:

发现第一行花萼的长度是5.8/2.8,花瓣5.1/2.4,那这样的花就是virginica

3.挑算法-kNN邻近算法

1).好万事具备,我们可以开始愉快的玩耍算法吧

用玩的心态去学Python,好比你玩乐高积木,你就会乐此不疲了.今天我们用kNN算法来训练数据,一般的机器学习流程大致如下:

获取你的数据集,观察你的数据集,进行清洗和特征值选择,并划分训练和测试集的数据

选择合适的机器学习的模型

训练数据

测试测试集的数据

看准确率得分

最后模型调整参数,降维等,重复上面的步骤

2).什么是kNN算法

kNN是k-Nearest Neighbors的简称,我觉得是机器学习里面最简单的算法.它的核心思想就是,要确定测试样本属于哪一类

就寻找所有训练样本中与该测试样本“距离”最近的前K个样本,然后看这K个样本大部分属于哪一类,那么就认为这个测试样本也属于哪一类。

简单的说就是让最相似的K个样本来投票决定。

举例比如有一个身高,体重,是否正常的3个维度的数据集:

2).横坐标是身高,纵坐标体重,蓝色表示正常,红色表示偏胖或者偏瘦

如果我们有个老王他是160cm,85kg,那么计算这个点跟周围所有点的距离进行计算,看最近的距离为k=1的是谁,发现是165/90这个点,那么我们就认为老王和距离他最近的点是一类人,把他划分为胖的

如果我们有个老李他是170cm,65kg,同理计算距离为k=1的点是谁,发现是170/69这个点,那么我们就认为老李和距离他最近的点是一类人,把他划分为正常的

是不是很简单啊,我们上面假设是在距离为1,也就是k=1的情况下的分类,有同学会问,具体k应该怎么设置,如果k大一点比如3,那么有3个样本都跟他很近,而这3个样本的分类又不一致,应该如何划分呢,好下面我们开始真正探索iris这个数据集,然后回答问题.

4. 用kNN训练iris数据集

1).划分数据集

一般我们拿到一个数据集都会进行划分,挑一部分为训练集,一部分为测试集.训练集主要用来训练模型,就是给算法喂数据,让它学习数据;测试集主要是验证我们的模型

我们把150朵花,分成两大阵营:112朵的训练集和38朵的测试集

有同学说这个大写的X, 小写的y是什么鬼,为啥要这样命名;这是一个约定,一般把数据集以X打头,标签以小写的y打头。就好像pandas我们一般喜欢写成pd

2).选择模型算法,进行训练

kNN算法有分类和回归,今天我们讲的是分类的例子.还记得上面的胖瘦的分类吗,就是一个典型的分类问题.鸢尾花也有分类问题,我们来看一下到底是如何机器如何学习的:

首先我们选择knn分类器

然后设置k=1,距离为1

接着训练数据集

最后预测数据结果

哇,原理机器学习这么简单,就这几步。先不要得意,后面还有很多工作要做呢,我们接着看

3).看一下预测准确率

knn算法在我们喂了一堆112朵花的训练集数据之后,变得智能了,可以帮我们预测测试集里面38朵花的分类标签了,感觉很好,到底准确率多多高呢,靠不靠谱呢:

准确率有97.36%,哇非常高哈!厉害,厉害!

4).调整一下参数看看

刚才我们是选的k=1,也就是找距离最近的为1的分类,如果我们k变化和 调整训练和测试集的比例,准确率会怎么样:

发现s的值越小,也就是说训练的数据越多,算法的准确率越高.如果训练的数据小了,k值变大准确率也会高很多.

5).预测数据

我们挑一个准确率最高的分类器模型,就可以预测数据了,

完全正确,随着人工智能的深入发展,未来机器学习的数据越来越多,会变的非常聪明,这就是为啥AlphaGo能这么打败那么多围棋高手的原因,不过还好机器不懂情感~~

结论:

好了,今天的机器学习入门第一篇就讲到这里,knn算法是不是很简单,其实knn的效果还是蛮好的!如有什么问题,欢迎大家留言讨论。我们期待下一篇更精彩!

本文来自企鹅号 - 菜鸟学python媒体

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 机器学习(三)——k-近邻算法基础

    机器学习(三) ——k-近邻算法基础 (原创内容,转载请注明来源,谢谢) 一、概述 k近邻算法(kNN),是监督学习的一种,主要用于分类,通过测量不同特征值之间...

    企鹅号小编
  • 哪种芯片架构将成为人工智能时代的开路先锋

    【IT168 评论】如果用刀来比喻芯片,通用处理器好比一把瑞士军刀,人工智能时代好比要拿刀来切肉,瑞士军刀可以拿来用,但它并非是为切肉设计的,所以效果并非最好。...

    企鹅号小编
  • TESLA V100如何让质疑GPU的流言“失声”

    【IT168 评论】GPU在人工智能来临的前夜火了,很多人的眼光也聚焦到了英伟达身上,随之而来的,流言也就多了起来。有人认为,GPU在人工智能的应用存在一定的局...

    企鹅号小编
  • 如何处理 Python 入门难以进步的现象?

    如何处理 Python 入门难以进步的现象? 问题描述: 看视频看呀看呀看, 看完了,基础的都懂了 然后就想写点东西 可是无从下手呀,我以为基础不扎实,又去看视...

    企鹅号小编
  • IDC+BIM,或将带来数据中心新革命

    IDC+BIM,或将带来数据中心新革命。你是选择做这场革命的推动者、追随者,还是旁观者? 一、什么是BIM? 美国国家BIM标准对BIM的定义很清晰: 1.一个...

    企鹅号小编
  • 全球首个机器人公民索菲亚亮相2017双12知商节 引爆全场知识产权新高潮

    近日,一场精彩绝伦的全球知商盛会——2017双12知商节国际知商高峰论坛在广州隆重举行。来自政界、商界、产业界、学术界的大咖齐聚一堂,面对面探讨知识产权未来发展...

    企鹅号小编
  • 上海设专项资金支持人工智能创新发展

    近日,上海市经济和信息化委员会联合上海市财政局印发了《上海市人工智能创新发展专项支持实施细则》(以下简称《细则》)。根据《细则》,专项资金重点支持的方向包括拓展...

    企鹅号小编
  • 机器学习(四)——梯度下降算法解释以及求解

    机器学习(四) ——梯度下降算法解释以及求解θ (原创内容,转载请注明来源,谢谢) (本文接机器学习(二)的内容) 一、解释梯度算法 ? 梯度算法公式以及简化的...

    企鹅号小编
  • [程序设计语言]-01:引言

    1.机器语言>汇编语言>高级语言 语言是人与人的一种交流工具,就比如我现在用汉语来写这篇博文来交流探讨技术问题;程序设计语言也是如此,只是交流对象不是人而是机器...

    blackheart
  • 抢饭碗的来了,毕业干哪行都可能没前途!

    科技时代,我们更加怀念温暖邂逅的时光 全文共2553字,预计阅读时长3分钟 ? 这年头,找一份好工作简直比找对象还难,为了混口饭吃,几千万人假装在生活。但现在人...

    企鹅号小编

扫码关注云+社区

领取腾讯云代金券