舒阅小说网

繁体版 简体版
舒阅小说网 > 见微 > 第46章 数据异常

第46章 数据异常

章节错误,点此举报(免注册),举报后维护人员会在两分钟内校正章节内容,请耐心等待,并刷新页面。

周五下午,林见微在工位上接到了凌霄远的电话。他的声音比平时低,语速也比平时快——不是紧张的那种快,是那种在长时间集中注意力之后、突然意识到需要和外界同步信息时才会出现的不连贯的急切。他说他那个情绪因子的回测结果出来了,但有一组数据不太对。训练集上的拟合度高达零点九几,夏普比率漂亮得像教科书里的范例,但一切换到测试集就全面溃败——超额收益几乎全部消失,最大回撤远超策略设计的止损阈值。他反复检查了回测框架的参数设定,没有发现问题。他怀疑是数据本身有瑕疵,想请她帮忙看看。

她说好,把工业自动化项目的尽调报告合上。这份报告是何知予昨天发来的第四版修订稿,每一页都有他越来越自信的批注痕迹——第一版时他还在页边写“此处不确定,需请教林总”,第四版已经变成了“此处存在三种可能的偏差,分别对应以下验证方案”。她把报告放进抽屉里锁好,问他什么时候。他说越快越好。她看了一眼时间——下午快五点了。她说她坐地铁过来,大概半小时。他说他到地铁站接她。

她挂了电话,把笔记本和笔装进帆布袋,又往里面塞了一包苏打饼干和一盒牛奶——她不知道今晚会待到几点,但从他的语气判断,这个问题不像是能在晚饭前解决的。她站起来穿外套时,何知予从打印区探出头,手里拿着刚打印出来的蔡总私募债结算结构定稿版,问她是不是要出去。她说对,去凌霄远那边,他的模型出了点问题。何知予说需要帮忙吗。她说不用,是数据源的问题,她自己能处理。何知予点了点头,又说蔡总私募债的结算结构已经定稿了,周一上投委会之前他再检查一遍优先清算权的触发条件是否涵盖了所有特殊情景。她说好。然后她想了想,又说你最近越来越像我了——不是像我做事的方式,是像我检查别人做事的方式。何知予愣了一下,说那是因为你教得好。她说我没教你,是你自己学的。她说这话时嘴角有一点弧度,但很快收住了。

地铁上人不少。她靠在车厢角落的扶手旁边,帆布袋放在膝盖上。窗外隧道里的灯光飞快地闪过,她在脑子里把凌霄远那个情绪因子策略的基本框架过了一遍——多因子模型,引入社交媒体情绪数据作为alpha因子,训练集和测试集按时序划分,回测周期覆盖近三年。这些基本信息是他们之前在家里的餐桌上讨论过的,当时凌霄远说这个策略的核心难点在于情绪信号的噪声过滤,中文文本的分词和语境识别是最大的瓶颈。她当时建议他参考某几篇关于中文社交媒体情绪分析的文献,他说已经看过了,正在尝试用不同的标注方法做对比实验。现在这个策略在训练集上表现极好,测试集却崩了——这种模式她太熟悉了。不是策略本身的问题,是数据的问题。过拟合通常不会表现得这么极端,只有数据泄露或标注偏差才会导致训练集和测试集之间的鸿沟如此巨大。

她到站时,凌霄远已经在闸机外面等了。他今天没有穿衬衫,只穿了一件深灰色的T恤,袖口没有挽起,头发有点乱,大概是跑数据时用手抓的。她很少看到他穿T恤的样子,上一次还是周末在家带嘉木时——那天他穿着这件T恤给女儿做睡眠训练,嘉木趴在他胸口睡着了,他一动不敢动,在沙发上坐了一整个下午。他看到她出来,接过她手里的帆布袋,说辛苦你了。她说还没开始辛苦,先看看数据再说。

他的基金办公室在浦东一栋不起眼的写字楼里,和陆家嘴那些玻璃幕墙闪闪发光的大厦不同,这栋楼低调得像一个不想被人注意的尽调标的,门口连公司logo都没有,只有保安亭的访客登记表上写着楼层和公司名。电梯是那种老式的,按键上的数字被磨得模糊不清,运行时发出低沉的嗡嗡声。她想起以前去松江做首次拜访时,周总的公司也是藏在这样一个不起眼的工业园区里。真正有价值的东西往往不需要用外观来证明自己——但她现在要看的这个策略,可能在数据源上就已经出了问题。前台已经下班了,整层楼只剩几间办公室亮着灯。他刷卡带她进了自己的办公室。

他的办公室不大,但很整洁。一面墙全是书架,从量化金融到概率论到机器学习,按学科分类排列,书脊上的标题烫金或烫银,在灯光下泛着冷光。另一面是几块并排的显示器,屏幕上跑着密密麻麻的代码和K线图,其中一台正在滚动输出回测日志,绿色的字符一行接一行地跳动。桌上摊着好几叠打印稿,旁边放着一杯凉透的咖啡和一个空了的便当盒,便当盒里还剩几粒米饭,筷子横搁在盒沿上。她注意到便当盒旁边还有一张被折叠的打印纸,展开一看,是他中午从网上打印下来的菜谱——干煸四季豆的做法,步骤旁边用铅笔标注了“油温需控制在高温段”,后面又划掉了,改成了“先高温爆炒再转中小火”。他大概在跑数据的间隙还在研究周末做什么菜。

他让她坐在自己的椅子上,把主显示器转过来对着她。屏幕上是一个策略回测的详细报告,横轴是时间序列,纵轴是累计收益率。两条曲线——一条蓝色,一条红色——在训练集上几乎完美重叠,像两条紧紧缠绕的丝带,但在测试集上出现了明显的偏离:蓝色线从某个时间节点开始急速下滑,和红色线之间拉开了一道越来越宽的鸿沟。蓝色是策略收益,红色是基准收益。训练集上的拟合度高达零点九几,测试集上的超额收益几乎全部消失,最大回撤远超止损阈值。她看着那条陡然下降的蓝线,觉得这个形状很熟悉——不是市场风险造成的回撤,是某种更系统性的偏差。她说调出训练集和测试集的划分方式。

他切换了窗口,显示数据分割的逻辑:按时间序列前百分之八十作为训练集,后百分之二十作为测试集。她看了分割点的具体日期——某个月的中旬。她问划分的时间节点是什么时候。他说就是这个日期,他当时选择这个日期作为划分节点,是因为刚好能覆盖近三个完整季度的数据作为训练集,最后一个季度作为测试集。她又问对方是什么时候发来最新一版标注数据的。他想了想,说也在差不多的时间,和划分节点只差了几天。她点了点头,让他把对方发来的数据文件和原始数据文件同时打开,放在两个并列的窗口里。

两个窗口并排显示,左边是对方发来的情绪因子数据,右边是原始社交媒体文本数据。她沉默了几分钟,逐段对比。她指着测试集里一段平稳上升的曲线,说这段数据在对方发来的标注版本里显示为“中性情绪”,波动极小;但在原始数据里,同一时间段对应的社交媒体文本情绪其实有明显波动——她翻了几条原始数据里的示例,说你看这条,用词明明是强烈质疑,但对方的分词规则把这种表达归类为“中性讨论”。还有这条,评论区里明显出现了情绪宣泄,但被标注成了“信息分享”。她翻到打印稿附录里对方提供的分词规则,逐条看了一遍,发现在某个版本里对方把某些带有歧义的词组统一标注为“中性”,而不是保留原始的情绪强度。

这意味着标注过程中存在主观筛选。而这些被“中性化”的数据恰好集中在测试集里——不是随机分布的,是集中在测试集里。她指着屏幕上的时间轴说,你看这些被标注为“中性”的数据在训练集里也有,但比例很低;在测试集里却占了相当一部分。这说明对方在进行标注时并不是有意识地针对测试集做了过滤,但无意中把波动较大的数据归到了训练集,把波动较小的数据留在了测试集。这种偏差在机器学习领域被称为“数据泄露”——不是人为的刻意操纵,是标注过程中对数据特征的某种隐性偏向导致训练集和测试集不再独立同分布。由此训练出的模型在测试集上会看到与训练时分布不一致的数据,回测结果自然大幅偏离预期。

凌霄远盯着屏幕,手指在桌沿上轻轻敲了两下,节奏很快。那速度比平时密集得多,像是在用触觉辅助思维运算。他说对方在标注数据时可能无意中按时间顺序做了标注,先标注的数据恰好是波动较大的训练集部分,后标注的则是波动较小的测试集部分——这导致了标注质量在时间维度上的系统性差异。他说他需要重新检查所有标注数据,和对方确认分词规则的具体细节。他说完已经在调取更详细的文件列表,准备逐条核对测试集里的标注日期和原始数据的时间戳。她说好,把椅子让回给他,靠在窗台上看着他操作。

窗外浦东的夜景正在慢慢亮起来。这栋不起眼的写字楼虽然不在陆家嘴核心区,但从这个角度能看到金融街的一角——几栋高楼并排而立,玻璃幕墙里映出无数个加班者的灯。她靠在窗台上,看着他。他重新跑了一遍数据对齐,把测试集里的每一条标注记录和原始数据按时间戳逐行比对。他的手指在键盘上移动得很快,偶尔停下来,用铅笔在旁边的打印稿上标注什么。他的动作和在家做菜时完全不一样——做菜时他每一步都要对照菜谱进度表,动作谨慎而缓慢;现在他的手指像在弹奏某种只有他自己能听懂的乐器,每个键位都烂熟于心。她看着他的侧脸,发现他眉心的那道竖纹又出现了,和他在产检门口打电话时的表情一样,但她注意到另一个细节:他在逐条核对数据时,把对方的标注文件单独放在一个窗口,把自己的回测框架放在另一个窗口,两个窗口并排对齐,每一行差异都用不同颜色的高亮标注——红色是标注偏差,黄色是需要进一步确认,绿色是已验证无误。他没有直接修改对方的文件,而是把所有差异点整理成一份单独的文档,附了每条差异对应的原始数据来源和时间戳。他的做法和对待家里所有文件一样——逐条核对,逐项标注,不留任何模糊地带。她发现他在整理这份差异报告时,完全按照证据链的逻辑来组织:先列出原始数据,再列出对方的标注结果,最后附上自己的分析。这不是在追究责任,是在追溯问题的根源。

『加入书签,方便阅读』