前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python实现基于SVM的股票预测

Python实现基于SVM的股票预测

作者头像
机器学习AI算法工程
发布2018-03-14 16:48:35
3.2K0
发布2018-03-14 16:48:35
举报

核心

因为是分类算法,因此不像ARIMA一样预测的是时序。分类就要有东西可分,因此将当日涨记为1,跌记为0,作为分类的依据。使用历史数据作为训练数据。

处理数据

  1. 股票历史数据来源于yahoo_finance api,获取其中Open,Close,Low,High,Volume作为基础。因为除去Volume以外,其余数据都是Price,基于Price并不能很好的表达股票的特性,或者说并不太适用于SVM分类算法的特性。基于SVM算法的特性,股票并不是到达一个价格范围就有大概率涨或跌(不知道我这个表达大家能不能看懂)。

2.基于上述原因,我决定将Price转换成另一种形式的数据。例如:High-Low=全天最大价格差,Open-YesterdayOpen=当天Open价格变动,Open-YesterdayClose=开盘价格变动。(我也并不太懂经济学,仅仅是为了寻找另一种更好的方案)

3.单纯地基于历史数据是完全不够的,因此还使用了R语言和tm.plugin.sentiment包,进行语义分析,进行新闻正面负面的判定。这块不是我做的,了解的并不多。新闻并不是每天都有的,这样的话新闻数据就显得有些鸡肋,无法在分类算法中起到作用,但是我们能在多个站点中提取,或是直接将关键字定为Debt(判断大众反应)。

4.这里仅仅是进行了两个站点的新闻挖掘,然后可通过rpy2包在Python中运行R语言,或是R语言得到的数据导出成Json,Python再读取。至此,数据处理告一段落。

SVM算法:

股票数据不能完全基于历史数据,因此需要一定数量的历史数据推出预测数据,例如这边使用了70天的数据训练,来推出后一天的股票涨跌,而不是所有的历史数据。

最后的成绩是53.74%的正确率,对于一个基本使用历史数据来预测股市的方法而言已经是个不错的结局了。

源码Github

https://github.com/jerry81333/StockProdiction/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-01-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据挖掘DT数据分析 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 处理数据:
  • SVM算法:
  • 源码Github
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档