最近看到一则eBay收购了商品价格预测的网站decide.com的新闻,再次证明了商品的价格预测这事是靠谱的。新闻里还提到Decide.com的全部26名员工,除了联合创始人兼CTO  Oren Etzioni 外,都将加入到eBay。 Oren Etzioni 已被微软创始人保罗·艾伦任命为一家新成立的人工智能机构的总裁。google了一下原来这个Oren Etzioni就是几年前做了个机票价格预测网站被微软1.15亿美元收购的大牛。看来他是真正尝到了商品价格预测的甜头,然后就复制了自己的成功。
自己以前也做过价格预测的工作,对这方面一直挺有兴趣,于是怀着一颗对机器学习八卦的心,学习一下Oren Etzioni是怎样预测机票价格的(其实也想看看他是怎么预测商品价格的,没找到相关资料)。
先说说为啥要做这个机票价格预测。2002年这哥们坐飞机的时候,发现周围乘客买的机票价格都比自己的便宜,立马就怒了,作为一个从事机器学习的科研工作者,表达怒气的方式也与众不同,他决定做一个帮助用户购买便宜机票的软件。02年怒的,回头就开搞,在03年SIGKDD上发了paper【1】,06年产品上线(Farecast),08年就被微软给收购了。看来有时候,情商低容易生气啥的也不是坏事。
再来看看他是怎么做这个预测算法的,其实并不复杂。
1、数据
每个航班起飞前21天的价格数据(每三小时抽样一次),两条航线,一共6个航空公司,12000条数据。对于每个航班,21*8=168个采样价格,记录下其中最低的价格以及经济舱机票售完的时间。
2、模型训练
分别训练三个独立模型Ripper,Q-learning,time series,并使用Stacked generalization方法将三个结果融合。
Ripper:是一种决策树的快速学习算法,据说准确度和C4.5差不多,但是效率上有明显优势。用到的特征不多,也很直观:航班号,距离飞机起飞的时间,当前价格,航空公司,航线,输出就是“buy”或者“wait”。由于两种预测错误的代价不同(如果将“buy”预测成“wait”,最悲催的下场是经济舱卖完了,只能买商务舱了),作者使用了MetaCost【2】解决这一问题,进一步提升了决策树模型的性能(+14%),但是却造成混合模型的效果下降(-29%)。所以,最终在决策树里没有用这个MetaCost。看来几个精心调优的单模型融合在一起的效果还真不一定是最好的。
Q-learning:一种增强学习算法,对模型在不同状态下采取的不同决策给予相应的奖惩,最终可以得到该模型在每个状态下的最优决策。这里将同一航班距离起飞前的时间作为不同的状态,如:UA168-Jan7-120,而“buy”和“wait”就是不同状态下的可能采取的行动,时间衰减因子为1。
惩罚函数如下:
time series:下一时刻价格是过去观测到价格的加权平均。如果时间序列模型预测的下一时刻价格高于当前价格,则输出“buy”,否则,输出“wait”。
其中a(i)是随i单调递增的函数,表示近期的机票价格在预测中其更大的作用,最终a(i)选用的是简单的线性函数。
多模型集成方法:Stacked Generalization(stacking)。就是将上面三个模型的输出作为最终集成模型的输入,这里应该也是用的决策树来做的集成。
3、实验结果:
模拟实际买票的场景,在飞机起飞前的不同时间段的购买行为,其中Optimal是最理想的情况,也就是知道未来机票的价格数据。
By hand,是模拟人的行为,做了简单的规则,如果当前价格大于历史同期最低价并且离出发时间大于7天,就“buy”,否则,“wait”。Upgrade Cost是由于“wait”导致经济舱没票了,被迫升级带来的额外支出。从单个模型看,时间序列那个还是挺不靠谱的,但是还是被加入到了最终的模型里面,应该是和其他的模型有着不错的互补效果吧。
4、题外话
好的算法也需要产品设计的配合才能发挥出最大的作用。基于机票预测算法的产品Farecast在2007年1月推出了Fare Guard最低价格担保模式,客人只需支付10美元购买此项服务,如果在未来7天内机票价格最终上涨,Farecast将支付客人锁定价格与最终实际票价之间的差额。如果机票价格下跌,客人将可以享受由此带来的费用节省。在我看来,这才是farecast一举成名最终被收购的关键。
【1】Oren Etzioni. To Buy or Not to Buy: Mining Airfare Data to Minimize Ticket Purchase Price. 2003
【2】P.Domingos. MetaCost: A general method for making classifiers cost-sensitive.1999.

Oren Etzioni的机票价格预测算法相关推荐

  1. python预测机票价格_一种国内机票价格预测方法与流程

    本发明属于机票查询预测技术领域,具体涉及一种国内机票价格预测方法. 背景技术: 随着生活水平的提高,选择飞机作为旅游出行的交通工具的人数逐年增加.但是,旅客对于机票价格依然十分敏感,且以最优价格购买心 ...

  2. 使用 ML.NET 进行保险价格预测

    此前通过多篇文章已充分介绍过,ML.NET是一个开源的跨平台机器学习框架,特别适合 .NET 开发人员.它允许将机器学习集成到 .NET 应用中,而无需离开 .NET 生态系统,甚至拥有 ML 或数据 ...

  3. 【负荷预测】基于神经网络的负荷预测和价格预测(Matlab代码实现)

    目录 1 概述 2 基于神经网络的负荷预测(Matlab实现) 2.1 代码 2.2 结果  2.3 回归树模型的进一步改进  3 基于神经网络的价格预测(Matlab代码实现)  4 阅读全文(Ma ...

  4. 基于机器学习的二手车价格预测及应用实现(预测系统实现)

    1.摘要 随着中国汽车工业的迅速发展,国内的汽车数量也在迅速增长.新车销售市场已经逐渐饱和,而二手车交易市场正在兴起.但是,由于中国的二手车市场尚未成熟,与发达国家相比仍存在较大差距.其中一个重要原因 ...

  5. 【算法竞赛学习】二手车交易价格预测-Task5模型融合

    二手车交易价格预测-Task5 模型融合 五.模型融合 Tip:此部分为零基础入门数据挖掘的 Task5 模型融合 部分,带你来了解各种模型结果的融合方式,在比赛的攻坚时刻冲刺Top,欢迎大家后续多多 ...

  6. 【算法竞赛学习】二手车交易价格预测-Task4建模调参

    二手车交易价格预测-Task4 建模调参 四.建模与调参 Tip:此部分为零基础入门数据挖掘的 Task4 建模调参 部分,带你来了解各种模型以及模型的评价和调参策略,欢迎大家后续多多交流. 赛题:零 ...

  7. 【算法竞赛学习】二手车交易价格预测-Task1赛题理解

    二手车交易价格预测-Task1 赛题理解 一. 赛题理解 Tip:此部分为零基础入门数据挖掘的 Task1 赛题理解 部分,为大家入门数据挖掘比赛提供一个基本的赛题入门讲解,欢迎后续大家多多交流. 赛 ...

  8. K近邻算法应用——价格预测

    一.构造数据 #根据rating和age评估价格 def wineprice(rating,age):peak_age=rating-50price=rating/2if age>peak_ag ...

  9. 阿里AI天池大赛-二手车交易价格预测-回归算法与模型融合

    1:报名地址 https://tianchi.aliyun.com/competition/entrance/231784/introduction?spm=5176.12281925.0.0.1a3 ...

最新文章

  1. oracle11 区分大小写,修改Oracle11g用户密码不区分大小写
  2. apache服务出现Forbidden 403问题的解决方法总结
  3. StackOverflow How to programmatically unplug replug an arbitrary USB device? 如何以编程方式拔出并重新插入任意USB设备
  4. 听说年底这些公司在裁员?是不是真的......
  5. DSP定点与浮点计算
  6. 又是别人家的公司!华为人才房价格曝光:1万/㎡ 带装修
  7. js 快速集成开发:easyui 时间控件格式化
  8. 数据网站(数据集的获取)、打分网站
  9. word转pdf linux java,java实现Word转Pdf(Windows、Linux通用)
  10. qlikview 地图插件制作教程
  11. MagicDraw-IBD图
  12. 服务器文件mdf,升级 .mdf 文件 - Visual Studio (Windows) | Microsoft Docs
  13. 【解决方案】STM32L152单片机驱动段码LCD屏,执行HAL_LCD_Init函数失败返回HAL_TIMEOUT,长时间卡在LCD_FLAG_RDY的while循环里面的解决办法
  14. android开发--mp3播放器项目源代码(xml文件解析,.lrc,.mp3文件下载,同时显示歌词)
  15. [$injector:unpr] Unknown provider:--angular.module()函数解答
  16. 怎样用计算机给ipd传电影,怎样不使用iTunes将电影导入iPad?
  17. 一位阿里导师给大学生的忠告
  18. 移动银行的技术、业务和商业模式
  19. Kafka常见故障分析总结
  20. 证件照怎么用手机拍?证件照拍照攻略|证件照生成器

热门文章

  1. iPhone丢失了怎么办 找回iPhone终极教程
  2. Vert.x中文文档
  3. 英雄榜拍卖行服务器维护,魔兽世界手机英雄榜、远程拍卖行即将登陆国服
  4. 在windows下CorelDraw中VBE的调用原理?
  5. 百度地图基础应用教程
  6. 践行新基建,共建城市智能体,为数字经济发展提供新动能
  7. 关闭 nvidia 自动更新
  8. python用line画直线_Python Matplotlib 线(Line)
  9. 电商卖家新方向亚马逊无货源 是否适合每个人做?
  10. python只有idle 1种编程环境_《Python编程初学者指南》——1.5 IDLE简介