专栏首页量化投资与机器学习【独家发送】机器学习该如何应用到量化投资系列(四)——关于涨跌的思考基于Python

【独家发送】机器学习该如何应用到量化投资系列(四)——关于涨跌的思考基于Python

编辑部

微信公众号

关键字全网搜索

『量化投资』:排名第一

『量 化』:排名第二

『机器学习』:排名第三

我们会再接再厉

成为全网优质的金融、技术技类公众号

系列文章(点击即可查看)

机器学习该如何应用到量化投资系列(一)

机器学习该如何应用到量化投资系列(二)

机器学习该如何应用到量化投资系列(三)

目录

⊙机器学习 & scikit-learn简介

⊙HS300历史数据特征一览

⊙基于历史涨跌的机器学习预测模型构建字

机器学习 & scikit-learn简介

简单说:机器学习算法是一类从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法。用一张图说明它所包含的内容:

我们把目光集中到上图中的有监督学习,它是指数据中包括了我们想预测的属性,有监督学习有以下两类:

  • 分类(Classification):样本属于两个或多个类别,我们希望通过从已标记类别的数据学习,来预测未标记数据的分类。例如,识别手写数字就是一个分类问题,其目标是将每个输入向量对应到有穷的数字类别。从另一种角度来思考,分类是一种有监督学习的离散(相对于连续)形式,对于n个样本,一方有对应的有限个类别数量,另一方则试图标记样本并分配到正确的类别。
  • 回归(Regression):如果希望的输出是一个或多个连续的变量,那么这项任务被称作回归,比如用年龄和体重的函数来预测三文鱼的长度。

之前对这块没啥接触的伙伴,Andrew Ng 的课是不错的入门选择,另外这里还有一份关于它的笔记。

·········································································

scikit-learn是一个基于NumPy、SciPy、Matplotlib的机器学习包,主要涵盖了分类、回归和聚类等机器学习算法,例如knn、SVM、逻辑回归、朴素贝叶斯、随机森林、k-means等等,简言之:是一只强大的轮子。官网有个很好耍的例子:安德森鸢尾花品种亚属预测。

我们有一百五十个鸢尾花的一些尺寸观测值:萼片长度、宽度,花瓣长度和宽度。还有它们的亚属:山鸢尾(Iris setosa)、变色鸢尾(Iris versicolor)和维吉尼亚鸢尾(Iris virginica)。我们使用这些数据,从中学习并预测一个新的数据。在scikit-learn中,通过创建一个估计器(estimator)从已经存在的数据学习,并且调用它的fit(X,Y)方法。代码如下:

HS300历史数据特征一览

输出每日涨跌统计:

True 1379 False 1185 dtype: int64

可见过去十年中,有1379个交易日是上涨的,而1185个交易日下跌。画个图对比下:

从图来看差距还是很明显,看来如果心情以每日涨跌来决定的话,快乐的时光还是更多的,真是A股的正能量。

进而统计每日收益率的特征:

可以看到过去2000多个交易日中,沪深300单日涨幅最大为8.5个点(大奇迹日),单日跌幅最大为9.5个点(大盘跌停)。

曲线以零为轴上下震荡,可以看到曲线有两大宽幅波动的区间,一个是07年的牛市,另外一个,就是我们现在这个渐行渐远的......似乎开始向0轴收敛的......虽然宽幅波动这意味着风险增强,但同时也诉说着交易市场的活跃,宽幅波动的开端暗示着牛市脚步的靠近,末端预示着牛儿的即将远行。

根据每日收益率的历史数据还可进一步绘制频率分布直方图并使用Kernel Density Estimate对数据进行拟合:

是一个标准正态分布,可是如果仔细瞅瞅你会发现,涨跌幅靠近零轴,涨强跌弱;而涨跌幅远离零轴的位置,跌强涨弱。也就是,微涨与微跌,微涨的情况更为显著,大涨与大跌,大跌分布更为明显。

基于历史涨跌的机器学习预测模型构建

上面介绍了机器学习的基本概念、scikit-learn的使用以及我们的数据——HS300指数数据的特征及分布,下面正式进入机器学习实战中。讨论的问题主要有三点:

  • 机器学习估计器的选择,即我们使用何种算法进行我们的预测。
  • 训练集样本数量的选择,即我们每次预测结果之前使用多少条训练集合的样本。
  • 涨跌时间窗口的选择,即我们每个样本中的特征个数,我们训练集每个单元包含连续多少个交易日的涨跌。

机器学习估计器的选择

事实上,机器学习应用中一个很棘手的问题就是根据自己问题的实际找到一个合适的估计器,不同的估计器适合于不同类型的数据以及研究的对象,下面这张图给出了一个粗暴的引导:

按图索骥,把目光聚焦到图的左上角,最终选择的结果为:EnsembleClassifiers、LinearSVC、KNeighborsClassifier.另外JMLR这儿有篇神奇的文章: Do we Need Hundreds of Classifiers to Solve Real World Classification Problems?,文章测试了179种分类模型在UCI所有的121个数据上的性能,发现Random ForestsSVM 性能最好。为此,我们的EnsembleClassifiers选择RandomForestClassifier,即我们最终想在RandomForestClassifier、LinearSVC、KNeighborsClassifier中比较比较。

将CSI300数据与另外15只随机选择的股票,保证相同的训练集样本数量与时间窗口的情况下,分别使用RandomForestClassifier、LinearSVC、KNeighborsClassifier这三种估计器进行学习,与此同时通过计算预测的胜率来比较各自的表现。

可以看出,KNeighborsClassifier表现明显逊于RandomForestClassifier、LinearSVC,它的波动较大且胜率与另外两者比也不理想。下面就使用RandomForestClassifier作为估计器做测试。

训练集样本数量的选择

训练集样本数量一定程度制约了预测结果的准确性,理想情况下我当然希望每次做预测的样本数量越多越好,但是你知道理想很骨感的,训练集样本数量一方面受实际总的数据量限制,另外,计算的资源与时间也是制约的一个因素。我们最终要形成某种程度的妥协,即保证相当程度的预测效果下选择最小的训练集样本数量。于是我们计算样本数从1~300范围内的胜率,有了下面的代码:

可以看出,控制其它条件不变的前提下,随着样本数量的增多,胜率逐步提高结果更为稳定并且最后维持在0.52~0.53左右波动,为了节约计算资源以及考虑到历史数据的总量,选择100个训练集样本数是较为合理的。

涨跌时间窗口的选择

一个共同点是:每次曲线的开端都会存在倒塌式下滑,而后稳定震荡于0.5扔硬币的概率左右。也就是说,动量是存在的,只不过很小(结合前面两节的试验结果其期望处于0.53这个位置),且时间窗口很短,超出这个时间窗口,预测问题就转化为扔硬币问题。

总结

上文讨论了三个变量对预测结果的影响,结果并不满意,一方面daybar的数据量局限,一方面,总会有没注意到的细节且训练数据的维度较低。但是这个探索路途很有意思。后续还可以有很多可以扩展尝试的地方,比如把涨与跌分类为大涨大跌小涨小跌,比如再把交易量的数据加入训练集。

话说细分涨跌的代码分享如下:

本文分享自微信公众号 - 量化投资与机器学习(ZXL_LHTZ_JQXX),作者:陆东旭

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-01-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 统计学家范剑青:机器是怎么学习金融的?

    范剑青是国际数理统计学会创办70年以来第一位华人主席,也是统计旗舰杂志《统计年鉴》的第一位华人主编,论文引用数多年位列世界数学家前十名,是素有统计学诺贝尔奖之称...

    量化投资与机器学习微信公众号
  • 2019Kaggle最新DS&ML报告:你大爷还是你大爷!

    近日,Kaggle发布了名为《2019Kaggle数据科学和机器学习概要》的报告。此报告为Kaggle对其社区的第三次年度调查,调查内容来自19717个Kagg...

    量化投资与机器学习微信公众号
  • 人工智能和另类数据:夸大其词 or 确有其用?

    前不久在纽约参加Alpha Events主办的人工智能会议,下面是我的一些感想分享给大家,仅供参考。

    量化投资与机器学习微信公众号
  • 机器学习初创公司出路,投资人看好医疗诊断、计算生物和供应链等 9 大方向

    【新智元导读】作者 Medha Agarwal 是 Redpoint Ventures 的投资人,本文带来了作者认为成功的 AI 初创公司的特质,以及对搞机器...

    新智元
  • 程序员转型AI,这里有最全的机器学习介绍+应用实例

    编译 | AI科技大本营 参与 | 张子琦 编辑 | 明明 机器学习是人工智能的一个分支,已经成为当今最热门的趋势之一。据Gartner公司预测,到2020年,...

    AI科技大本营
  • Elasticsearch X-Pack 系列之 Machine Learning 解析

    提示:公众号展示代码会自动折行,建议横屏阅读 1 背景   目前腾讯云 CES(Cloud Elasticsearch)支持了多项商业特性,例如基于角色的访问...

    腾讯数据库技术
  • 机器学习的本质就是数理统计?答案可能没这么简单

    可能许多刚刚接触 AI 的新人们都产生过类似这样的疑问:机器学习和数理统计,究竟有什么本质区别?不都是玩数据的么。 如果从传统意义上的数据分析师的观点来说,这个...

    AI研习社
  • Elasticsearch X-Pack 系列之 Machine Learning 解析

      目前腾讯云 CES(Cloud Elasticsearch)已经和 Elastic 官方达成商务合作,引入了 X-Pack 商业套件,支持更多的商业特性,例...

    黄华
  • 专家们最常用的15款机器学习工具

    机器学习是一项令人惊叹的技术。如果掌握了正确的使用方法,机器学习技术将势不可当。建造一个在很大程度上表现得像人类的机器,将是多么吸引人。精通机器学习工具有利于处...

    人工智能小咖
  • 一名前端工程师的机器学习之旅

    摘要 美登科技前端工程师邓鋆分享自己的机器学习之旅心路历程。 ? 未来的前端 多元输入。现有的输入从最早的键盘鼠标到现在的触屏,以后可能会是语音和手势。 另外一...

    IT大咖说

扫码关注云+社区

领取腾讯云代金券