基于SVM的股票预测 Python实现 附Github
2016-12-30 21:32
671 查看
SVM 支持向量机
原理就不赘述了,其余的文章有讲过。SVM是一种十分优秀的分类算法,使用SVM也能给股票进行一定程度上的预测。核心
因为是分类算法,因此不像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/相关文章推荐
- 基于ARIMA的股票预测 Python实现 附Github
- Python语言基于Tensorflow实现RNN(预测)
- 统计学习方法:基于SMO算法的SVM的Python实现
- 基于小波变换的时间序列预测,Python实现,来自雪球,
- 机器学习经典算法详解及Python实现--基于SMO的SVM分类器
- python实现基于SVM手写数字识别功能
- 小波分析 + 支持向量机(SVM)预测股票涨跌幅的实现作者:k474905973
- 小波分析 + 支持向量机(SVM)预测股票涨跌幅的实现
- 利用python,基于SVM实现文本分类
- 基于QQ云输入法,用python实现的输入法(demo 版)
- python 基于XML生成静态网页的简单实现
- python实现基于CGI的Web应用
- 【SVM之菜鸟实现】 python版
- 基于Levenberg-Marquardt训练算法的BP网络Python实现
- 基于Levenberg-Marquardt训练算法的BP网络Python实现
- Python基于OpnenCV实现人脸识别
- 股票预测程序设计思路与实现 <持续更新>
- SVM实现多分类的程序基础工作(三)——基于纠错编码的SVM多类分类算法和基于二叉树的多类SVM算法的基本思想
- 【Python】基于kNN算法的手写识别系统的实现与分类器测试
- 用Python实现基于依赖关系的排序