基于事件的民航需求预测方法和装置技术领域
本发明涉及民航数据处理领域,具体而言,涉及一种基于事件的民航需求预测方
法和装置。
背景技术
在民航领域,一直困扰航空公司收益管理者的问题是:如何在保持收益最大化的
前提下,提供合理的仓位安排以满足航空旅客的多样化、无序化的出行需求。随着民航业的
快速发展,准确预测市场需求的变化是航空公司收益管理部门的核心诉求,其中,基于O&D
(出发地&到达地,也简称OD)的旅客航班需求预测对航空公司收益管理者来讲至关重要。虽
然航空公司目前能够轻松的获得各航线历史旅客量数据,但是并没有一个成熟的分析和预
测模型能够反映旅客对航班未来的需求变化,以便为收益管理者提供决策支持。因此,如何
能够及时有效的预测旅客航班需求的未来变化趋势、为航空公司收益管理提供决策依据,
是对民航信息服务的新一阶段的要求。
目前的技术主要能够实现基于O&D的各航班历史旅客量的查询功能,通过历史数
据反映当前的旅客需求,只能做到实时的反应当前需求的趋势,不能提供对未来需求变化
趋势的有效预测,因而这样的统计模型给予收益管理员的响应时间是很少的。即便有一定
预测功能,也只考虑了历史数据的影响,忽略了客观事件对需求变化的影响。从现状上看,
国内航空公司在中长期的销售管理(一般指二周以后的航班)上,主要使用传统的市场需求
测量方法,短期的销售管理(一般二周以内)还主要依赖于人的经验,缺乏对旅客航班需求
量变化趋势的预测,为收益管理员提供有效的数据支持。
发明内容
本发明提供了一种基于事件的民航需求预测方法和装置,以至少解决相关技术中
对民航需求预测不准确的问题。
根据本发明的一个方面,提供了一种基于事件的民航需求预测方法,包括:根据当
前航班的起飞日期有无异常,以及所述起飞日期当日将发生的外源事件对所述当前航班所
在航线的民航需求的影响因子,确定所述当前航班在所述起飞日期的预测类型;根据所述
当前航班在所述起飞日期的预测类型,预测所述当前航班在所述起飞日期的天级民航需求
预测指数。
可选地,在根据当前航班的起飞日期有无异常,以及所述起飞日期当日有无影响
民航需求的事件,确定所述当前航班在所述起飞日期的预测类型之前,所述方法还包括:根
据所述当前航班所在航线的星期民航需求标准曲线以及所述航线的民航需求异常曲线,确
定所述当前航班的所述起飞日期有无异常;获取所述起飞日期当日将发生的外源事件,并
根据预设策略计算所述外源事件对所述当前航班所在航线的民航需求的所述影响因子。
可选地,在根据所述当前航班所在航线的星期民航需求标准曲线以及所述航线的
民航需求异常曲线,确定所述当前航班的所述起飞日期有无异常之前,所述方法还包括:解
析民航信息系统的日志文件并计算天级民航需求数据;将所述当前航班所在航线相同星期
属性的天级民航需求数据,剔除异常点后求平均,得到所述星期民航需求标准曲线;将与所
述当前航班所在航线的历史已查询日期民航需求曲线与其起飞日期对应的星期民航需求
标准曲线进行比较,对形态异常的历史已查询日期民航需求曲线进行K-means聚类,保留每
类的中心曲线,作为所述航线的所述民航需求异常曲线。
可选地,根据所述当前航班在所述起飞日期的预测类型,预测所述当前航班在所
述起飞日期的天级民航需求预测指数包括:在所述预测类型为所述当前航班的所述起飞日
期无异常且所述当前航班的所述起飞日期当日将发生的外源事件对所述当前航班所在航
线的民航需求的影响因子为零的情况下,根据所述历史已查询日期民航需求曲线和所述星
期民航需求标准曲线,预测所述当前航班在所述起飞日期的所述天级民航需求预测指数。
可选地,根据所述当前航班在所述起飞日期的预测类型,预测所述当前航班在所
述起飞日期的天级民航需求预测指数包括:在所述预测类型为所述当前航班的所述起飞日
期有异常且所述当前航班的所述起飞日期当日将发生的外源事件对所述当前航班所在航
线的民航需求的影响因子为零的情况下,根据所述历史已查询日期民航需求曲线、所述星
期民航需求标准曲线和所述民航需求异常曲线,预测所述当前航班在所述起飞日期的所述
天级民航需求预测指数。
可选地,根据所述当前航班在所述起飞日期的预测类型,预测所述当前航班在所
述起飞日期的天级民航需求预测指数包括:在所述预测类型为所述当前航班的所述起飞日
期无异常且所述当前航班的所述起飞日期当日将发生的外源事件对所述当前航班所在航
线的民航需求的影响因子不为零的情况下,将所述影响因子叠加到所述星期民航需求标准
曲线上,并结合所述历史已查询日期民航需求曲线,预测所述当前航班在所述起飞日期的
所述天级民航需求预测指数。
可选地,根据所述当前航班在所述起飞日期的预测类型,预测所述当前航班在所
述起飞日期的天级民航需求预测指数包括:在所述预测类型为所述当前航班的所述起飞日
期有异常且所述当前航班的所述起飞日期当日将发生的外源事件对所述当前航班所在航
线的民航需求的影响因子不为零的情况下,根据所述历史已查询日期民航需求曲线、所述
星期民航需求标准曲线和所述民航需求异常曲线,预测所述当前航班在所述起飞日期的第
一天级民航需求预测指数;将所述影响因子叠加到所述星期民航需求标准曲线上,并结合
所述历史已查询日期民航需求曲线,预测所述当前航班在所述起飞日期的第二天级民航需
求预测指数;根据所述第一天级民航需求预测指数和所述第二天级民航需求预测指数,确
定所述当前航班在所述起飞日期的所述天级民航需求预测指数。
根据本发明的另一个方面,还提供了一种基于事件的民航需求预测装置,包括:第
一确定模块,用于根据当前航班的起飞日期有无异常,以及所述起飞日期当日将发生的外
源事件对所述当前航班所在航线的民航需求的影响因子,确定所述当前航班在所述起飞日
期的预测类型;预测模块,用于根据所述当前航班在所述起飞日期的预测类型,预测所述当
前航班在所述起飞日期的天级民航需求预测指数。
可选地,所述装置还包括:第二确定模块,用于根据所述当前航班所在航线的星期
民航需求标准曲线以及所述航线的民航需求异常曲线,确定所述当前航班的所述起飞日期
有无异常;第一计算模块,用于获取所述起飞日期当日将发生的外源事件,并根据预设策略
计算所述外源事件对所述当前航班所在航线的民航需求的所述影响因子。
可选地,所述装置还包括:第二计算模块,用于解析民航信息系统的日志文件并计
算天级民航需求数据;第三计算模块,用于将所述当前航班所在航线相同星期属性的天级
民航需求数据,剔除异常点后求平均,得到所述星期民航需求标准曲线;第四计算模块,用
于将与所述当前航班所在航线的历史已查询日期民航需求曲线与其起飞日期对应的星期
民航需求标准曲线进行比较,对形态异常的历史已查询日期民航需求曲线进行K-means聚
类,保留每类的中心曲线,作为所述航线的所述民航需求异常曲线。
通过本发明,采用根据当前航班的起飞日期有无异常,以及起飞日期当日将发生
的外源事件对当前航班所在航线的民航需求的影响因子,确定当前航班在起飞日期的预测
类型;根据当前航班在起飞日期的预测类型,预测当前航班在起飞日期的天级民航需求预
测指数的方式,解决了民航需求预测不准确的问题,加入了外源事件对民航需求的影响,提
高了民航需求预测的准确性。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发
明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的民航需求预测方法的流程图;
图2是根据本发明实施例的基于事件的民航需求预测装置的结构框图;
图3是根据本发明优选实施例的民航需求指数预测模型的结构示意图;
图4是根据本发明优选实施例的民航需求指数预测模型的功能结构图;
图5是根据本发明优选实施例的民航需求指数预测模型的架构图;
图6是根据本发明优选实施例的异常发现的流程图;
图7是根据本发明优选实施例的根据预测类型逻辑分类处理的流程图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的
情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第
二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
实施例1
在本实施例中提供了一种民航需求预测方法,图1是根据本发明实施例的民航需
求预测方法的流程图,如图1所示,该流程包括如下步骤:
步骤S101,根据当前航班的起飞日期有无异常,以及起飞日期当日将发生的外源
事件对当前航班所在航线的民航需求的影响因子,确定当前航班在起飞日期的预测类型;
步骤S102,根据当前航班在起飞日期的预测类型,预测当前航班在起飞日期的天
级民航需求预测指数。
通过上述步骤,在进行天级民航需求预测指数的预测时,考虑外源事件对民航需
求的影响因子,使得民航需求预测指数能够感应外源事件的影响,提高了民航需求预测的
准确性。将未来连续多天的天级民航需求预测指数进行统计,可以得到未来多天的民航需
求预测指数曲线,显示民航需求预测指数的变化趋势。
可选地,在根据当前航班的起飞日期有无异常,以及起飞日期当日有无影响民航
需求的事件,确定当前航班在起飞日期的预测类型之前,方法还包括:根据当前航班所在航
线的星期民航需求标准曲线以及航线的民航需求异常曲线,确定当前航班的起飞日期有无
异常;获取起飞日期当日将发生的外源事件,并根据预设策略计算外源事件对当前航班所
在航线的民航需求的影响因子。
可选地,星期民航需求标准曲线是通过下列方式生成的:解析民航信息系统的日
志文件并计算天级民航需求数据;将当前航班所在航线相同星期属性的天级民航需求数
据,剔除异常点后求平均,得到星期民航需求标准曲线。
可选地,民航需求异常曲线是通过下列方式得到的:将与当前航班所在航线的历
史已查询日期民航需求曲线与其起飞日期对应的星期民航需求标准曲线进行比较,对形态
异常的历史已查询日期民航需求曲线进行K-means聚类,保留每类的中心曲线,作为航线的
民航需求异常曲线。
可选地,根据当前航班在起飞日期的预测类型,该预测类型包括四类,即:无异常
无事件、有异常无事件、无异常有事件,以及有异常有事件。在预测天级民航需求预测指数
时,根据不同的预测类型使用不同的预测逻辑或者预测模型进行预测。
例如,在预测类型为当前航班的起飞日期无异常且当前航班的起飞日期当日将发
生的外源事件对当前航班所在航线的民航需求的影响因子为零(即认为无事件)的情况下,
根据历史已查询日期民航需求曲线和星期民航需求标准曲线,预测当前航班在起飞日期的
天级民航需求预测指数。
例如,在预测类型为当前航班的起飞日期有异常且当前航班的起飞日期当日将发
生的外源事件对当前航班所在航线的民航需求的影响因子为零(即认为无事件)的情况下,
根据历史已查询日期民航需求曲线、星期民航需求标准曲线和民航需求异常曲线,预测当
前航班在起飞日期的天级民航需求预测指数。
例如,在预测类型为当前航班的起飞日期无异常且当前航班的起飞日期当日将发
生的外源事件对当前航班所在航线的民航需求的影响因子不为零的情况下,将影响因子叠
加到星期民航需求标准曲线上,并结合历史已查询日期民航需求曲线,预测当前航班在起
飞日期的天级民航需求预测指数。
例如,在预测类型为当前航班的起飞日期有异常且当前航班的起飞日期当日将发
生的外源事件对当前航班所在航线的民航需求的影响因子不为零的情况下,根据历史已查
询日期民航需求曲线、星期民航需求标准曲线和民航需求异常曲线,预测当前航班在起飞
日期的第一天级民航需求预测指数;将影响因子叠加到星期民航需求标准曲线上,并结合
历史已查询日期民航需求曲线,预测当前航班在起飞日期的第二天级民航需求预测指数;
根据第一天级民航需求预测指数和第二天级民航需求预测指数,确定当前航班在起飞日期
的天级民航需求预测指数。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施
例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多
情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有
技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储
介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算
机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
在本实施例中还提供了一种基于事件的民航需求预测装置,该装置用于实现上述
实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实
现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,
但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图2是根据本发明实施例的基于事件的民航需求预测装置的结构框图,如图2所
示,该装置包括:第一确定模块21和预测模块22,其中,
第一确定模块21,用于根据当前航班的起飞日期有无异常,以及起飞日期当日将
发生的外源事件对当前航班所在航线的民航需求的影响因子,确定当前航班在起飞日期的
预测类型;预测模块22,耦合至第一确定模块21,用于根据当前航班在起飞日期的预测类
型,预测当前航班在起飞日期的天级民航需求预测指数。
可选地,装置还包括:第二确定模块,耦合至第一确定模块21,用于根据当前航班
所在航线的星期民航需求标准曲线以及航线的民航需求异常曲线,确定当前航班的起飞日
期有无异常;第一计算模块,耦合至第一确定模块21,用于获取起飞日期当日将发生的外源
事件,并根据预设策略计算外源事件对当前航班所在航线的民航需求的影响因子。
可选地,装置还包括:第二计算模块,用于解析民航信息系统的日志文件并计算天
级民航需求数据;第三计算模块,耦合至第二计算模块和第二确定模块,用于将当前航班所
在航线相同星期属性的天级民航需求数据,剔除异常点后求平均,得到星期民航需求标准
曲线;第四计算模块,耦合至第三计算模块和第二确定模块,用于将与当前航班所在航线的
历史已查询日期民航需求曲线与其起飞日期对应的星期民航需求标准曲线进行比较,对形
态异常的历史已查询日期民航需求曲线进行K-means聚类,保留每类的中心曲线,作为航线
的民航需求异常曲线。
可选地,预测模块22用于在预测类型为当前航班的起飞日期无异常且当前航班的
起飞日期当日将发生的外源事件对当前航班所在航线的民航需求的影响因子为零的情况
下,根据历史已查询日期民航需求曲线和星期民航需求标准曲线,预测当前航班在起飞日
期的天级民航需求预测指数。
可选地,预测模块22用于在预测类型为当前航班的起飞日期有异常且当前航班的
起飞日期当日将发生的外源事件对当前航班所在航线的民航需求的影响因子为零的情况
下,根据历史已查询日期民航需求曲线、星期民航需求标准曲线和民航需求异常曲线,预测
当前航班在起飞日期的天级民航需求预测指数。
可选地,预测模块22用于在预测类型为当前航班的起飞日期无异常且当前航班的
起飞日期当日将发生的外源事件对当前航班所在航线的民航需求的影响因子不为零的情
况下,将影响因子叠加到星期民航需求标准曲线上,并结合历史已查询日期民航需求曲线,
预测当前航班在起飞日期的天级民航需求预测指数。
可选地,预测模块22用于在预测类型为当前航班的起飞日期有异常且当前航班的
起飞日期当日将发生的外源事件对当前航班所在航线的民航需求的影响因子不为零的情
况下,根据历史已查询日期民航需求曲线、星期民航需求标准曲线和民航需求异常曲线,预
测当前航班在起飞日期的第一天级民航需求预测指数;将影响因子叠加到星期民航需求标
准曲线上,并结合历史已查询日期民航需求曲线,预测当前航班在起飞日期的第二天级民
航需求预测指数;根据第一天级民航需求预测指数和第二天级民航需求预测指数,确定当
前航班在起飞日期的天级民航需求预测指数。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通
过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述模块分别位于多
个处理器中。
实施例3
本发明的实施例还提供了一种软件,该软件用于执行上述实施例及优选实施方式
中描述的技术方案。
实施例4
本发明的实施例还提供了一种存储介质。在本实施例中,上述存储介质可以被设
置为存储用于执行以下步骤的程序代码:
步骤S101,根据当前航班的起飞日期有无异常,以及起飞日期当日将发生的外源
事件对当前航班所在航线的民航需求的影响因子,确定当前航班在起飞日期的预测类型;
步骤S102,根据当前航班在起飞日期的预测类型,预测当前航班在起飞日期的天
级民航需求预测指数。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-
Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬
盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的
示例,本实施例在此不再赘述。
为了使本发明实施例的描述更加清楚,下面结合优选实施例进行描述和说明。
实施例5
为了给航空公司收益管理提供更加智能的需求预测支持,本实施例提出一种民航
需求指数预测模型,基于大数据平台采集各渠道全量查询数据,数据来源范围广,对市场感
知性强,以民航旅客匿名成行数据、用户查询日志数据为数据源,主要涉及异常发现、事件
与需求指数相关性、需求指数预测等核心模块。异常发现以计算得到的起飞日期和记录日
期需求指数曲线为基础,通过分析标准曲线,计算异常值,对异常起飞日期进行分类,进而
实现异常发现。事件与需求指数相关性的计算,通过构建事件与需求相关性模型,将外源事
件输入模型并计算得到事件对未来需求指数的影响程度。需求指数预测先判断起飞日期有
无异常、有无事件,然后利用标准曲线库、异常曲线库及事件影响力等数据按分类进行预
测,得到天级预测需求指数。
为实现上述目的,本实施例提供的民航需求指数预测模型从航信AVE系统的日志
中获取需求指数天级数据,存入Hive表中,其内容需要包括如航班起飞日期、出发地、目的
地、用户查询时间等。将外源事件库输入到社会事件与需求指数相关性模型中,计算得到事
件影响力,此模块为单独离线操作。主系统是先采用需求指数数据初始化星期标准曲线、异
常曲线存入Hive表、实现异常发现算法发现起飞日期曲线小窗口异常存入Hive表中。然后
采用需求指数数据、标准曲线数据,异常曲线数据进行需求指数预测,并能定期对标准曲线
库及异常曲线库进行迭代更新。
图3是根据本发明优选实施例的民航需求指数预测模型的结构示意图,如图3所
示,该民航需求指数预测模型包括单机上由Java开发的外源事件库,Hadoop平台上由Spark
开发的需求指数结果模型、Hive数据库、事件与需求相关性模型、需求指数预测模型,以及
预测结果输出/展示模块。
图4是根据本发明优选实施例的民航需求指数预测模型的功能结构图,图5是根据
本发明优选实施例的民航需求指数预测模型的架构图。参考图4和图5,本实施例提供的民
航需求指数预测模型的处理流程包括以下步骤和环节:
①数据预处理:计算天级需求指数,并按照一定格式输出存储到Hadoop的Hive表
中。
②标准曲线库建立和更新:采用需求指数数据,对于不同航线对其同一星期属性
的需求指数数据进行处理,剔除异常点后求平均,得到每条航线的星期标准曲线存入标准
曲线库。根据起飞日期标签确定其对应记录日期曲线正常与否,局部更新星期标准曲线,若
星期标准曲线不存在,则新增星期标准曲线,将更新或新增结果存入Hive表中。
③异常曲线库建立和更新:对于新增加的起飞日期对应的多天(例如80天)已查询
日期曲线,与该起飞日期对应的星期标准曲线比较,对形态较为异常的曲线集合进行K-
means聚类,保留每类的中心曲线存入异常曲线库。比较已发生某产品集的已查询日期曲线
及星期标准曲线,若表现异常则将该产品集的已查询曲线加入异常曲线库,并将结果存入
Hive表中。
④事件与需求相关性计算:构建事件与需求相关性模型,将外源事件输入模型并
计算得到事件对未来需求指数的影响。
⑤异常发现:能够发现起飞日期附近是否存在对航线需求具有影响的异常时间和
异常事件。采用需求指数数据及起飞日期标准曲线、记录日期标准曲线,发现起飞日期曲线
小窗口异常状态存入Hive表中。参考图6,在异常发现中,通过计算起飞日期曲线小窗口异
常值、记录日期曲线整体形态异常值及记录日期曲线异常值,通过分类决策树对异常进行
分类。
⑥参考图7,需求指数预测本模块先判断起飞日期有无异常、有无事件分为四种类
型,然后利用标准曲线库、异常曲线库及事件影响力等数据按上述不同的类型进行预测,得
到天级预测需求指数。
下面通过具体实例对本优选实施例进行描述和说明。
本实例提出的针对民航需求指数预测的系统包含数据预处理模块、标准曲线库建
立模块、异常曲线库建立模块、事件与需求相关性模块、异常发现算法模块、需求指数预测
模块、标准曲线库更新模块、异常曲线库更新模块。在表1中对各个模块的功能进行了描述。
表1系统模块描述
本实例提出的针对民航需求指数预测的模型,首先确定分析当前日期未来59天起
飞日期曲线及每个起飞日期对应的历史80天记录日期曲线;然后根据异常发现算法确定某
个起飞日期异常类型标签,移动当前日期,生成多个记录日期曲线异常类型标签,判定记录
日期曲线异常与否,建立标准曲线库和异常曲线库;最后根据不同类别的需求指数预测模
型,对标准曲线、异常及事件影响力等进行调整,综合已查询日期曲线生成最终的需求指数
预测曲线。
如图3和图5所示,本实例提出的针对民航需求指数预测模型用于实现以下步骤:
步骤1,数据预处理:计算天级需求指数,并按照一定格式输出存储到Hadoop的
Hive表中。其表结构如表2所示。
表2存储结构
步骤2,标准曲线库建立和更新。标准曲线库建立,采用需求指数数据,对于不同航
线对其同一星期属性的需求指数数据进行处理,剔除异常点后求平均,得到每条航线的星
期标准曲线存入标准曲线库。例如,在一个实施例中,该算法根据2016年1月到2016年5月的
需求指数数据,遍历起飞日期生成已查询日期曲线。为保证已查询日期曲线天数为80,设置
起飞日期范围在2016年3月21日至2016年6月1日之间,通过对同一航线相同星期属性的已
查询日期曲线去除离群点求平均值,得到每条航线的7条星期标准曲线,具体执行过程如
下:
a、获取所有航线起飞日期在2016年3月21日至2016年6月1日范围内的已查询日期
曲线;
b、将获取的已查询日期曲线的起飞日期属性转换为该起飞日期的星期属性;
c、根据航线和星期属性对已查询日期曲线分类;
d、定义p代表一条曲线上第p个点,取值为0~79,对某一类曲线,同一位置需求指
数和为sumIndex[p],同一位置需求指数不为0的点数和为number[p];
e、如果number[p]不等于0,则该位置平均值aveIndex[p]=sumIndex[p]/number
[p],否则aveIndex[p]=0;
f、依次读取该类曲线,分别计算其80个点tempIndex[p]是否为离群点,定义点的
偏离程度,将计算结果(Ratio)与星期标准曲线离群点阈值(ratioThreshold)进行比较如
果Ratio>ratioThreshold,则为离群点,sumIndex[p]=sumIndex[p]-tempIndex[p],
number[p]=number[p]-1;
g、同一航线同一星期属性的已查询日期曲线同位置去除离群点后求平均则得到
该航线的一条星期标准曲线,将所有航线的所有星期标准曲线保存到Hive表中。
当新生成80天查询曲线时,根据该曲线的起飞日期对应的星期,更新标准曲线库
中对应的星期标准曲线,该过程为:若星期标准曲线存在,则根据新80天查询曲线的起飞日
期标签确定其对应记录日期曲线正常与否,局部更新星期标准曲线,若星期标准曲线不存
在,该曲线为对应的星期标准曲线,将更新或新增结果存入Hive表中。具体的流程如下:
a、获取所有航线的星期标准曲线;
b、每个起飞日期曲线小窗口包含3个点,因此每个起飞日期点拥有三个异常标签,
选择该点的第一个标签作为当前日期下的起飞日期点的异常情况tag,tag=1为正常,tag
=0为异常;
c、得到起飞日期曲线上每个起飞日期点的异常情况,取每个起飞日期对应的历史
21天的需求指数曲线;
d、对每个产品集,如果起飞日期对应的标签tag=1,则判断是否存在该星期标准
曲线,若存在,则取该起飞日期对应的历史21天需求指数曲线按权值对星期标准曲线的对
应21个点进行局部更新,否则,增添该星期标准曲线的对应部分;
e、将更新后或者新增的星期标准曲线结果存入Hive表中。
步骤3,异常曲线库建立和更新:日期对应的星期标准曲线比较,对形态较为异常
线进行K-means聚类,保留每类的中心曲线存入异常库。根据2016年1月到2016年5月的需求
指数数据,遍历起飞日期生成已查询日期曲线。为保证已查询日期曲线天数为80,设置起飞
日期范围在2016年3月21日至2016年6月1日之间,通过对已查询日期曲线与其起飞日期对
应星期标准曲线进行比较得到异常曲线,对异常曲线进行聚类,得到类中心曲线存到异常
库,具体执行过程如下:
a、获取所有航线的星期标准曲线;
b、获取所有航线起飞日期在2016年3月21日至2016年6月1日范围内的已查询日期
曲线;
c、读取已查询日期曲线,分别对其80个点求和得到sum,如果sum<
hisSumThreshold则过滤,其中hisSumThreshold为已查询曲线指数之和阈值;
d、对过滤后的已查询日期曲线,得到每条曲线的起飞日期对应的星期属性,计算
已查询日期与其星期标准曲线的余弦距离CosValue,如果CosValue>cosThreshold则记为
异常曲线,其中cosThreshold为余弦距离异常判断阈值;
e、设置异常曲线类别总数为typeCount,对异常曲线进行Kmeans算法进行聚类,得
到typeCount类,取其中心位置曲线加入异常曲线库并存到Hive表中。
比较已发生某产品集的已查询日期曲线及星期标准曲线,若表现异常则加入异常
库,将结果存入Hive表中,具体执行过程如下:
a、获取所有的旧异常曲线和新生成的已查询日期曲线;
b、计算已查询日期曲线起飞日期对应的星期属性,得到该已查询日期曲线与其星
期标准曲线的余弦距离CosValueHC,SC,如果CosValueHC,SC<cosThreshold则过滤;
c、计算剩下的已查询日期曲线与异常曲线库中的曲线的余弦距离CosValueHC,EC,
如果CosValueHC,EC>cosThreshold则加入异常曲线库;
d、将结果保存到Hive表中。
步骤4,事件与需求相关性计算:构建事件与需求相关性模型,将外源事件输入模
型并计算得到事件对未来需求指数的影响。
步骤5,异常发现:采用需求指数数据及起飞日期标准曲线、记录日期标准曲线,发
现起飞日期曲线小窗口异常状态存入Hive表中。通过计算起飞日期曲线小窗口异常值、记
录日期曲线整体形态异常值及记录日期曲线异常值,通过分类决策树对异常进行分类,具
体异常值说明、执行过程及决策思路如下。
a、计算起飞日期曲线小窗口异常值:
在计算起飞日期曲线小窗口内异常值时不仅考虑了当前时间曲线与该航线标准
曲线的比较情况,还比较了该小窗口与其他航线同时间查询状况,并综合考虑了当前时间
曲线的整体波动情况。其中通过欧式距离比较当前曲线与标准曲线的物理距离,通过余弦
距离比较当前曲线与其他航线的形态差异。算出异常值后再除以“整体曲线减去标准曲线
的标准差”,一是反映了整条曲线波动越小,该小窗口内异常情况越突出;二是将不同航线
不同数量级的曲线归一化到一个异常值范围内。具体起飞日期小窗口异常值计算公式如
下:
fdxOD,i∈{fd|当前时间查询除该OD以外所有OD的起飞日期第i个小窗口曲线}
在上式中,
Sgn(fdOD,i-standardfdOD,i)表示某OD起飞日期曲线第i个小窗口的和减去该OD起
飞日期标准曲线的第i个小窗口的和后的符号。
Eud(fdOD,i,standardfdOD,i)表示某OD起飞日期曲线第i个小窗口与该OD起飞日期
标准曲线的第i个小窗口的欧式距离。
Ave[Cosine(fdOD,i,fdxOD,i)]表示某OD起飞日期曲线第i个小窗口与所有其他OD起
飞日期曲线第i个小窗口的余弦距离的平均值。
StdDev(fdOD-standardfdOD)表示某OD起飞日期曲线减去该OD起飞日期标准曲线
后的标准差。
b、计算记录日期曲线整体形态异常值:
记录日期曲线整体形态反映了记录日期曲线与标准曲线形态上的差异性,具体计
算公式如下:
在上式中,Cosine(rdOD,i,standardrdOD,i)表示某OD起飞日期曲线第i个小窗口所
对应的记录日期曲线与该小窗口的记录日期标准曲线的余弦距离。
c、计算记录日期曲线小窗口异常值:
记录日期曲线小窗口异常值反映了记录日期曲线某一窗口内的异常状况,找出当
前记录日期曲线与标准曲线相差最大的窗口,再综合比较该窗口与其他航线的形态差异,
并综合考虑该曲线的整体波动情况得出异常值。
fdxOD,i,k∈{rd|当前时间查询除该OD以外所有OD起飞日期曲线第i个小窗口所对
应
记录日期曲线的第k个小窗口}
在上式中,
max[Eud(rdOD,i,standardrdOD,i)]表示某OD起飞日期曲线第i个小窗口所对应记录
日期曲线与该小窗口的记录日期标准曲线的欧式距离的最大值。
Ave[Cosine(rdOD,i,k,rdxOD,i,k)]表示某OD起飞日期曲线第i个小窗口所对应记录
日期曲线的第k个小窗口(该小窗口与标准曲线比较欧式距离最大)与所有其他OD起飞日期
曲线第i个小窗口所对应记录日期曲线的第k个小窗口的余弦距离的平均值。
StdDev(rdOD,i-standardrdOD,i)表示某OD起飞日期曲线的第i个小窗口所对应记录
日期曲线减去该小窗口的记录日期标准曲线后的标准差。
d、通过计算异常值结合图6所示的异常分类方法进而完成异常发现和异常分类。
步骤6,需求指数预测:时间序列预测一般需要考虑四方面因素:长期趋势、季节变
动、周期变动和不规则变动。前三项可通过传统预测方法获得,不规则变动则通过分析异常
和事件获得:根据前期异常发现算法,将窗口异常转换为点异常,判断某起飞日期点是否存
在异常;在外源事件库中搜索,判断某日期某城市是否有事件,通过构建事件与需求相关性
模型,得到事件对需求带来的影响力。根据有无异常、有无事件分类建模,依照图7预测模型
分类方法,利用标准曲线库、异常曲线库及事件影响力等数据按分类进行预测,得到天级预
测需求指数。该预测过程需要遵循的原则如下:
根据预测的起飞日期的异常与否,参考标准曲线库或异常曲线库的历史曲线数据
进行预测;
根据预测的起飞日期是否存在事件,若存在事件,则将事件的影响力数据加入预
测模型中进行预测。
综上所述,通过本发明的上述实施例,能够实现对未来旅客航班需求的有效预测,
以旅客历史航班查询需求为输入,对旅客航班需求自身变化趋势的分类,找出异常曲线,结
合事件对需求的影响作用,获得对未来一段时间每个起飞日期的需求变化趋势。经过模型
计算,能够快速准确的输出预测结果,事件因子的加入提升了预测的准确性。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技
术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修
改、等同替换、改进等,均应包含在本发明的保护范围之内。