用户名
密码
(30天内有效)
注册
注册

首页 > 案 例 >

想要预测未来?算法小司机教你搭建机器学习模型!(含代码+数据)

我要收藏
2018-03-19

阅读数:423

收藏数 0

城市数据派导读

www.udparty.com


3月的第一天,谷歌就为AI开发者和研究人员带来了超级重磅福利:机器学习速成课程上线啦谷歌的这个免费课程,不仅讲解了机器学习的基本概念和工作流程,也把当红的TensorFlow纳入到了课程里面。


1521453483698888.jpg


算法小司机开车啦!

2.jpg

算法小司机已入驻城市数据派官网

TA的达人主页

本期,作为机器学习深度爱好者的算法小司机,自然也是按捺不住激动的心情,准备认真的做一回乘客,来评测一下谷歌这位老司机的开车技术。


测评完后,我将给派友们讲讲如何搭建机器学习模型:

案例1:交通预测模型:路网速度预测

案例2:空气质量预测模型(含完整版代码+数据,可免费获得,获取方式往下拉)

看看谷歌的TensorFlow效果究竟如何?


在开始评测之前,小司机先简单介绍一下这段时间很火但是让人傻傻分不清楚的几个名词——人工智能、数据挖掘、机器学习和深度学习。


人工智能是四个词中范围最大的名词,通常指人工制造系统具有类似人一样的智能。机器学习为人工智能的一个分支,它研究的主要内容是在计算机上从数据中产生模型的算法[1]。而以卷积神经网络为代表的深度学习技术其实是实现机器学习的一种方式,一般特指深度神经网络。数据挖掘则是一种从大量数据中自动寻找有用信息的流程[2],在实际应用中,数据挖掘也会使用机器学习的技术,例如聚类分析,朴素贝叶斯等。


1521454223478233.jpg



接下来,小司机就要开始对MLCC进行认真评测了,主要分为三个方面:

(1)课程内容设置

(2)课程难易度

(3)教学资料


课程内容设置:4分


MLCC包含25节课程,主要讲解了机器学习常用的概念、技巧和神经网络的搭建。与其他在线课程的不同是,每节课程的视频教学时间大多只有五分钟左右,课程的很大一块时间是让学习者独立完成课程设置的练习题和编程题,用于掌握和巩固知识点。


此外,由于MLCC使用的是深受开发者喜爱的深度学习工具TensorFlow来进行授课,这使得这门课程也可以作为深度学习的入门课程。所以无论从工具选择还是课程内容、模式来看谷歌都是下了一番功夫,所以小司机给MLCC在课程内容设置方面4分(满分5分,分数越高,内容质量越高)。

1521454785762135.jpg


课程难易程度:4.5分


接着,小司机要评测一下MLCC的课程难易程度。MLCC采用的是难得的中文发音,更为惊喜的是中文发音居然是AI自动生成的,虽然可从语音语调上分辨出是由机器人合成,但AI翻译的质量还是非常高的。


亲切的中文发音,无疑大大降低了小伙伴们的学习成本,所以小司机要在这里给谷歌点个赞。在MLCC课程中,谷歌还注意尽量避免复杂的数学公式推导,让学习者更多的通过实际案例来理解知识点,这也让很多头痛数学的小伙伴也可以愉快的学习MLCC。


所以,如果小伙伴们已经熟练掌握了Python,那么就可以大胆的学习课程啦。所以MLCC的难易程度,小司机给它4.5分(满分5分,分数越高,越容易上手)。


如果还没有入手Python的派友们,可以先学习下这个专门为城市研究与规划设计人员定制的在线视频课程,打好基础:《使用Python进行城市研究系列课程》


1521470870102009.jpg


教学资料:5分

最后,小司机要评测的是MLCC的教学资料。谷歌为MLCC每节课都准备了知识点的梳理,这对于像小司机这类不擅长记笔记的小伙伴们来说,可以称的上是福音。


而且MLCC专门设计了一个名为术语库的模块,在这里,学习者可以快速的查到机器学习中常用的术语,当然也包括那些听起来很高大上的词汇。


鉴于谷歌考虑的这么周全,MLCC的教学资料小司机给它5分(满分5分,分数越高,教材越好)。综上,这门课程小司机给MLCC的总分数为4.5分。谷歌这老司机开的车,稳!

1521470950709346.jpg


案例1:搭建交通预测模型


由于深度学习技术在解决复杂问题上取得了巨大的成功,很多交通领域的学者和工程师也开始尝试使用此项技术解决交通问题。在谷歌学术上使用deep learning transportation这三个关键词进行搜索可以发现,2017年以来约有18800篇相关论文发表,可以说使用深度学习技术解决交通问题是当前交通领域学术研究的热点。


那么对于和小司机一样的交通工程师、规划师如何使用好MLCC呢?小司机觉得比较好的切入点是使用MLCC介绍的流程和理论尝试规范的搭建一套交通预测模型


首先,在很多交通规划都需要一套好用的预测模型。例如,在城市公共交通规划中需要对城市公共交通客运量的预测,公路网规划时需要交通运输需求的预测等等。然而由于城市交通系统的复杂性,传统方法更多依靠的是规划师知识,经验和能力的充分发挥和灵活应用[3],这无疑对规划师提出更高的要求。但是,随着城市各类数据的累积,机器学习作为一种数据驱动的技术也渐渐具备了在交通规划领域发挥威力的条件。

1521471042538488.jpg

说了这么多,接下来就跟小司机一起使用TensorFlow来进行神经网络的搭建吧。正好小司机手头有一个月某个城市路网的平均速度,数据采集间隔为5min,这次准备好好利用这些数据结合MLCC课程中的知识点,搭建神经网络模型摸索一下路网速度变化规律


选择搭建的神经网络为输入层10个节点,输出层1个节点,隐含层仅为单层100个节点的神经网络,使用的激活函数为MLCC推荐的ReLU。输入层10个节点输入的数据分别为连续10个时刻的路网平均速度,输出节点为预测的未来五分钟速度。由于这个问题为连续变量的预测,无法使用交叉熵,所以小司机将损失函数设置为均方误差。最后,为了避免过拟合和保证模型的泛化能力,小司机也将L2正则化项加入到了损失函数中来。

1521471110202574.jpg


下来,就可以对神经网络进行训练了,训练的数据为1-30日的速度数据,31号的数据用于测试模型效果。为了保证模型收敛的更稳定,小司机还将Adam算法和滑动平均模型加入到神经网络的训练中。从结果来看,损失函数的收敛还是比较快的,模型损失很快降低到1以下。

1521471147938522.png


下一步就是最激动人心的时刻——使用测试数据来测试训练后模型的精度。为了对比模型效果,小司机将之前用MATLAB做的基于马尔科夫链的速度预测模型翻了出来。从图中可以看出神经网络和马尔科夫链的预测结果都很不错,甚至在某些时间段内,神经网络的预测结果更好。并且从亲身体验来看,使用TensorFlow搭建神经网络的速度很快,模型开发比较轻松

1521471247406552.jpg


案例2:空气质量预测模型


接下来小司机要手把手教派友们搭建一种结构简单但是功能强大的神经网络,这次将使用这个神经网络预测未来的空气质量指数(AQI)


搭建模型的第一步就是明确输入输出,输入小司机使用的是当前各个污染物数值和前一时刻的AQI,而输出为预测的下一时刻AQI。使用的训练数据为从城市数据派官网的数据栏目中下载的2018年2月全国除北京外的空气质量数据,测试数据就用2018年2月1日的北京数据。明确了这些之后,就让我们一起coding吧!


1521471358213456.jpg


首先,导入数据到内存,根据需求将数据分为训练集和测试集两部分。接着就是整个流程中最关键的一步了——神经网络搭建


和上一个神经网络一样,小司机搭建的这个神经网络分为三层,第一层为输入层,由于输入参数为16个,所以第一层的节点数为16。隐含层的输入节点为300个,输入层通过乘以矩阵w1得到隐含层的各个节点的值。输出层为1个节点也就是预测的AQI,隐含层数值通过乘以矩阵w2获得输出层结果。模型训练的过程就是不断修改w1和w2的数值,来减少训练得到的预测AQI与真实的下一时刻AQI均方误差的过程。

1521471480347511.jpg

接下来是网络的训练,也就是在TensorFlow中使用会话(Session)来执行定义好的运算。在这个过程中要循环将训练数据送入到模型中,以训练w1和w2这两个矩阵。

1521471559563358.jpg


当训练完成后,就可以来检验一下训练结果啦。从结果来,预测数据基本接近真实数据,但是很明显其表现并没有第一个网络好。这是因为简单神经网络没有激活函数,它本质上还是一个线性模型,表达能力稍差。


那派友可能就纳闷了,为什么小司机要介绍一个这么逊的模型给大家?事实上虽然这个模型表现较差,我还是强烈推荐大家要自己练习搭建这个简单的神经网络。因为从小司机的体验来看,把这个简单神经网络调试通,能够大大加深自己对神经网络和TensorFlow的理解,在后面学习复杂一点的神经网络甚至深度神经网络都是事半功倍



温馨提醒:案例2的完整版代码+数据可免费获得,快来动手搭建你的第一个机器学习模型吧!关注城市数据派微信号udparty,到微信号后台回复“  算法小司机 ” 5个字,即可得知获取方式。注意,下载代码运行时,要把数据的输入路径改成本机的输入路径,否则会报错。使用过程中遇到了其他问题?赶紧请到本文末写留言,小司机为你解答!

1521471678581256.jpg

 小司机觉得各位小伙伴在实际工作中不妨尝试使用历史和当前的各类城市数据来做个预测模型,在检验自己学习成果的同时,说不定有一些意想不到的收获。熟练掌握了这么高大上的工具,说不定从此走上升职加薪,成为CEO的高速路呢,想想都兴奋不已!综上,小司机觉得MLCC是一门十分不错的课程,强烈推荐大家抓紧时间上车!


参考资料:

[1]   周志华. 机器学习 : = Machine learning [M]. 清华大学出版社, 2016.

[2]   TAN P N, STEINBACH M, KUMAR V. Introductionto Data Mining, (First Edition) [M]. Addison-Wesley Longman Publishing Co.,Inc., 2005.

[3]   姜桂艳, 丁同强. 交通工程学 [M]. 国防工业出版社,2007.


本站声明

本文仅代表作者观点,不代表城市数据派立场;
本文系作者授权城市数据派发表,未经许可,不得转载;
本网站上的所有内容均为虚拟服务,一经购买成功概不退款,请您理解。

分享:
点赞1
  • 联系城市数据派
    info@udparty.com
  • 顶部