第二十七章 数据融策,时序巅峰
2021年2月2日,农历正月初二。
清溪镇的新年氛围,依旧浓烈。
清晨的小镇,被一层薄薄的晨雾笼罩,红色的春联和灯笼在雾中若隐若现,添了几分朦胧的喜庆。昨夜的烟花余味还未散尽,空气中夹杂着淡淡的烟火气,偶尔响起的几声鞭炮,打破了清晨的宁静,提醒着人们,新年仍在酣畅的喜悦中。
郊外的小木屋里,早已恢复了往日的专注与沉静。
李长生已经正式开启了寒假的终极攻坚——「期货价格预测」项目,这是他规划的第八个AI项目,也是整个寒假难度最高、最具挑战性的终极挑战。
如果说,「图像修复」是计算机视觉领域的高阶跨越,那么「期货价格预测」,就是时间序列预测领域的天花板。
与股票价格预测相比,期货预测的难度,呈指数级提升。
股票价格的波动,更多受公司业绩、市场情绪、大盘走势等内部因素影响,规律相对容易捕捉,数据来源也相对单一。
而期货价格的波动,受多重复杂因素的叠加影响:国际政策、地缘政治、市场供需、美元指数、原油价格、黄金走势,甚至是突发的国际事件,都会对期货价格产生立竿见影的剧烈影响。
以客户指定的原油、黄金、铜三大品种为例:
-原油价格,受OPEC减产协议、中东地缘政治、全球经济复苏预期影响极大;
-黄金价格,与美元指数负相关,同时受全球通胀预期、避险情绪驱动;
-铜价,作为「工业金属之王」,直接反映全球制造业需求,受中国基建政策、欧美制造业数据影响显著。
这些因素,相互交织、相互影响,使得期货价格波动剧烈、规律难寻,往往前一秒还在稳步上涨,下一秒就因一条突发新闻,出现断崖式下跌或暴涨。
更关键的是,这些核心影响因素的数据,来源分散、格式不一、更新频率不同:有的是日度数据(如美元指数、期货收盘价),有的是周度数据(如库存数据),有的是月度数据(如制造业PMI),还有的是突发的非结构化数据(如新闻、政策公告)。
这就对项目提出了两大核心难点:
第一,多源数据的融合:如何将不同来源、不同频率、不同格式的结构化数据(如价格、指数)和非结构化数据(如新闻),有效融合,提取出对价格预测有价值的核心特征;
第二,模型的鲁棒性:如何搭建一个足够强大的模型,既能捕捉价格的长期趋势,又能应对突发因素带来的短期剧烈波动,在高波动的市场中,保持稳定的预测准确率。
客户的需求,更是严苛到了极致:短期(1-3天)预测准确率≥85%,长期(7-15天)趋势预测准确率≥90%。
这在整个行业内,都是一个极高的标准。
即便是专业的金融机构,拥有顶尖的分析师和庞大的模型团队,也很难稳定达到这个准确率。
但对李长生而言,越是困难,越是挑战,越能激发他的斗志。
他喜欢这种面对「无解难题」的感觉。
喜欢这种从「千头万绪」中,找到「核心关键」,最终「破局而出」的过程。
这,才是技术的魅力所在。
也是他,不断挑战自我的动力。
按照他面对全新高难度领域的一贯策略,他没有立刻开始搭建模型,而是将前三天的核心任务,定为「深度调研+多源数据收集与整理+特征工程设计」。
他将这三个任务,视为本次项目的「基础」,也是「核心」。
他深知,在期货预测中,「数据和特征」,远比「模型」更重要。
一个好的特征,能让简单的模型,发挥出惊人的效果;而一个糟糕的特征,即便是最先进的模型,也只能在错误的道路上,越走越远。
尤其是在多源数据融合这个核心难点上,数据的收集是否全面,特征的提取是否精准,直接决定了项目的成败。
于是,从正月初二清晨开始,李长生就进入了**「沉浸式调研与数据收集」**的状态。
他的第一步,是明确「核心影响因素」,梳理「数据来源」。
针对原油、黄金、铜三大期货品种,他通过查阅专业的金融研报、行业分析、期货交易指南,结合自己对市场的理解,逐一梳理出了每个品种的「核心影响因素清单」:
原油期货核心影响因素
1. 核心价格数据:原油期货主力合约收盘价、开盘价、最高价、最低价、成交量、持仓量(日度);
2. 供需因素:OPEC产量、美国原油库存、炼厂开工率(周度);
3. 宏观因素:美元指数、全球原油需求预期、地缘政治风险(日度/突发);
4. 替代因素:天然气价格、煤炭价格(日度)。
黄金期货核心影响因素
1. 核心价格数据:黄金期货主力合约收盘价、成交量、持仓量(日度);
2. 核心关联数据:美元指数、美债收益率(日度);
3. 宏观因素:全球通胀率、避险情绪指数、全球央行黄金储备(月度/日度);
4. 商品因素:原油价格(日度)。
沪铜期货核心影响因素
1. 核心价格数据:沪铜期货主力合约收盘价、成交量、持仓量(日度);
2. 供需因素:全球铜精矿产量、中国铜库存、精铜消费数据(周度/月度);
3. 宏观因素:中国制造业PMI、欧美制造业PMI、美元指数(月度/日度);
4. 行业因素:新能源汽车产量、电网投资数据(月度)。
这份「核心影响因素清单」,涵盖了价格、供需、宏观、行业四大维度,几乎穷尽了能对三大期货品种价格产生影响的所有关键因素。
梳理完清单,他的第二步,就是**「多源数据的收集与整理」**。
这是整个项目中,最繁琐、最耗时,也最考验耐心的一步。
他需要从数十个不同的数据源,收集近三年的历史数据:
-期货价格、成交量、持仓量数据,来自国内正规的期货交易平台;
-美元指数、美债收益率、原油价格、黄金价格数据,来自国际金融数据网站;
-库存数据、产量数据、PMI数据,来自国家统计局、行业协会、专业金融资讯平台;
-地缘政治风险、避险情绪指数,来自国际政治新闻平台、专业风险评级机构。
这些数据,来源分散、格式各异:有的是Excel表格,有的是CSV文件,有的是网页上的实时数据,还有的是需要手动整理的新闻资讯。
更麻烦的是,数据的更新频率不同:有的是日度数据,需要每天更新;有的是周度数据,每周更新一次;有的是月度数据,每月更新一次。
这就需要他,将不同频率的数据,进行「时间对齐」和「插值处理」,统一转换为**「日度数据」,确保数据的时间维度一致**,才能进行后续的融合与特征提取。
接下来的两天时间,李长生几乎都在**「与数据打交道」**。
他的生活,变得简单而机械:
打开数据网站,下载数据,整理数据,格式转换,时间对齐,缺失值填充,异常值处理。
一遍又一遍,重复着同样的操作。
这份工作,枯燥、繁琐,毫无技术含量,却容不得丝毫的马虎。
一个数据的错误,一个格式的偏差,一个时间的不对齐,都可能导致后续的特征提取出现偏差,最终影响模型的预测效果。
他必须全神贯注,一丝不苟。
他将收集到的所有数据,按照**「品种→因素类型→数据频率」的分类方式,整理成标准化的数据集**。
对缺失的数据,他根据数据的特性,采用**「线性插值」「均值填充」「前值填充」等不同的方法,进行精准填充**;
对异常的数据(如因突发事件导致的价格暴涨暴跌),他没有直接删除,而是做了「异常值标记」,在后续的特征工程中,单独处理,确保数据的真实性和完整性;
对不同频率的数据,他将周度、月度数据,通过**「插值法」,转换为日度数据**,实现了所有数据的时间维度统一。
这两天,他没有碰任何代码,也没有思考任何模型相关的问题。
他的世界里,只有数据,表格,数字,时间轴。
窗外的新年热闹,与他无关。
小镇的烟火气息,与他无关。
他像一个严谨的工匠,正在打磨着自己的「原材料」。
他知道,只有将「原材料」打磨到「极致」,才能做出「精品」。
两天后,当他将最后一份月度制造业PMI数据,转换为日度数据,并完成异常值标记时,一份完整、标准化、高质量的多源数据集,终于成型。
这份数据集,包含了近三年(2018-2021)的日度数据,涵盖了原油、黄金、铜三大品种的核心价格数据、关联数据、宏观数据、供需数据等共计42个特征维度,数据量达到了近3万条。
看着电脑屏幕上,整整齐齐、格式统一的数据集,李长生的脸上,露出了一丝释然的笑容。
最繁琐的一步,终于完成了。
但他知道,这还不够。
数据收集完成,只是「万里长征的第一步」。
接下来,才是本次项目的「核心中的核心」:特征工程设计与多源数据融合。
这,是决定项目成败的关键一步。
也是最考验他「技术功底+金融理解能力」的一步。
特征工程,简单来说,就是**「从原始数据中,提取出对预测有价值的特征」**。
在时间序列预测中,好的特征,需要满足两个核心条件:一是与预测目标(价格)有强相关性,二是能捕捉到「趋势、波动、周期性」等核心规律。
而在期货预测中,还需要额外满足一个条件:能有效融合「多源数据」,捕捉到「不同因素之间的相互影响关系」。
李长生没有立刻开始设计特征,而是先做了「数据探索与相关性分析」。
他利用Python的数据分析库(Pandas、Matplotlib),对原始数据集,进行了全面的探索性分析:
1. 描述性统计:分析每个特征的均值、方差、最大值、最小值,了解数据的分布特征;
2. 相关性分析:计算每个特征与期货价格之间的相关系数,筛选出与价格强相关的特征;
3. 趋势与周期性分析:绘制价格走势与核心特征的趋势图,分析价格的长期趋势、短期波动、周期性规律;
4. 交叉相关性分析:计算不同品种之间、不同特征之间的交叉相关系数,分析因素之间的相互影响关系(如美元指数与黄金价格的负相关关系)。
通过全面的数据分析,他得出了几个关键的结论:
1. 核心强相关特征:原油价格与OPEC产量、美国库存、美元指数强相关;黄金价格与美元指数、美债收益率强相关;铜价与中国制造业PMI、全球铜库存强相关;
2. 趋势与波动特征:原油价格短期波动剧烈,长期受供需趋势驱动;黄金价格长期受美元指数驱动,短期受避险情绪影响;铜价长期受制造业需求驱动,短期受库存波动影响;
3. 交叉影响特征:美元指数对三大品种均有显著影响(与黄金负相关,与原油、铜正相关);原油价格对黄金价格有间接影响(通过通胀预期)。
这些关键结论,为他的特征工程设计,提供了重要的依据。
接下来,他开始了**「特征工程设计」,并将「多源数据融合」,贯穿于整个特征设计的过程中**。
他的特征设计,没有局限于「原始特征」,而是从「时间维度、多源融合维度、规律捕捉维度」,三个层面,设计了「三大类特征」,实现了多源数据的深度融合,和核心规律的精准捕捉。
第一类:基础时间序列特征(捕捉自身规律)
从原始价格数据中,提取出能捕捉「趋势、波动、周期性」的核心特征:
-趋势特征:5日移动平均、10日移动平均、20日移动平均(MA5、MA10、MA20),反映价格的短期、中期趋势;
-波动特征:价格涨跌幅、波动率、布林带上下轨(BOLL),反映价格的短期波动程度;
-量仓特征:成交量涨跌幅、持仓量涨跌幅、量价比,反映市场情绪与资金流向。
第二类:多源数据融合特征(捕捉交叉影响)
这是本次特征工程的核心,也是多源数据融合的关键。
他根据**「相关性分析」的结论**,将不同来源、不同维度的特征,进行**「交叉融合」,设计出能捕捉「因素之间相互影响关系」的融合特征**:
-美元指数融合特征:黄金价格/美元指数、原油价格×美元指数、铜价×美元指数,捕捉美元指数对不同品种的差异化影响;
-品种间融合特征:原油价格×黄金价格、铜价×原油价格,捕捉不同品种之间的交叉影响;
-供需-价格融合特征:原油库存/原油价格、铜库存/铜价,捕捉供需关系对价格的影响。
第三类:高阶统计特征(捕捉隐藏规律)
从原始特征和融合特征中,提取出能捕捉「隐藏规律、非线性关系」的高阶统计特征:
-滚动统计特征:5日滚动均值、5日滚动方差、5日滚动相关系数,反映特征的短期变化规律;
-差分特征:一阶差分、二阶差分,消除数据的趋势性,突出波动特征;
-归一化特征:将所有特征,进行**「标准化归一化」,确保不同特征的量纲一致**,提升模型的训练效率和效果。
经过整整一天的设计与调试,李长生终于完成了**「特征工程设计」**。
他从最初的42个原始特征,通过**「提取、融合、变换」,最终设计出了共计128个「核心特征」**。
这128个特征,涵盖了「自身规律、交叉影响、隐藏规律」三大维度,实现了多源数据的深度融合,几乎捕捉到了所有能对期货价格产生影响的核心因素和规律。
当他将128个核心特征,整理成最终的训练数据集时,电脑屏幕上,显示出了一行清晰的提示:
「特征工程完成,最终特征数:128,数据集大小:29876条×128列。」
那一刻,李长生靠在椅背上,长长地舒了一口气。
一股难以言喻的成就感,涌上心头。
他做到了。
他不仅完成了「多源数据的收集与整理」,还通过「特征工程设计」,实现了「多源数据的深度融合」。
他从**「千头万绪、杂乱无章」的多源数据中**,提炼出了「精准、有效、全面」的核心特征。
这,是他在「时间序列预测领域」的又一个重大突破。
也是本次「期货价格预测」项目,最关键的一步。
他看了一眼电脑屏幕上的时间:2021年2月4日,农历正月初四,晚上8:00。
从正月初二清晨启动项目,到现在,已经过去了整整三天。
这三天,他**完成了「深度调研→多源数据收集与整理→数据探索分析→特征工程设计与多源数据融合」**四个核心步骤。
整个项目的「基础与核心」,已经全部完成。
接下来,就是本次项目的「最后一步」,也是「最具技术挑战性的一步」:搭建高阶时序模型,进行模型训练与优化。
他的目标,是搭建一个「融合LSTM与Transformer的混合时序模型」。
LSTM,擅长捕捉时间序列的「长期依赖关系」,能有效预测价格的长期趋势;
Transformer,擅长捕捉「特征之间的非线性关系和全局依赖」,能有效应对突发因素带来的短期波动。
将LSTM与Transformer结合,搭建混合模型,既能发挥LSTM的长期趋势捕捉能力,又能发挥Transformer的全局特征捕捉能力,完美契合期货价格「长期趋势+短期波动」的双重特征。
这,是当前最先进的时间序列预测模型之一,也是攻克「期货价格预测」这个天花板难题的「最优解」。
想到这里,李长生的眼神,再次变得炽热而坚定。
他起身,走到了木屋的窗边,推开了一条缝隙。
正月初四的夜晚,月光皎洁,星光璀璨。
小镇的新年鞭炮声,已经渐渐稀疏,只剩下偶尔的几声,在夜空中回荡。
一股清冷的夜风,扑面而来,让他连日来紧绷的神经,稍稍放松了一些。
他的肚子,传来了一阵饥饿感。
这才想起,自己一整天,都只吃了几片面包和一杯牛奶。
他笑了笑,转身,走到了木屋的角落。
那里,还剩下一些新年的食材:大米、鸡蛋、青菜,还有一小块腊肉。
他决定,做一碗腊肉青菜面,犒劳一下奋战了三天的自己。
他挽起袖子,开始忙碌。
烧水,下面,切腊肉,炒青菜。
动作,依旧熟练而从容。
很快,一碗热腾腾、香喷喷的腊肉青菜面,就做好了。
浓郁的腊肉香,混合着青菜的清香,扑面而来。
他坐在餐桌前,拿起筷子,慢慢吃着。
热腾腾的面条,滑入喉咙,带来了一阵阵的温暖。
连日来的数据整理的枯燥,特征设计的烧脑,精神的高度紧绷,仿佛在这一刻,都被这一碗热面,彻底驱散了。
小木屋里,灯火温暖。
窗外,月光皎洁。
一碗热面,一台电脑,一个专注的少年。
这一刻,烟火气与技术梦,再次完美融合。
吃完面,他收拾好碗筷,回到了电脑前。
他的目光,再次变得坚定而专注。
特征工程,已经完成。
数据集,已经准备就绪。
接下来,就是**「搭建模型,训练优化」**。
这,是本次项目的「最后一道难关」。
也是他,向「时间序列预测领域天花板」,发起的「最终冲击」。
他深吸一口气,调整了一下状态。
然后,打开了代码编辑器。
屏幕上,不再是熟悉的ESRGAN模型代码,也不是Attention U-Net模型代码。
而是全新的、更复杂的「LSTM+Transformer混合模型」代码框架。
他的手指,放在了键盘上。
准备,开始敲下第一行代码。
小木屋里的灯光,在正月初四的夜色中,格外温暖,格外坚定。
这灯光,照亮了他的书桌,照亮了他的代码。
也照亮了,他在时间序列预测领域的「巅峰之路」。
期货价格预测的攻坚,还在继续。
寒假的终极挑战,还在继续。
他的破界,永无止境。
他的成长,生生不息。
