五分钟入门深度学习——如何预测机票价格

关注「实验楼」,每天分享一个项目教程   

本指南适用于所有人,因此不会涉及高等数学。

正文共:2084 字 

预计阅读时间:6 分钟

背景

人工智能(AI)与机器学习(ML)

人工智能是人类智慧在计算机中的体现。

人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。

机器学习是指机器使用大型数据集而不是硬编码规则进行学习的能力。

机器学习允许电脑自己学习。 这种类型的学习利用了现代计算机的处理能力,可以轻松处理大型数据集。

监督学习与无监督学习

监督学习是指利用一组已知类别的样本调整分类器的参数,使其达到所要求性能的过程。

使用监督学习来训练AI时,你需要提供一个输入并告诉它预期的输出。

如果AI产生的输出错误,它将重新调整它的计算。 这个过程是在数据集上迭代完成的,直到AI没有更多的错误。

监督学习的一个例子是天气预报AI。它学习使用历史数据预测天气,训练数据包括输入(压力,湿度,风速)和输出(温度)。

无监督学习是指使用没有指定结构的数据集进行机器学习任务。

当你使用无监督学习训练AI时,可以让AI对数据进行逻辑分类。

无监督学习的一个例子是电子商务网站的行为预测AI。 它不会通过使用输入和输出的标记数据集来学习。相反,它会创建自己的输入数据分类,告诉你哪种用户最有可能购买某类产品。

深度学习工作原理

深度学习是一种机器学习方法。它允许我们训练AI来预测输出。

案例讲解:机票价格预测

使用以下输入来预测价格(为简单起见,这里不包括回程车票):

  • 出发机场

  • 目的机场

  • 出发日期

  • 航空公司

神经网络

像动物一样,预估者AI的大脑有神经元,他们用圆圈表示。这些神经元是相互连接的。

五分钟入门深度学习——如何预测机票价格_第1张图片图片来源:CS231n

神经元被分为三种不同类型的层:

  • 输入层

  • 隐藏层

  • 输出层

输入层接收输入数据。 在所举例子中,我们在输入层有四个神经元:起飞机场,目的机场,出发日期和航空公司。 输入层将输入传递给第一个隐藏层。

隐藏层对我们的输入进行数学计算。 创建神经网络的挑战之一是确定隐藏层的数量,以及每层的神经元数量。

深度学习中的深度指具有多个隐藏层。

输出层返回输出数据。 在案例中,它可以提供价格预测。

五分钟入门深度学习——如何预测机票价格_第2张图片

那么它如何计算价格预测呢?

这就是深度学习开始发挥的地方。

神经元之间的每个连接都与权重相关联。 这个权重决定了输入值的重要性。 初始权重是随机设置的。

在预测机票价格时,出发日期是较重要的因素之一。 因此,出发日期神经元连接将占很大的权重。

五分钟入门深度学习——如何预测机票价格_第3张图片图片来源;CodeProject

每个神经元都有一个激活函数。 没有数学推理,这些函数就很难理解。

简而言之,其目的之一是“标准化”神经元的输出。

一旦一组输入数据通过神经网络的所有层,它就会通过输出层返回输出数据。

训练神经网络

训练AI是深度学习中最难的部分。

为什么?

  • 你需要一个大型数据集

  • 你需要大量的计算能力

对于机票价格的估算,首先需要找到机票价格的历史数据。 由于可能的机场和出发日期组合数量很大,所以我们需要大量票价清单。

为了训练AI,我们需要从数据集中向他它提供输入,并将它的输出与数据集的输出进行比较。 由于人工智能尚未经过训练,其输出结果会是错误的。

浏览整个数据集后就可以创建一个函数,向我们展示AI的输出与真实输出的差异。 这个功能被称为成本函数

理想情况下的成本函数为零,也就是AI输出与数据集输出相同。

如何降低成本函数?

改变神经元之间的权重。可以随机更改,直到成本函数指很低,但这不是非常有效的办法。

还可以使用称为梯度下降的技术。梯度下降可以让我们找到函数的最小值。

它通过在每次数据集迭代之后以小增量改变权重来工作。 通过计算一定权重下的成本函数的导数(或梯度),可以看到最小值在哪个方向上。

五分钟入门深度学习——如何预测机票价格_第4张图片图片来源:Sebastian Raschka

为了最小化成本函数,需要多次遍历数据集——这就是为什么你需要大量的计算能力。

使用梯度下降更新权重是自动完成的。 这就是深度学习的神奇所在!

机票价格估算器AI训练完成后,就可以用它来预测未来的价格。

综上所述

  • 深度学习使用神经网络模仿动物智能。

  • 神经网络中有三种类型的神经元层:输入层,隐藏层和输出层。

  • 神经元之间的连接与权重相关,规定输入值的重要性。

  • 神经元对数据应用激活函数以“标准化”从神经元的输出。

  • 为了训练神经网络,还需要一个大型数据集。

  • 迭代数据集并与输出比较后将产生一个成本函数,表明AI离实际输出相差多少。

  • 在数据集的每次迭代之后,使用梯度下降调整神经元之间的权重来降低成本函数。


640?wx_fmt=gif

只看文档不过瘾?这里有几个类似的项目,欢迎登陆实验楼亲手把他们实现!

对英国房屋价格建模并预测

五分钟入门深度学习——如何预测机票价格_第5张图片

本实验将通过一些特定应用来介绍一些常用建模技术。我们考虑如何在 R 中存储和处理时间序列。接着,我们处理线性时间序列分析,并展现如何将它用于建模和预测房屋价格。其次,我们通过考虑长期趋势,最后使用协整的概念来改进基本的最小方差对冲比。

链接:https://www.shiyanlou.com/courses/882


使用 Spark 和 D3.js 分析航班大数据 

五分钟入门深度学习——如何预测机票价格_第6张图片

本课程将通过一个航班数据分析实例来学习 Spark 综合技巧和数据可视化技术。在航班数据分析实验中,可以学习到如何使用 OpenRefine 进行简单的数据清洗,以及如何通过 Spark 提供的 DataFrame、 SQL 和机器学习框架等工具,对航班起降的记录数据进行分析,尝试找出造成航班延误的原因,以及对航班延误情况进行预测。在数据可视化实验中,可以学习到 D3.js 中的数据读取、插值、元素选取、属性设置等 API 的用法。

链接:https://www.shiyanlou.com/courses/610


NBA常规赛结果预测:利用Python进行比赛数据分析

五分钟入门深度学习——如何预测机票价格_第7张图片

本课程将利用NBA在2015~2016年的比赛统计数据进行回归模型建立,最终在今年2016~2017的常规赛中预测每场比赛的输赢情况。

链接:https://www.shiyanlou.com/courses/782




640?

作者:Radu Raicea
翻译:sugarain
原文:medium.freecodecamp.org

推荐阅读:

  • 利用Python预测NBA比赛结果

  • 逃课、辍学,他自学编程,创办的公司卖了480亿

  • 我们整理了20个Python项目,送给正在求职的你

  • 运维 从月薪 5K 和 50K ,中间都经历了什么?


640?wx_fmt=1


你可能感兴趣的:(五分钟入门深度学习——如何预测机票价格)