最近接了一个私活,指导学妹完成毕业设计。核心思想就是利用SVM模型来预测股票涨跌,并完成策略构建,自动化选择最优秀的股票进行资产配置。

在做这个项目的过程中,我体会到想成为一个合格的数据分析或者数据挖掘工程师不仅技术要过关,还需要了解所要挖掘数据涉及到的领域的相关知识。举个例子,在做数据预处理的时候,不知道超额收益率是怎么个意思,查阅资料才了解,超额收益率是股票行业里的一个专有名词,指大于无风险投资的收益率,在我国无风险投资收益率即是银行定期存款。

废话少说,言归正传。这里有关SVM、PCA等等这些与项目相关的数学知识不会提及,我以后会在算法专题里详细描述。

本项目用pycharm + anaconda3.6开发,涉及到的第三方库有pandas,numpy,matplotlib,skllearn。

流程图

Quotation Flowchart.jpg

参数设置

这个就是参数的初始化,没有什么要说的。

数据读取以及标记

代码的基本功能注释里也写了一些,不过不够全面,我再详细说一下。这三部分代码所实现的功能是读取数据,并对数据进行预处理。我已经把最原始的数据整理好放在了excel表格里,并且将第一个月的全部股票的参数放在一个excel里,并将其命名为1.csv,以此类推,我爬取了157个月的数据,总共有157个excel。因此代码里循环的便是excel的文件名,也就是依次读取excel文件。因为数据量太大,所以我一般调试的时候只跑12个月。所以我在参数初始化阶段,训练集(1,8),测试集(8,12)。

数据截面.png

将数据读取到DataFrame表格里后,并不是全部使用,而是取超额收益值最好的前百分之三十,以及最差的后百分之三十,并在表格后追加一列,列名叫return_bin,将最好最差的百分之三十的股票的return_bin列各赋值1,0。然后将每个读取并加工的excel表格拼接在一起形成一个大表格,从总抽取70个因子作为X_in_sample,抽取return_bin作为y_in_sample作为训练集。

训练模型

这个也比较好理解,就是选择sklearn库里的svm模块对数据进行训练。svm模型是集成封装好的,拿来用就可以。

模型预测与评价

现在模型就训练好了,然后就那训练好的模型在测试集上来跑,看看情况到底如何。

模型评价.png

可以看到参数并不是多好,这是训练集上数据太少的原因。那我们来改动一下,把训练集改成(1,10),测试集改成(10,12)看看有没有改变。

模型评价2.png

训练集从只有6个月变成9个月(1-10在代码上体现为1-9),参数情况大有改观。可见数据对机器学习模型训练的重要性。

策略构建以及策略评价

所谓策略构建就是选择什么样的股票,代码里将股票按照超额收益率进行排序,然后我设置para.n_stcok_select = 3意思就是选择超额收益率前三名进行购买。

所谓策略评价这里采用的评价体系就是将选择的三支股票的每月超额收益率取平均值乘12,来作为这三只股票在该月的年化收益率。

Figure_1.png

Figure_2.png

以上两张图是选择不同月份做训练集后,模型策略的表现。

在这里还要提及的是这行代码,month_test = np.array(para.month_test)

month_test = month_test - 1。这个涉及到了np数组的高阶用法。一般数组是无法和数字做运算的,可是将普通数组用np.array()加工过后,变成了np数组,他拥有一个广播属性,可以直接与数字运算。该行代码就是将数组里每个元素都减1。

svm预测股价 python_python 利用SVM预测股票涨跌相关推荐

  1. python神经网络预测股价_用Python预测股票价格变化

    长短期记忆(英语:Long Short-Term Memory,LSTM)神经网络,是一种时间递归神经网络(RNN),该网络适合于处理和预测时间序列中间隔和延迟非常长的重要事件,如股票价格预测和水文预 ...

  2. python 预测足球_利用 Python 预测英雄联盟胜负,分析了 5 万多场比赛才得出的数据!...

    今天教大家用Python预测英雄联盟比赛胜负. Show me data,用数据说话 今天我们聊一聊 Python预测LOL胜负 目前,英雄联盟S10全球总决赛正在火热进行中,最终决赛于10月31日在 ...

  3. svm预测股价 python_小蛇学python(4)利用SVM预测股票涨跌

    最近接了一个私活,指导学妹完成毕业设计.核心思想就是利用SVM模型来预测股票涨跌,并完成策略构建,自动化选择最优秀的股票进行资产配置. 在做这个项目的过程中,我体会到想成为一个合格的数据分析或者数据挖 ...

  4. python支持向量机 股票_小蛇学python(4)利用SVM预测股票涨跌

    最近接了一个私活,指导学妹完成毕业设计.核心思想就是利用SVM模型来预测股票涨跌,并完成策略构建,自动化选择最优秀的股票进行资产配置. 在做这个项目的过程中,我体会到想成为一个合格的数据分析或者数据挖 ...

  5. 基于CCI与SVM的股价预测(菜鸟版)

    基于CCI与SVM的股价预测(菜鸟版) 一.前言 二.工作原理 1.CCI 解读 2.支持向量机原理 三.系统工作流程 1.获取用户输入,同时获取股票或指数列表,判断该证券是否存在. 2.获取日线数据 ...

  6. python应用(3)svm模型预测股票涨跌

    最近接了一个私活,指导学妹完成毕业设计.核心思想就是利用SVM模型来预测股票涨跌,并完成策略构建,自动化选择最优秀的股票进行资产配置. 在做这个项目的过程中,我体会到想成为一个合格的数据分析或者数据挖 ...

  7. ML之SVM:利用SVM算法(超参数组合进行多线程网格搜索+3fCrVa)对20类新闻文本数据集进行分类预测、评估

    ML之SVM:利用SVM算法(超参数组合进行多线程网格搜索+3fCrVa)对20类新闻文本数据集进行分类预测.评估 目录 输出结果 设计思路 核心代码 输出结果 Fitting 3 folds for ...

  8. ML之SVM:利用SVM算法(超参数组合进行单线程网格搜索+3fCrVa)对20类新闻文本数据集进行分类预测、评估

    ML之SVM:利用SVM算法(超参数组合进行单线程网格搜索+3fCrVa)对20类新闻文本数据集进行分类预测.评估 目录 输出结果 设计思路 核心代码 输出结果 Fitting 3 folds for ...

  9. ML之SVM:利用SVM算法对手写数字图片识别数据集(PCA降维处理)进行预测并评估模型(两种算法)性能

    ML之SVM:利用SVM算法对手写数字图片识别数据集(PCA降维处理)进行预测并评估模型(两种算法)性能 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 estimator = PC ...

  10. ML之SVM:基于Js代码利用SVM算法的实现根据Kaggle数据集预测泰坦尼克号生存人员

    ML之SVM:基于Js代码利用SVM算法的实现根据Kaggle数据集预测泰坦尼克号生存人员 目录 实验数据 设计思路​ 实现代码(部分代码) 实验数据 设计思路 实现代码(部分代码) /**js代码实 ...

最新文章

  1. 浅谈同一家公司多个系统,共用登录用户名和密码
  2. 为什么只有很少的人听说过西工大这个名字?
  3. http请求头状态码
  4. HTML的display属性将行内元素、块状元素、行内块状元素互相转换以及三者的区别
  5. 程序员山洞开发程序,两年敲45万行代码,网友:一般人扛不住
  6. 添加图标_图标变化、小程序添加到桌面...微信电脑版这些功能更新!
  7. HDU 1285 拓普排序 基本模板例题 确定比赛名次
  8. [No0000FF]鸡蛋煮熟了蛋黄为什么发黑?
  9. 算法笔记_面试题_1.爬楼梯
  10. 基于JVM原理JMM模型和CPU缓存模型深入理解Java并发编程
  11. 智能环境监测产品浪涌防护整改之TVS管
  12. php小小通讯录,小小通讯录
  13. 那些年我们错过的大话西游!!!
  14. 帮我起个名字,带淇,两个字的
  15. html文字段落设置,p字间距 html段落内文字设置字间距间隔
  16. uni-app 监听截屏事件和截图(ios)
  17. 【HISI系列】之HISI芯片码率控制使用说明
  18. 下载安装Java运行环境
  19. Matlab GUI中的hObjecthandles
  20. 兼容IE 下载EXCEL

热门文章

  1. 【PC工具】chrome谷歌浏览器最新离线安装版各种版本,最好用的浏览器没有之一...
  2. python微信库无法登录怎么办出现异常_微信出现异常登录了怎么办
  3. c语言课程设计作业心得体会,c语言课程设计总结心得
  4. 2017第15届上海国际礼品、赠品及家居用品展览会会刊(参展商名录)
  5. iOS 组件化加载本地 gif 图片
  6. java swing 图片gif_Java swing显示gif
  7. 大学语文 · 期末复习知识点汇总
  8. note同步不及时 one_解决无法同步 OneNote 的问题
  9. excel表格怎么换行?3个方法,你一定不知道第3个
  10. 域名注册绑定内网穿透项目部署