/VirtualCompete

全球AI挑战赛之虚拟股票预测

Primary LanguagePython

全球AI挑战赛之虚拟股票预测

一、比赛介绍

1.简介:

对股票价格趋势的预测是金融领域极为复杂和极为关键的问题,有效市场假说认为股票价格趋势不可能被预测,然而真实市场由于各种因素的存在并不完全有效,这对于股票市场而言相当于一种“错误”。这里我们为参赛者提供了大规模的股票历史数据,从而可以通过集合大家的智慧来纠正股票市场的这些“错误”。

2.数据说明:

数据集包括训练数据集和测试数据集两部分,训练数据集用来进行模型训练,是一个以逗号分隔的文本文件(csv),格式示例:

id feature0 ... weight label group1 group2 era
0 0.254232 ... 9.0 1.0 1 5 1.0
1 0.763212 ... 3.0 0.0 7 87 1.0

其中id列为数据唯一标识编码,feature列为原始数据经过变换之后得到的特征,weight列为样本重要性,label列为待预测二分类标签,group1和group2是两列类别特征,era列为时间区间编号(数值越小时间越早)。

二、特征选择及模型构建

拿到数据后,通过分析可以知道,数据特征维度为98维,并且每个维度都基本已经处理好了,因此,初期的想法是对所有特征,进行简单的归一化处理,然后用svm模型,然而,svm程序运行时间特别长,而且交叉熵比较高。之后,又通过降维处理,并且取一半的特征来用xgboost训练,在第11期效果比较不错,最后取得第一名的成绩。

然而在第12期,在测试集上比较差,很明显的过拟合,所以排名比较差。

在第13期,去除了降维处理,并且,取前一半的特征用xgboost处理,后一半特征用lightgbm处理,将两者的结果进行简单的加权融合,效果很不错,拿下第13期的冠军。

三、评估与性能分析

在本地采用了交叉熵做评估分析,除第9期,第12期外,线上和线下的结果差异不大,说明模型的效果很不错。经过调参发现,选择默认参数很不错。

选择xgb和lgb模型,除了效果不错外,其速度也是很不错的,实际上,svm的效果理论上是很不错的,但是其效率太慢,至少要运行8个多小时。

四、赛后总结

这次比赛是一次很好的锻炼,从实战中理解理论,熟悉了数据挖掘的一般过程。同时,可惜参加的比较晚,只是参加了最后5期的比赛,拿了两次周冠军,最终排名第10,希望能在以后的比赛中,能有更大的提升。

五、比赛排名