首先解释一下标题:
CNN:卷积神经网络(Convolutional Neural Network), 在图像处理方面有出色表现,不是被川普怒怼的那个新闻网站;
股票涨跌:大家都懂的,呵呵;
股票图片:既然使用CNN,那么如果输入数据是股票某个周期的K线图片就太好了。当然,本文中使用的图片并不是在看盘软件上一张一张截下来的,而是利用OHLC数据“画”出来的;
尝试:这个词委婉一点说就是“一个很好的想法_",比较直白的说法是“没啥效果T_T”。


进入正题:
首先是画出图片。本文目前是仿照柱线图画的。

大致的想法是:

  1. 对每个样本,将32time_steps×4features(OHLC)数据归一化处理,即所有取值均在[0,1]之间;
  2. 构建一个128×128像素的全0数组,将[0,1]区间等分为128份,分到每列的128个像素点上;
  3. 然后使用每四列构建一根K线(前三列画柱状线,第四列作为间隔行):第一列描绘开盘价,开盘价与该列的哪个像素点最近,那么这个像素点取值就由0变为1;第二列描绘高低价区间,将 最高价至 最低价 范围内的像素点取值由0变为1;第三列描绘收盘价,收盘价与该列的哪个像素点最近,那么这个像素点取值就由0变为1。

这样每个样本就构建了一张由32根K线组成,类似柱线图的“图片”,下面是一个样本画的一张图(为了便于观看,将0替换成空格,将1替换成圆点):

其实还蛮像柱线图的。

测试阶段:
原始数据:最终选择的数据是100只2005年以前上市的股票。1只股票数据太少,全部股票数据又太多,所以 股票三千,我只取一百;“上市时间前于2005年”这个条件 主要考虑在每只股票上取样数量不会太少。

生成样本:每只股票每32根K线生成一个样本,每隔8根K线取一次样。然后按照上述作图方法将其变成图片。标签:若未来五日收益为正,标签为[1,0],否则,标签为[0,1]。15年1月1日之前数据用作train和evaluate,之后数据用作test。

构建模型:本文所用模型共5层,先后顺序为 卷积层-池化层-卷积层-池化层-全连接层,中间还夹杂了两个Dropout和一个Flatten,用来防止过拟合和一维化数据,不过由于他们是无权重的,所以没将他们算作一层。

预测效果
在train和evaluate阶段,看起来还是不错的:

但是在test阶段:


第一个值是loss,第二个值是准确率,不要看反。。。呵呵

听说有一种很厉害的操作——去除label不明显的样本——可能会提高模型效果。所以本文又对训练样本进行了一次筛选,只保留了未来五日收益在最前30%和最后30%的样本。然后input到模型做训练。最终test集上效果:


有(mei)所(sha)改(xiao)善(guo)!

问题分析
目前发现的一个问题:一幅图中被标记的像素点太少了。下面两张图为train-evaluate样本和test样本中值为1的像素点占总像素点(128×128=16384)比重的分布。

值为1的像素点占总像素点比重平均不到5%,最大的比重也未超过10%。这说明在模型训练阶段有些像素点对应的weights仅仅被训练了很少的次数甚至未经训练,这影响了模型在test数据上的表现。之后可能会针对这一问题做一些改进,以增加每张图值为1的像素点占总像素点比例

原文附详细代码:利用CNN对股票“图片”进行涨跌分类——一次尝试

BigQuant——人工智能量化投资平台

利用CNN对股票“图片”进行涨跌分类——一次尝试【附源码】相关推荐

  1. lda进行图片分类_利用CNN对股票“图片”进行涨跌分类——一次尝试

    首先解释一下标题:CNN:卷积神经网络(Convolutional Neural Network), 在图像处理方面有出色表现,不是被川普怒怼的那个新闻网站:股票涨跌:大家都懂的,呵呵:股票图片:既然 ...

  2. echarts实现3D地图,轮播功能、背景图片、鼠标悬浮展示数据,附源码!

    echarts实现3D地图,轮播功能.背景图片.鼠标悬浮展示数据,附源码! 一.图片效果 二. 代码 一.图片效果 由于本地图片上传失败,无法展示完整的,不过是在此图的基础上加了轮播和底纹 二. 代码 ...

  3. QT界面免费版开源图片转文字工具程序完整版附源码

    QT界面免费版开源图片转文字工具程序完整版附源码 需求源码的朋友请留言 操作步骤如下:

  4. 【数据挖掘】利用sklearn进行数据预处理讲解与实战(超详细 附源码)

    需要源码和PPT请点赞关注收藏后评论区留言私信~~~ scikit-learn提供的数据预处理相关的功能如下图 1. 数据标准化.平均去除和方差缩放 sklearn.preprocessing.sca ...

  5. chainer-图像分类-整体结构设计【附源码】

    文章目录 图像的发展史及意义 一.图像分类框架搭建 二.数据集的准备 1.数据集描述 2.数据集准备 三.基于chainer的图像分类框架构建 1.导入主要的第三方库 2.数据加载器 3.模型构建 4 ...

  6. android仿疯狂猜图源码,Android开发实现高仿优酷的客户端图片左右滑动切换功能实例【附源码下载】...

    本文实例讲述了Android开发实现高仿优酷的客户端图片左右滑动切换功能.分享给大家供大家参考,具体如下: 本例是用ViewPager去做的实现,支持自动滑动和手动滑动,不仅优酷网,实际上有很多商城和 ...

  7. 35行代码利用python生成字符画,非常适合初学者练习,附源码!

    python字符画是一个简单有趣的小程序,非常适合初学者进行学(zhuang)习(bi).python字符画生成的原理及其简单,一句话概括就是----将图片像素点用不同字符代替,从而将像素组成的图片转 ...

  8. 用Python玩弄微信朋友圈,一键制作好友图片墙酷炸朋友圈(附源码)

    上午发了张我微信近 2000 位好友的头像拼图,让大伙儿看能不能快速找到自己的头像,没想到反响很强烈,引得阵阵惊呼与膜拜,没有料到. 有没有犯密集恐惧症?这并不震撼,如果你有 5000 位好友的话,做 ...

  9. python利用百度AI进行图片识别与分类

    python利用百度AI进行图片识别与分类 声明 此博客纯属记录我学习的过程,是本人的一次大作业,如果程序中有问题或者有更好的实现方法希望各位前辈多多指点 背景 大多数人的相册都是乱七八糟的,动物的照 ...

最新文章

  1. 二分类问题:基于BERT的文本分类实践!附完整代码
  2. 综述 | Google-斯坦福发布深度学习统计力学
  3. “智源 — INSPEC 工业大数据质量预测赛” 上线,为硬核工业制造炼就 AI 之心...
  4. C++中常用的字符串函数
  5. 前端获取div里面的标签_web前端教程JavaScript学习笔记DOM
  6. VTK:可视化之HanoiInitial
  7. Oracle数据库 ORA-01555 快照过旧 (undo表空间:撤销表空间)
  8. .net面试题大全,绝大部分面试题
  9. 怎么判断两颗二叉树相等
  10. Opencv--(x,y),(width,height)及(cols,rows)的关系
  11. OK335xS canutils deal with compile error
  12. ie6,ie7兼容性总结
  13. 树莓派安装摄像头 C110 motion
  14. ubuntu安装ffmpeg_手把手教你利用ffmpeg制作一个好用灵活的图片、视频压缩工具(再不需要去别的网站和用别的软件啦)...
  15. 网络数据库的复制和同步(一)
  16. 如何使用ArcGIS Pro制作三维地图
  17. easyswoole的安装
  18. Exception in thread main java.util.UnknownFormatConversionException: Conversion = ';'
  19. 揭开Java上传下载功能的神秘面纱
  20. 中国企业学习管理系统(LMS)市场趋势报告、技术动态创新及市场预测

热门文章

  1. 穿衣服搭配软件大全,穿衣服搭配软件哪个好?
  2. 网络爬虫-爬取京东商品评价数据
  3. Tryhackme-h4cked
  4. DAMA国际认证 CDMP题库预览题 带翻译和解析
  5. window窗口运行机制
  6. 8.Unity经验:TimeLine 制作过场动画
  7. 腾讯云十周年庆丨COSCI 回馈好礼
  8. 电脑通过禁止运行wpscenter.exe的方法屏蔽WPS广告
  9. composer切换源_composer全局更换镜像源的教程
  10. 【运维知识基础篇】Linux常用基础命令(四)