AI大赛答辩之宫保伟:成为投资制胜的重要法宝

AI大赛答辩之宫保伟:成为投资制胜的重要法宝
2018年08月29日 10:20 新浪财经

  新浪财经讯 8月29日,由中国证券投资基金业协会金融科技专业委员会联合易方达基金、华夏基金、阿里云、通联数据等举办,新浪财经独家媒体支持的“FDDC2018全球金融数据探索与发现大赛答辩会”在北京金融街威斯汀大酒举行。本次大赛有两大赛题,分别为“A股上市公司营业收入预测”与“A股上市公司公告信息抽取”。

  在营收预测赛题中,复赛排名第四名的“东风又绿江南岸”战队表示,解决问题方案的流程有五步,第一,预处理,包括缺失值的处理,及时的处理,重复数据的剔除,还有一些其他的规则。第二,特征构建,分为两个层次,一个是业务层次,就是刚才的重构部分。另外是统计层次,统计层次就是比较固定化了,所以我们把它直接写成函数自动化处理。 第三,特征筛选。第四,算法筛选参数调优。第五,模型融合。

  团队作品的不足就是数值加强算法没做,而且也没有在测试体系里边做。另外是遗传算法快速寻参的方案也没有实施,最后对log的变化只做了对3次3个比的测试。最后对模型融合的权重也没有做更细致的分析。

  据了解,“东风又绿江南岸”战队为四人组成的团队,皆为公司职员。其中,林建生毕业于韶关学院,物理学专业;宋云生毕业于中山大学,统计学专业;宫保伟毕业于延边大学,统计学专业;林刚毕业于广东工业大学,机械电子专业。

  以下是现场文字实录:

  东风又绿江南岸

  宫保伟:各位评委、各位同学,大家好!我们来自广州,可能除了国外的就是我们队的。我今天就给大家汇报一下我们组的一些方案,大家该从5个部分来讲,一个是团队的背景、赛题分析、算法方案和结果总结,最后是我们的参考文献。直奔主题快一点,现在我们四个人都在汽车行业混,另外的林刚是我们的同事,林建生也是我们的同事,宫保伟也是做自然语言处理的,汽车行业的车联网。

  PPT有一个要求,讲一下我们金融知识的构建过程。我们大概就读了几本书,一个是唐朝的《手把手教你读财报》,另外一个是《财务报表分析与股票估值》,一个是《机构投资者的创新之路》,然后是《中金:资产配置方法的系列》,然后是达摩达兰的《估值》这本书,产生我们平时也炒炒股,混混雪球的专栏,所以有一点金融方面的知识。

  根据耶鲁模式大卫•史文森的分析。机构投资者来说,他们的收益来讲,首先是资产配置,然后是投资、择股,然后是择时,提起量化第一印象是玩交易的数据,我认为资产配置这方面也有很多可以做量化的点。

  第一个点是收益与平衡,我们就有很多的模型,比如说均值方差模型和全天候模型和评价模型好几个点,然后再到资产配置的比例,资产配置比例确定之后会长期做再平衡,之间还可以做资产大类的状态转换模型,我们可以用马尔科夫链做资产和状态切换。再往上是行业的配比,再往上是个股选择,个股选择分为定量和定性,然后是财务报表分析,最后才到今天的题目“营收分析”。

  营收分析。在整个资产配置里边是很小的一个点,但它是基石类的点。我们觉得这是我们对赛题重要性的理解,如果你要做资产配置的话,营收分析和报表分析是很重要的。

  三大报表分析。我们做营收,但是报表中和营收相关的一些资产或者是一些科目是分开的,所以我们要对报表进行重构。比如:资产负债表。与营收相关的,首先分为运营资本的需求,另外有长期资产的需求,这些是和营收紧密相关的。其他的一些金融资产或者是长期股权投资相关性就弱一点,这个地方我们就做了三大报表之间生产关系的勾兑,然后我们就对这三大报表的各个科目按照关系做了重构,大概就在附件的Excel里边,估计也没办法展示。这是我们对题目的理解。

  赛题方案。我们对解决问题方案的流程。

  第一,预处理,包括缺失值的处理,及时的处理,重复数据的剔除,还有一些其他的规则。

  第二,特征构建,分为两个层次,一个是业务层次,就是刚才的重构部分。另外是统计层次,统计层次就是比较固定化了,所以我们把它直接写成函数自动化处理。

  第三,特征筛选。

  第四,算法筛选参数调优。

  第五,模型融合。

  先看特征构建这方面,从业务层和统计层来构建特征,业务层是上面报表的重构,第一项完成的,然后是各种比率,然后是各种的增速,同比、环比、比率的增速。最后基于这些已经构建出来的变量对未来做简单的预测,对未来的那些“三大报表”做简单的预测,这样业务层就构建出来了1000多个因子,这1000多个因子交给统计层,统计层做了4种处理,一种是缺失值的在监码,这里我们没有填充缺失值,一个报表中某一个科目缺失,可能代表着公司属于某一个行业,它本来就具有一定的特征,某一个变量缺失标0和1又产生一个新的变量。

  时间序列偏移,刚才第一位也讲了,把报表的时间序列往前偏移,我们做了5节偏移。

  百分位数离散化,后面用的模型都是竖状的模型,为了处理急值,原来急值的处理方法是把急值替换成比较合理的值,我们这里不替换直接把它切为几类,把它离散化来减弱急值对最终结果的影响。

  排序离散化,把每一个变量从大到小排序再生成Rutel(音)的变量,这样特征就两个层次完成了。

  有一句话是特征建不好,参数调到老,剔除一个特征可能会影响你1%的得分,但是参数在那儿调半天可能只影响你千分之一的得分,所以这个地方一定要慎重。我们在这个地方花了大量的时间,我们差不多总共建了15000的变量。

  然后是变量分析,做筛选。我们用的是随机森林数据的因子重要性排名。我们写了一个函数,你可以设定你输出的因子能够涵盖多少的信息量,如果说你涵盖100%信息量的话,你的加强的误差会达到多少,我们做了这样的分析。我们在比赛中选的是99%,我们选的变量是能够覆盖99%的分析,如果我们选99.9%的话这个成绩还会有上升,但是就会碰到第二个问题,你选的变量越来越多,但是你处理的数据会越来越大,你的耗时会越来越长。我们自己的电脑肯定在线下后边就跑不动了,在比赛的最终就选了99%的结果。最终筛出来的入模型的变量大概是有3200多个变量。

  这里给大家展示变量重要性的列表,我们也有输出,为什么没展示?我们用随机森林算法来做的话,随机森林有两个随机性,一个是对案例的随机性,一个是对特征的随机性,结果就导致每次输出的变量重要性的列表都不一样。可能入模型的先后不一样,列表就不一样,所以我们没有展示。结果前15的变量覆盖了50%的信息,这些变量大概都是和利润表和现金流量表相关的。

  模型的构建,我们这里对特征做了归一化,对目标变量做了对数的变换。之所以做对数变换,有些大公司确实比较大,第一张图显示营收呈现出极端的分布,我们测试了不同log底的结果。一般工商业是以10为底相对好一些,然后是归一化。归一化这一点很容易想到,如果你不做也会导致你的结果下降。

  模型参数选优的图。首先用了4个模型,一个是极端随机森林,一个是随机森林。最终随机森林看起来加强得分大概都在0.46、0.45这一片。后边我们又用了两个模型,一个xgb和gbr,但是他们两个模型随着很快,速度快就导致结果模型效果不是怎么好。所以我们在最后模型融合的时候把它们的权重降的比较低一点。

  结果分析。KPU图看起来还是比较好的,呈一条线,误差和企业的大小还是有关系的。我们做的最好的前100家平均收入大概在23亿,最差的大概就在44亿,所以和企业的大小还是有关系的。

  初赛总共进行了两次排名,大家的得分平均变化大概是在2%左右,随着样本两增大还是有变化的,有升、有降,这说明大家模型的侧重点还是不一样的。

  模型的实用性说明,数据整理花费的时间大概占40%,整理这样的数据就是为了预测营收结果。以后如果做其他预测的话,是不是也要重新整理模型?这是不用的,我们提前已经考虑了。在输出特征列表中,你随意把每一个科目往上提一格,输入模型就可以做这个科目的预测。这是一个特点。亮点,在这儿就不说了。说一下我们的不足。

  我们的不足就是数值加强算法没做,而且也没有在测试体系里边做。另外是遗传算法快速寻参的方案也没有实施,最后对log的变化只做了对3次3个比的测试。最后对模型融合的权重也没有做更细致的分析。

  我的分享大概就这些。

  主持人:好的,我们感谢东风又绿江南岸的分享,这个名字也是非常的有诗意。我们的评委对于刚才选手的陈述有没有什么想要讨论的?

  葛志雄:我就是有点好奇,前面一张片子里面看到你说对财务报表的指标进行重构,我这边是能够看到Excel的。能不能介绍一下重构前和重构之后,它对模型效果有什么样的影响吗?

  宫保伟:重构之后的话,Excel列出来的资产负债表大类里边,变量筛选的地方就会进入前几名,就会加到模型里边。但是如果不重构的话,那些资产负债表里边的很多变量就会被筛掉,所以重构之后的变量和营收的相关性会更好一些,但对最终的结果影响有多大我们没做。因为时间比较紧,又要把他们一个一个剔除来算。

  范华:有两个问题。一个是提到结果性对不同规模的贡献,我比较好奇是不是有一些行业预测的更准一些?有没有这个结论。另外,我想说你怎么去判断预测之后是运气的成分,还是说确实在以后有可持续性?

  宫保伟:因为我的行业是做一些工业数据的挖掘,刚才也说了最终得分的评比,我先说一下这一点。大家看起来都差千分之几的分,这个分统计上根本就不显著,因为每一次误测可能就会差百分之几,这样的评分如果只看绝对值是没有办法来评比的,我至少要做5次或者10次以上的平均得分来看大家做得结果是怎么样的,然后差异显著不显著。刚才也看到了,后续也测了一下,发现随着样本量的增大,大家的模型和效果都会出现分化,这可能和行业也比较相关。

  刚才您的第一个问题确实有行业的差异,比如说,银行业,我们大家都预测的很准,然后证券业就预测的不准,证券业随着行情的波动收入变化比较大。比如说,今天除了中信证券净利润是正的以外,其他的都是下降的,大概都是下降16%以上。所以证券行业和行情还是有紧密关系的。另外,一般工商业下边也会细分到很多行业,我们没有去测它们之间的差异的结果,没有去算,大概是这样的,主要还是和规模相关。

  尤海峰:跟刚才的问题相关,您刚才说各个行业效果可能会有差异,所以你在测Model的时候,你的Model是把所有行业的公司用Model来测,还是说其他的?有没有算过用不同行业用不同的Model,可能不同行业指标的重要也不一样,函数关系也会有很大的差别。

  宫保伟:我们刚开始讨论的时候是针对单个公司去建模,对每一家公司去建模,这样就基于两个考虑。一个是行业的不同,同一个行业竞争地位也不同,但是发现几个人都是在职的根本搞不定这项工作。另外,不同行业的结果是可以分析的,有一个半开源的叫to shall(音),里面是可以读各个公司的行业分类,但是行业分类也是不准的,随着并购的变化也会发生变化。而且我刚才说了有一些缺失值可能就是已经暗含了行业的归属,所以我们就没有去分行业去建模,没做这一步,只做了主办方给的一般工商业和证券业和保险业这几个类型的区分。

  主持人:好的,我们的点评行业到这里结束,让我们谢谢东风又绿江南岸的分享。我相信今天来到现场的选手一定准备了很多的内容,但是还是要请大家注意一下时间的控制,确实今天上午有5支战队,每支战队可能需要把控一下自己的时间。

  下面有请复赛排名第三的战队智能金融为我们带来赛题陈述,有请!

责任编辑:常福强

热门推荐

收起
新浪财经公众号
新浪财经公众号

24小时滚动播报最新的财经资讯和视频,更多粉丝福利扫描二维码关注(sinafinance)

7X24小时

Array
Array

股市直播

  • 图文直播间
  • 视频直播间