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

本文介绍了一个使用SVM模型预测股票涨跌的Python项目,涉及数据预处理、模型训练、参数设置及策略构建。通过调整训练集大小,强调了数据量对模型性能的影响,并展示了策略评价指标。
摘要由CSDN通过智能技术生成

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

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

也稍微打个小广告,简书上如果有需要做毕业设计的同学可以找我私聊哦。而且如果只是简单咨询一些技术问题,学长会很热心得解答。

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

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

流程图

Quotation Flowchart.jpg

参数设置

class Para:

method = 'SVM' #模型选择为SVM

month_in_sample = range(1, 7 + 1) #训练集数据对应月份

month_test = range(8, 12 + 1) #测试集数据对应月份

percent_select = [0.3, 0.3] #正反例股票选取比例

percent_cv = 0.1 #交互验证机占样本内数据比例

path_data = 'C:/my python/python code/stock predict/Datas/Tests/Tests/' #输入数据文件路径

path_result = 'C:/my python/python code/stock predict/Datas/Results/' #输出数据文件路径

seed = 42 #random seed设置随机种子,制造伪随机数

svm_kernel = 'linear' #支持向量机的核函数类型

svm_c = 0.01 #线性支持向量机的惩罚系数

para = Para()

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

数据读取以及标记

#function: label data

#3数据标记

def label_data(data):

data['return_bin'] = np.nan #在data表格最后添加一列,并命名为return_bin,这一列将记录每个样本的标签

data = data.sort_values(by = '超额收益', ascending = False) #将整个表格按照return列的值降序排列

n_stock_select = np.multiply(para.percent_select, data.shape[0]) #选取的股票个数

n_stock_select = np.around(n_stock_select).astype(int) #将上行所选取的股票个数取整,注意n_stock_select是个含有两个整数的列表

data.iloc[0:n_stock_select[0],-1] = 1

data.iloc[-n_stock_select[1]:, -1] = 0 #这两行将表现好的股票标签置1,差的置0

data &

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值