分类OR回归
在深度学习领域,大家简单的会将问题归为两类,分类问题,回归问题!像图像问题中的物体识别,自然语言处理中的语音识别都会使用分类算法来解决问题,时间序列预测和自然语言处理中的对话则使用回归算法来解决问题。事实上分类和回归没有能不能用来解决问题,只有适合不适合。本文将分别用分类和回归两种方式来讨论金融市场的预测!
首先,我们用分类算法开始,我们使用一个基础的CNN。数据我们不使用OHLCV,我们用一些技术指标,假定我们使用100个以天为周期的技术指标,以13天的技术指标做为我们的特征矩阵,这样我们有13x100个特征,我们预测周期为1天,也就是说我们用13天的技术指标来预测接下来1天的涨跌。有熟悉技术指标的同学要问了,有些指标是有长短周期的,比如均线相关的指标,这个没关系,比如你的长周期是26天,那么我们的技术指标数据从第26天开始就可以了,事实上TA-lib自动会帮你对齐好数据!我们步长为一天来生成一组feature和label,也就是说我们用第26-38天的技术指标做feature,label使用第39天的涨跌;然后接下来用第27-39天的技术指标做feature,label使用第40天的涨跌;依此类推。当然这部分工作用python来解决非常轻松。现在我们有了数据,并且它是按时间顺序排列的!我们如果这时直接去把数据给到我们的CNN模型,你会发现准确度会惊到你,你会欣喜若狂,认为找到了发财的捷径!Calm down,man!如果这么简单,满大街都跑着王思聪了!数据必须要shuffle,要随机打乱!要知道神经网络配上反向传播的厉害之处在于,你不能以任何直接或者间接的方式来告诉它答案,如果你的数据是按时间顺序正向排列,几个epoch之后,它就能知道你的答案藏在feature之中,你会说,我只是技术指标而已,从技术指标推断当天的涨跌是小儿科而已。你还可以做另外一个实验,将你的数据按时间顺序反向排列,你会发现只要1个epoch,你的模型就能将准确率做到100%!这就是validation的重要性了!只有当你的训练准确率和validation的准确率接近的时候,你才可以认为你的模型是拟合的!在金融序列预测的问题上,过拟合是家常便饭!所以千万要冷静,如果你的年化收益率超过50%,一定是你的 模型或者数据出了问题!不出意外的话,我们会发现使用多只股票数据构建的这个CNN模型基本上准确率是在50%左右,如果你用单只股票的话,你会发现准确率可能能到60%-70%,偶尔有些股票能到80%!惊不惊喜,意不意外!有的同学会说了,那我们就用单只股票嘛!你既然说到准确率能有这么高,一定是validation和training是接近的!这里会有另外一个问题,金融数据,尤其是股票数据会存在多个拟合态!这是什么意思呢?对于一只股票,你训练了十次,这十次里面有三次准确率都能达到70%,你去把这三个weight用来预测会发现,它们的预测结果大相径庭,你要说了,管它呢,我validation也可以到这么高,说明它们都是工作的!多个拟合态本质上是什么,是蒙,10次,蒙对了3次,70%的准确率要再打折扣,基本上还是50%!所以稳定的准确率非常重要!有同学要问了,既然你说基本上都能到50%,为什么我炒股是亏的呢,而且还亏那么多?有句话说的好,在A股,你最好的策略,是每天收盘前扔个硬币,正面持有或者买入,反面卖出!这话看着像玩笑,用合适的扔硬币周期,也许真的比你自己炒好的多!关键在于情绪,机器是没有情绪的,量化炒股的关键在于你要无条件的相信它,然后不断的完善你的系统,优化你的系统!有python基础的同学,其实可以做一件事情来证明这个观点,随机生成涨跌,应用到每一天,应用到A股每只股票,看看有多少股票是赚的,有多少是大赚的!答案会让你大吃一惊!你会觉得你看盘的时间纯属浪费生命!还有一点至关重要的是,准确率和回测的平衡会让你抓狂,高的准确率不代表高收益!不要问为什么,跌停的日子都预测错误是一件让人非常痛苦的事情!
接下来我们讨论回归模型,时间序列预测的例子Github上比比皆是!我们也说最简单的一个例子,我们使用13天的OHLCV数据,预测接下来一天的股价!这是一个很典型的模型,大家很容易在网上找到例子!使用LSTM来做预测!如果大家需要使用多只股票数据,那么很重要的一点,数据要做归一化。归一化无非两种方式:Z-core和Min-Max。听起来很高大上,其实很简单,以某值为中心比如0归一;而Min-Max即是将数据缩放到某一个区间,比如0-1之间!我们如果要使用多只股票的数据,一般我们将数据进行Min-Max归一化!我们预测出股价后可以将股价还原为原始股价!精度丢失?不存在的!由于我们的数据和label的特点,很多文章或者所谓的专业人士,用LSTM预测股价后,甩一张图给你,上面两条线,一条原始股价,一条预测股价,看着基本重合,感觉人生又到达了巅峰!不给回测数据的股票市场预测文章都是耍流氓,这种基本回测一坨屎!那么回归究竟工作不工作呢?
时间序列预测,回归是主菜,分类只是开胃小菜!怎么工作,我们肯定不是预测股价这么简单!了解更多深度学习和量化知识,请移步我的星球:AI量化(https://t.zsxq.com/RvfY37y) 星球限时免费,如需加入,请私信我获得免费邀请码!
零基础学习Python与深度学习应用请关注星球:Python与深度学习 https://t.zsxq.com/bUFayZ3
微信公众号:QTechAI
网友评论