Uploaded by upper S

tay2018 zh

advertisement
订阅DeepL Pro以翻译大型文件。
欲了解更多信息,请访问www.DeepL.com/pro。
2018年IEEE大数据国际会议(大数据)。
基于云计算的智能需求预测的数据收集和处理
系统
Colin K. L. Tay
新加坡管理大学信息系统学院
新加坡colintay.2017@mais.smu.e
du.sg
摘要-需求预测一直是一个具有挑战性的问题,特别是对于诸如电子
产品和时尚产品这样的短生命周期的产品。此外,在过去或历
史数据有限的情况下,以及需要快速周转的预测,产生及时和
准确的需求预测是非常具有挑战性的。在这项研究中,我们描
述了一个基于云的数据收集和处理系统,用于智能需求预测。
关键词-需求预测,网络爬行,基于云的数据收集,数据工程
I. 简介和数据集
今天的现代零售环境是高度动态和快节奏的。书籍、
时尚品和电子产品是产品周期较短的例子[1,
2]。由于建立预测模型所依据的历史需求和销售数据有限
,对这类产品的需求预测可能很困难。此外,准确的需求
预测不仅需要过去的趋势,还需要有关外部因素的数据:
a)已知在过去影响了需求,如天气、流行病、事件和其
他经济指标;b)预测会影响未来需求(如新现象)。在
这两种情况下,当务之急是能够动态和有效地抓取这些信
息,以便零售商以及物流和供应链解决方案提供商制定其
业务运营战略。
沈京津 信息系统学院
新加坡管理大学 新加坡
kjshim@smu.edu.sg
产品,和个人。有可能帮助改善需求预测的外部数据类型
因领域不同而不同。例如,在过去,某些报告的
大肠杆菌爆发或其他流行病对消费者对某些食品或保健品
的需求产生了重大影响。目前的架构是高度模块化的-通过指定新的数据源、引用新的爬行脚本和指定爬行规则
,新的爬行程序可以很容易地添加到系统中。
我们的系统利用了Celery分布式任务队列架构[3]。调
度器允许按计划进行数据抓取。抓取的数据存储在Elastics
earch[5]中,它可以被业务用户通过用户界面有效地进行
查询。目前的系统原型利用了Cloudera的Hadoop分布。我
们的系统架构并不限制用户使用其他外部工具与抓取的数
据对接,进行信息查询和进一步的数据分析。
在这项研究中,我们提出并描述了一个用于智能需求
预测的基于云的数据收集和处理系统。所提议的系统允许
高效和动态的数据抓取和信息查询。该系统抓取和刮取外
部数据,补充历史需求和销售数据,以实现更准确的需求
预测。该系统的架构允许预定的工作执行,以及按需的数
据抓取。
II.
系统结构
用Python
3.6编写的数据爬虫可以抓取天气信息、全球已知的公共
假期、新闻文章(来自预先定义的新闻网站列表)和Twitt
er推文。后两者可以被配置为抓取与某些行业、部门、品
牌有关的新闻文章和对话。
xxx-x-xxxx-xxxx-x/xx/$xx.00 ©20xx I E E
图1.拟议的基于云的数据收集和处理系统的架构。
978-1-5386-5035-6/18/$31.00 ©2018 IEE
5451
A. 网络爬虫模块
为了适应未来不同类型的数据爬虫,我们的系统被设计成
可以处理同时运行的异质爬虫群。我们通过非锁定线程和
非依赖性架构来实现这一点。我们使用Celery分布式任务
队列[3]。目前在我们系统中的四个数据爬虫如表I所示。
表一.
数据类型
来源
1
收集的
指标
其他指标
强制性字段
数据类型
来源
2
Wunderground.com
日平均温度,最低温度,最高温度,天气状况(雨
天。
阳光明媚,等等)。
从查询日期开始的7天天气预报
公共假期
TimeandDate.com
数据类型
新闻文章
度量衡
收集到的
其他指标
无
所关注的国家和年份
一个预定义的URL列表
一篇符合关键词的整篇文章
图3.公共假日数据爬虫
无
新闻文章数据爬虫利用了Python的Newspaper包。这个
爬虫需要一个URL和一组由用户在图4所示的用户界面上
指定的关键词,它在指定的领域内进行递归搜索。由于许
多新闻网站和博客都有外部网站的链接,如广告,我们加
入了一个保障机制,即爬虫只检索和搜索属于与原始搜索
域相同的域的链接。当爬虫提取相关网页时,它将搜索结
果存储在Elasticsearch中。
强制性字段
用户定义的URL、关键词、深度和在域内探索的选
项
数据类型
社会媒体(Twitter)
收集的
指标
额外的
度量衡
强制性字段
另一个爬虫,公共假日数据爬虫,提取全球公共假日
。图3说明了用户可以为爬虫指定的各种参数。注意到公
共假期通常是每年提前公布,我们的爬虫按年份提取公共
假期信息,因为每年返回的记录数量相对较少。
国家,机场国际民航组织代码,开始和结束日期
日期, 星期, 假日名称, 假日类型, 国家
来源
4
天气
收集的
指标
额外的
度量衡
强制性字段
来源
3
数据爬虫和数据源
图2显示了一个基本模式的机场天气数据爬虫的网络用户
界面。用户可以从预先定义的机场列表中选择一个特定的
机场,天气数据爬虫将运行、提取并显示所选机场周围城
市的天气信息。该模块使用Python的BeautifulSoup包,从
公共网站上检索历史和预测的天气信息。用户可以进一步
指定开始和结束日期,爬虫将提取并显示指定日期周围的
天气信息。
推特
鸣叫ID, 用户, 创建日期, 鸣叫文本, 转发计数,
关注者_计数
无
Twitter的用户名和关键词
所有的数据爬虫都可以使用基本模式和高级模式进行
配置。基本模式允许用户按需安排工作-既可以是一次性任务,也可以是每日递归工作。
图4.公共假日数据爬虫
图2.机场的天气数据爬行器
5452
最后,我们的社会媒体数据爬虫通过Twitter的Rest
API和Streaming
API从Twitter检索相关推文。用户可以在用户界面上指定
与用户的行业或部门相关的趋势性关键词或标签。然后,
爬虫将检索最近提到这些关键词或标签的推文。与其他爬
虫类似,社交媒体爬虫可以被安排为定期或按需运行。
Elasticsearch与标准安装在同一网络中的各种计算机上,
具有相同的集群名称。接下来,Elasticsearch是无模式的
,这意味着它不需要事先定义域(如索引、类型、字段、
字段类型)。最后,Elasticsearch的聚合功能可以从数据
集中提取有趣的分析性见解(即术语、最小值、最大值、
平均数、总和、cardinality、直方图),它将有助于探索
性数据分析,与需求预测相一致。
B. 调度器和任务分配器
D. 存储和Hadoop
我们系统的调度功能允许用户提前配置爬虫的执行时
间表。我们探索了许多选择,从操作系统命令如'cron'或'at
'到各种开发库如Quartz、APScheduler和Celery。我们的系
统同时使用了APScheduler和Celery库。APScheduler能够
处理简单和复杂的时间表,而Celery可以作为一个任务分
配器,将任务分配给爬虫。
我们的系统支持多种存储方式。目前的原型容纳了几
个MySQL和Microsoft
SQL
Server数据库实例。然而,用户将来有可能使用其他数据
库,因为系统架构利用了对象关系映射(ORM)架构,用户可以切换到其他数据库,
如Postgres、GreenPlum、Vertica和Impala,而无需对当前
的系统架构进行重大改变。
我们探索了三种流行的Hadoop商业发行版(即Clouder
a、HortonWorks和MapR),并根据我们组织中其他几个
希望利用基于云的平台进行大数据分析的项目选择了Clou
dera。所有的系统模块都被部署到Cloudera
Hadoop平台上并进行了相应的配置。
图5.EDA, APScheduler, Celery和Crawler之间的工作流程
如图5所示,APScheduler是由一个数据库支持的,用
来保存用户定义的日程信息。因此,每次只能有一个APS
cheduler的实例在运行,以确保数据的一致性。我们的系
统还在EDA和APScheduler之间实现了异步任务,以防止
在并发用户数量增加时出现线程锁定。当一个任务要被安
排时,APScheduler将触发一个消息给Celery,在那里一个
爬虫集群将拾取任务来运行,并在之后分别更新任务状态
。
我们的系统实现了模块间的多种异步通信。与RQ或Ta
skTiger等其他模块相比,Celery是最流行和成熟的模块之
一。我们使用Celery是因为它可以与我们系统中的其他模
块互操作,从而最大限度地减少系统的依赖性,最重要的
是,Celery可以协调和分配几个机器上的任务。
C. 搜索引擎
鉴于有大量的文本内容需要存储,在这些巨大的数据
集中用传统的SQL查询进行有效的搜索是具有挑战性的。
因此,我们探索了诸如Apache
Solr[4]和Elasticsearch[5]等替代技术来克服传统数据库的
限制。经过进一步调查,我们的系统使用Elasticsearch,
因为它与其他模块一起易于部署。我们选择Elasticsearch
而不是Solr,因为后者需要一个额外的组件(即Zookeeper
)来操作,而Elasticsearch只需要标准安装程序。此外,
集群也可以通过以下方式轻松实现
5453
E. 智能需求预测
当涉及到预测未来需求时,历史数据可能被证明是不
够的,特别是在市场动态波动的情况下。本研究的主要目
的是提供一个基于云的一站式门户,用于调查影响需求波
动的外部因素。我们基于云的数据收集和处理系统可以抓
取、刮取和存储外部数据,这些数据可以补充历史需求和
销售数据,以实现更准确的未来需求预测。例如,人们发
现,一系列恶劣的天气与某一特定地理区域的计划中的道
路建设相结合,与特定汽车零部件需求的突然激增呈正相
关。
III.
未来方向
我们正在继续增加可能影响全球市场的更多数据来源
。我们计划收集更多与自然灾害、事故、犯罪等有关的数
据。我们计划继续寻找在抓取的数据中发现的外部因素与
多个行业和部门的过去和未来需求之间的相关性。
参考文献
[1]
Maaß,
Dennis
&
Spruit,
Marco
&
de
Waal,
Peter.(2014).利用数据挖掘技术改进短生命周期消费品的短期需求预
测.决策分析》。1.4.10.1186/2193- 8636-1-4.
[2]
需求预测的首要挑战.(2018年11月11日)。检索自
https://www.relexsolutions.com/top-challenges-in-demand- 预测/
[3]
Celery。分布式任务队列。http://www.celeryproject.org/
[4]
[5]
Solr: http://lucene.apache.org/solr/
Elasticsearch: https://www. elastic.co/
Download