前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >视频 | 10行代码,用大脑重量预测体重!硅谷AI网红亲身示范

视频 | 10行代码,用大脑重量预测体重!硅谷AI网红亲身示范

作者头像
AI研习社
发布2018-03-28 16:20:11
1.1K0
发布2018-03-28 16:20:11
举报
文章被收录于专栏:AI研习社AI研习社
Siraj Raval 作为深度学习领域的自媒体人在欧美可以说是无人不知、无人不晓。

凭借在 Youtube 上的指导视频,Siraj Raval 在全世界吸粉无数,堪称是机器学习界的网红。说他是全球范围内影响力最大的 ML 自媒体人,怕也无异议。

因此,雷锋网 AI 研习社联系到了 Siraj 本人,并获得授权将他最精华的 Youtube 视频进行字幕汉化,免费推送给大家。我们将不定期更新,敬请关注!

雷锋字幕组为大家最新译制了Siraj深度学习系列,从机器学习和神经网络架构类型到数据可视化、小样本学习等从基础到应用的技巧,争取带领希望掌握神经网络的神奇魔力和想成为深度学习工程师的大家伙早日入坑!哦不,走向巅峰!!

今天主要讲的内容是线性回归。

视频内容

(建议在 Wi-Fi 环境下观看视频,土豪随意~)

为了方便流量不足的小伙伴们在路上看,我们特意整理出了文字版和动图~

通常而言,编程是通过定义每一个步骤来使一个程序完成预期结果,但是机器学习将这一过程反转。机器学习让我们先定义结果,然后程序去学习步骤以达成目标。

比如,如果想做一个识别车牌的程序,不需要写代码去识别车牌的数百个特征(比如某些字母的形状和颜色),我们只需要给一些车牌的样例,让程序去学习识别车牌所需的步骤。或者想做一个永不言败的超级马里奥,不需要为每一种可能的情景写代码(比如当看到一个乌龟向跑来时要起跳)我们只需要定下目标——活着到达终点,让机器学习整个步骤从而实现目标。

但有时我们甚至不知道这个步骤是什么。如果一家银行怀疑有欺诈行为发生,但是不知道如何查探。这时就可以利用所有用户活动的日志,找到有异常的用户,机器会学习来检测异常。

机器学习在互联网早已无处不在,主流服务都在使用它。事实上 当在你看视频时,视频网站就在用它来预测你可能会喜欢的视频,而且它的预测能力会随时间不断增强。

所有的互联网设备,从冰箱、汽车到个人助理,都将不断学习和适应我们的需求。你知道一万小时定律吗?我们只要将那些训练时间交给机器,它会立即赋予我们超能力,任何人都可以谱写交响乐,任何人都能导演电影。

机器学习这个领域目前进步地很快,研究者们都基于相互的成果进行深入研究,已经有了很多机器学习模型,其中之一被称为神经网络。当我们不只是使用1或2层的神经网络,而是多层神经网络来做预测时,我们称之为深度学习。它是机器学习的一类算法,在处理许多不同的任务上几乎胜过所有其他模型。

下一讲将深入介绍深度学习,但这个视频重点在机器学习。

我们通常将机器学习分为三类

  1. 监督学习(supervised learning)

给模型一个有标签的数据集,比如汽车图集,它会得到何为正确或者错误的反馈,只需要学习标签和数据之间的映射关系,就能解决一些给定的任务,比如根据图中车的类型来分类,这相对来说比较直接,我们已经取得了不错的成果。

  1. 无监督学习(unsupervised learning)

给一个模型一组没有标签的数据,它得不到正确性的反馈,需要自学数据集的结构来解决一些特定的任务,实现的难度变大但更有效,因为不是每个人都有一个完美标签的数据集,大多数据是没有标签的,数据混乱且复杂。

  1. 强化学习(reinforcement learning)

它不会立即给模型反馈,除非它到达目标。如果我们想创建一个强化学习的机器人,可以学棋击败人类,它只会在赢得了比赛的情况下得到反馈。而在监督学习中每一步都会得到反馈。在无监督学习中,即使赢了也无法得到反馈。不同于其它两种学习方式,强化学习通过试错与环境产生交互连接。

用一个不同动物的大脑重量测量值的数据集,想要在给大脑重量出情况下预测其体重。由于我们的数据有标签,这就属于监督学习。这个任务用到的机器学习,我们将其称为回归(regression),我们写了10行的python代码来实现,步骤如下:

先导入三个库:

  • pandas 用来读取数据集
  • scikit-learn 这是此例中我们使用的机器学习库
  • matplotlib 将实现模型和数据的可视化

现在我们已经导入了所需的库,可以用pandas来读取数据。我们将使用read_fwf函数来读取动物数据集,将固定格式的数据转换为pandas的DataFram对象。这是一个二维数据,数据集包含多种动物的平均大脑重量和体重。

当数据作为DataFrame的变量,很容易分析并将测量值读取为两个不同变量。将大脑重量测量值存在x_values变量中,体重测量值存在y_values变量中。现在当我们要绘制这组数据的二维图表:

我们的目标是给定一个新的动物的体重,就能够预测它的大脑重量,该怎么做呢?还好有线性回归(Linear Regression)。

用sklearn的线性模型对象来初始化线性回归参数,并将其参数储存在body_reg变量中。然后我们用成对的x、y值来训练这个模型,现在我们有最佳拟合的线,我们可以在散点图上画出我们的x、y值,然后在每一个x值下预测对应的y值,画出一条与这些点相交的直线,然后我们可以用show()来显示。

在终端编译这段代码,我们所有的数据点会出现在散点图中,x轴表示脑重量, y轴表示体重,回归线对大部分的数据都比较拟合。看起来在脑重量和体重之间有非常强的相关性。当我们移动这条线时,还可以预测任何给定的脑重量的对应体重。

简单来说,传统编程是定义每一步来达到目标,而机器学习是定义目标,我们的程序将会学习步骤以达目标。线性回归模型显示了自变量和因变量的关系,得出最佳拟合的线,然后就可以用拟合线来做预测。

完整代码和数据集请参考 Github 链接(点击文末阅读原文进入)。

--------------------------------------------

Siraj Raval 何许人也?

Siraj Raval 是 YouTube 极客网红,曾任职于 Twilio 和 Meetup,客户包括 Elon Mask 和 Google,教大家如何使用机器学习开发聊天机器人、无人驾驶车、AI 艺术家等视频点击量累计数百万。

Siraj Raval 为什么这么火?

首先,当然是这位哥伦比亚大学高材生活儿好技术好,用自己特有的方式三言两语就能抛出一个原本晦涩的 ML、DL 概念,让听众细细咀嚼。再者,这家伙幽默逗比、口才便给。兴之所至常手舞足蹈,瞳仁奇光掩映,口吐智慧莲华。深度学习讲师不少,但这么风趣可亲的却不多。

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

本文分享自 AI研习社 微信公众号,前往查看

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

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

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