山西省诚信建设网站,wordpress标题加密,旅游网站模板源码,建设官方网站的主要作用文章目录 参考机器学习简介策略简介SVM简介整体流程收集数据准备数据建立模型训练模型测试模型调节参数 参考
Python机器学习算法与量化交易 利用机器学习模型#xff0c;构建量化择时策略
机器学习简介
机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。… 文章目录 参考机器学习简介策略简介SVM简介整体流程收集数据准备数据建立模型训练模型测试模型调节参数 参考
Python机器学习算法与量化交易 利用机器学习模型构建量化择时策略
机器学习简介
机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。机器学习算法是一类从数据中自动分析获得规律并利用规律对未知数据进行预测的算法。因为学习算法中涉及了大量的统计学理论机器学习与推断统计学联系尤为密切也被称为统计学习理论。
机器学习的常见算法包括决策树、朴素贝叶斯、支持向量机、随机森林、人工神经网络、深度学习等。
策略简介
输入沪深300的行情数据到支持向量机中进行模型训练预测沪深指数第二天的涨跌。 Why SVM? 因为数据集为沪深300的日线行情数据总共只有几千个交易日样本点而SVM的小样本预测准确率较高并且能够解决非线性分类问题所以比较适合。 SVM简介
SVM最初的设计用来解决二分类问题比如沪深指数的涨和跌通过寻找一个最大间隔超平面图中黑色斜线将两类样本线性区分开并保证两侧样本的最近边缘点到这个平面的距离最大由于最大间隔超平面仅取决于两个类别的边缘点例如上图中被红线和蓝线穿过的红点和蓝点这些点就被称为支持向量。 数据集并非总是线性可分的如下图。
对数据非线性可分的情况SVM引入了核函数将低维不可分的数据映射到线性可分的高维如下。 常用的核函数有 但在现实当中由于噪声和极端样本点的存在数据集无论在低维还是高维都可能出现线性不可分的情况于是乎SVM当中引入了松弛变量的概念允许了最大间隔超平面不用完美区分两个类别允许错误分类的存在SVM通过惩罚系数C控制这些错误分类的容忍程度C值越高分类准确率越高但数值过高容易导致过拟合C值过低则会导致准确率受损。
整体流程
收集数据
tushare接口
准备数据
借助TA-lib库计算以下因子
EMA加权的指数移动平均线更重视近期值反应价格在某个时间段的趋势。价格波动率衡量价格波动幅度的大小。价格斜率衡量价格走势的变化速度。RSI衡量股价走势力量和速度基于价格变动的大小和速度通过计算最近一段时间内股价涨跌幅度的平均值将过去一段时间内的涨跌幅度转化为0到100之间的数值。威廉指标值通过分析一段时间内的最高价、最低价和收盘价之间的关系来衡量市场波动的强度在判断超买和超卖状况方面有较好的效果。
给每个样本点打上标签计算出每个样本点第二天的涨幅如果涨则设置标签为1跌则设置标签为0。
建立模型
使用SVM模型
训练模型
将数据集的80%作为训练集剩余20%作为测试集。对数据集进行标准化处理(原始值 - 均值) / 标准差以尽量消除不同因子量纲的差别如EMA均值为2919.6而RSI均值为52.7。将训练集数据输入SVM中实例化sklearn的svm后把训练集因子数据和对应标签传入fit函数惩罚系数1.0核函数为RBF开始训练。
测试模型
调节参数
现在使用的5个因子还没有反应到价格波动的本质还可以增改更多的因子。
还比如说SVM模型当中的惩罚系数C过小对错误样本的容忍度过高RBF核函数不适合作为这个数据集的映射转换函数。