开发者社区> 小旋风柴进> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

实时股票预测的开源参考结构

简介:
+关注继续查看

0?wx_fmt=jpeg

有这样一个传说,将人工智能和机器学习算法用于服务器农场后,你就可以搬家到夏威夷,在让机器交易的同时你终日躺在沙滩上享受生活。但是,问题在于交易市场是不断变化的:经济力量,新产品,竞争,世界事件,法规,甚至推特都是因素。虽然没有免费的午餐,在开放源码机器学习算法和数据分析平台的帮助下,公司仍然可以得到一个“更好,更健康,更便宜的午餐”。在股票市场中,查看历史股票价格并尝试用不同的模型来预测未来是一种常见的做法。

虽然这篇文章不能提供股票分析的细节,但它提出了一种用于解决大规模实时数据分析问题的方法,在一个可高度扩展和延伸性的参考架构下使用开放源代码工具。下面的架构专注于金融交易,但也适用于几乎任何一个行业的实时使用需求。关于这篇文章所讨论的构架的更多信息也可在网上通过Linux基金会,SlideShare,YouTube,和Pivotal Open Source Hub阅读,同时这个架构的组件也可以通过这些网站下载。

架构:股票预测与机器学习

概括而言,股票预测和机器学习的架构(如下图所示)支持一个由预测模型推动的优化过程,并有三个基本组成部分。首先是输入,实时交易数据必须被捕获和存储,变为历史数据。其次,系统必须能够从数据的历史趋势中学习,并通过识别规律和概率来做出决定。第三,系统需要把新的交易数据与历史数据的规律和概率进行实时对比。然后预测出结果并决定采取何种行动。

0?wx_fmt=png

上图是简化版,该类型的结构在系统范围增加的情况下还有几个基本因素要考虑。其中重要的是,数据量和系统集成。许多不同来源和类型的数据被用来预测结果,以及各种各样的汇数据处理。在一个20个数据源和20个处理汇的环境里,实时功能仍需要非常低延迟的操作。这体现了扩展问题的两个面。首先,数据处理应用程序要解决横向扩展就需要增加更多的节点,并保持非常快速的实时响应。其次,久而久之系统会存储更多的数据。除了历史数据集的增加,不同的分析工作也要同时运行来提高模型的预测性。

在系统架构中使用开源组件

如果把每一个高层次组件扩展到更具体的细节,开源产品可以运用到整个架构的各个功能部分。这些包括SpringXD (现在叫Spring Cloud Data Flow),Geode (孵化中),Spark MLlib, ApacheHAWQ,和Apache Hadoop™。

0?wx_fmt=jpeg


数据流和数据通道大致可以分为六个步骤,如上图所示,具体的讲解会在下面展示。更重要的是,每个组件都具备松散耦合和横向扩展性的特征。

SpingXD读取和处理来自雅虎金融网络服务器集群的API提供的实时数据。SpringXD极大简化了数据流的业务流程,并为系统集成提供内置连接器,SpringXD是基于Java语言的产品,可以处理各种转换。数据通过SpringXD后,被储存到一个具有快速,稳定,灵活,和线性扩展的系统内存里面,这个系统叫Apache Geode(孵化中),系统还可以提供事件的数据分发处理。

通过使用Apache Geode提供的新鲜数据,Spark MLib的应用程序建立和训练一个用于对比新数据与历史数据之间规律的模型。其它工具也同样支持这些模型,例如ApacheMADlib 或者 R。

机器学习模型得到的结果会被推送到其它应用进行处理,同时结果会在Apache Geode上更新,并进行实时预测和决策。

随着数据越来越多,旧的数据从最初的Apache Geode 被转移到Apache HAWQ, 最后被储存在Apache Hadoop中。ApacheHAWQ 支持基于拍字节的SQL查询,同时也允许数据科学家迭代并优化他们的模型。

另外一个处理程序被触发了,使用已收集的历史数据去有规律地重复训练和更新机器学习模型。在这程序里面,当历史数据发生改变或是有新的模型出现时,它会关闭数据循环,创建持续更新,并进行优化。

一个可在笔记本电脑上运行的简化架构

为了能让系统在一个普通笔记本电脑上运行,其架构需要被简化。Linux Foundation 在匈牙利的布达佩斯举行的Apache Big Data 2015 展会上展示了这一方法。简单来讲,这个方法是把长期数据存储组件从Apache HAWQ 和 Apache Hadoop 上移除。

0?wx_fmt=jpeg
在这个解决方案中,每个组件的功能都有一个具体定义并且会根据需求在本地扩展或者在云端拓展。为了达到方便调度,维护和支持的目的,开源组件可以与Pivotal Clould Foundry 进行连接用于处理程序运行,PivotalGemFire 取代了Apache Geode 或者PivotalBig Data Suite 里的其它组件,用于处理大型的历史数据集。

GitHub支持这一架构,另外一个例子是JavaFX。雅虎金融的新数据被SpringXD采集后推送到Apache Geode的服务器上,然后Apache Geode把这些数据推送到JavaFX,JavaFX把这些实时数据更新并将这些数据以可视化形式呈现给用户。另外还有一个叫股票信息模拟器的应用,它能够在由于没有网络连接而无法收集信息的情况下使用,或者是为了二次开发而使用。

0?wx_fmt=jpeg

根据上图所示,数据正在被实时收集然后生成相应的指数,比如最后收盘价,平均指数和预测平均指数。

更多相关学习

这个系统的源码和安装教程可以在Pivotal Open Source Hub上找到。下载的文件中也包括一个Vagrant box的虚拟环境,当中包含了所有需要的组件。

从Linux Foundation, Slideshare, or YouTube获得更多的信息

访问与Apache Geode website, Pivotal GemFire website相关话题的文章

查看Apache Geode website, Pivotal GemFire website网站

阅读Apache MADlib详情

Editor’s Note: ©2015 Pivotal Software, Inc. All rights reserved.Pivotal, Pivotal Greenplum, Pivotal GemFire and Pivotal Cloud Foundry aretrademarks and/or registered trademarks of Pivotal Software, Inc. in the UnitedStates and/or other countries. Apache, Apache Hadoop, Hadoop, Apache Geode,Apache MADlib, Apache HAWQ, and ApacheSpark are either registered trademarks or trademarks of the Apache SoftwareFoundation in the United States and/or other countries.

编者注记:相关版权©2015 Pivotal Software, Inc. All rights reserved.Pivotal, Pivotal Greenplum, Pivotal GemFire and Pivotal Cloud Foundry aretrademarks and/or registered trademarks of Pivotal Software, Inc. in the UnitedStates and/or other countries. Apache, Apache Hadoop, Hadoop, Apache Geode,Apache MADlib, Apache HAWQ, and ApacheSpark are either registered trademarks or trademarks of the Apache SoftwareFoundation in the United States and/or other countries.


原文发布时间为:2016-01-06

本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“BigDataDigest”微信公众号

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
python数据分析和可视化——一篇文章足以(未完成)-3
python数据分析和可视化——一篇文章足以(未完成)
0 0
python数据分析和可视化——一篇文章足以(未完成)-2
python数据分析和可视化——一篇文章足以(未完成)
0 0
【数据挖掘】使用移动平均预测道琼斯、纳斯达克、标准普尔指数——Python中的基本数据操作和可视化
本文将使用简单移动平均预测道琼斯、纳斯达克、标准普尔指数。 作为技术分析中⼀种分析时间序列的常⽤⼯具,常被应⽤于股票价格序列。移动平均可过滤⾼频噪声,反映出中⻓期低频趋势,辅助投资者做出投资判断。
0 0
【数据挖掘】用Excel挖掘股权关系并按照年份统计不同类型的亲缘关系在上市公司中的分布和趋势【动态可视化工具】
推荐一个在线制作动图网站 Flourish(https://app.flourish.studio) 无需编程基础就可以做出漂亮的动态图表🎉🎉🎉
0 0
淘宝广告数据分析实战!(附代码和100W数据源)(中)
在广告展示数一定的条件下,点击率的高低就是决定一个广告能否被更多人看到的因素。本文主要针对“点击率”这一因素进行分析,与大家分享。
0 0
淘宝广告数据分析实战!(附代码和100W数据源)(下)
在广告展示数一定的条件下,点击率的高低就是决定一个广告能否被更多人看到的因素。本文主要针对“点击率”这一因素进行分析,与大家分享。
0 0
淘宝广告数据分析实战!(附代码和100W数据源)(上)
在广告展示数一定的条件下,点击率的高低就是决定一个广告能否被更多人看到的因素。本文主要针对“点击率”这一因素进行分析,与大家分享。
0 0
《构建实时机器学习系统》一3.3 利用 Pandas 分析实时股票报价数据
本节书摘来自华章出版社《构建实时机器学习系统》一 书中的第3章,第3.3节,作者:彭河森 汪涵,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1801 0
《异构信息网络挖掘: 原理和方法》—— 第2章 基于排名的聚类 2.1 概述
对于基于链接的异构信息网络聚类,我们需要探索涉及异构数据类型的链接。在这章中,我们学习如何使用不同类型的链接来计算不同类型对象的排名,展示排名和聚类如何相互提高,并最终获得合理的排名和聚类结果。我们将学习异构信息网络的两个特例:二元类型网络和星型网络。
1408 0
文章
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
百度大规模时序指标自动异常检测实战
立即下载
BigGraph:大规模在线图分析平台
立即下载
大规模稀疏化模型技术介绍及实践
立即下载