【无标题】

文章通过Python的pandas库处理指数数据,计算特征指标X和决策变量Y。接着,使用支持向量机(SVM),逻辑回归和多层感知器(MLP)三种模型进行训练和预测,分别评估了它们在训练集和测试集上的预测准确率。
摘要由CSDN通过智能技术生成
#1.计算特征指标 X ,即A1~A7。示例代码如下:
 import pandas as pd
 td = pd . read _ excel ('index300.xlsx')
A1= td ['Idxtrd05']. values / pd . rolling _ mean ( td ['Idxtrd05']. values ,10)A2-td['ldxtrd06']. values / pd . rolling _ mean ( td ['ldxtrd06']. values ,10)A3= td ['Idxtrd08']. values
A4= td ['Idxtrd03']. values / pd . rolling _ mean ( td ['ldxtrd05']. values ,10)A5= td ['Idxtrd04]. values / pd . rolling _ mean ( td ['ldxtrd05']. values ,10)A6= td ['Idxtrd03']. values - td ['Idxtrd04']. values
A7= td ['Idxtrd05']. values - td ['Idxtrd02']. values
 X =['A1':A1,'A2:A2,'A3':A3,A4:A4,A5":A5,A6':A6,A7":A7) X = pd . DataFrame ( X )
 X = X . iloc [9:-1,]#注意 X 从第10行数据开始,至倒数第1行。
#2.计算决策变量 Y 。示例代码如下:
#错位相减,获得指数的涨跌额,2 to end ,减去1 to end -1 Y = td ['Idxtrd05']. values [1:]- td ['ldxtrd05']. values [:-1]# Y 与 X 的下一个交易日对应,故 Y 的值从第11行数据开始
#由于错位相减的时候是从第2行开始,故指标从第10行开始取
 Y = Y [9:]
#走势标识设置
 Y [ Y >0]=1
 Y [ Y <=0]=-1
#对 Y 值的
 Y = Y . reshape ( len ( Y ),1)
#1.训练样本与测试样本的划分:
 x _ train = X . iloc [: len ( X )-30,:] Y _ train = Y [: len ( Y )-30] x _ test - X . iloc [ len ( X )-30:,:]
 Y _ test = Y [ len ( Y )-30:]
#2.模型训练与求解:
#支持向量机模型
 from sklearn import svm clf = svm . SVC ( kernel =' rbf ') clf . fit ( x _ train , Y _ train )
rv1= clf . score ( x train , Y _ train );
 R - clf . predict ( x _ test )
 R = R . reshape ( len ( R ),1)
 Z = R - Y test
Rs1= len ( Z [ Z ==0])/ Ien ( Z
#.3逻辑模型:
 from sklearn . linear _ model import LogisticRegression as LR
 Ir = LR ()#创建逻辑回归模型类
 Ir . fit ( x _ train , Y _ train )#训练数据
rv2= Ir . score ( x _ train , Y _ train );#模型准确率(针对训练数
据)
 R = Ir . predict ( x _ test )
 R = R . reshape ( len ( R ),1)
 Z = R - Y test
Rs2-len( Z [ Z ==0])/ Ien ( Z )
4.神经网络模型:
 from sklearn . neural _ network import MLPClassifier
 cIf = MLPClassifier ( solver =' lbfgs ', alpha =1e-
5, hidden _ layer _ sizes =(5,2), random _ state =1)
 clf . fit ( x _ train , Y _ train );
rv3= clf . score ( x _ train , Y _ train )
 R = clf . predict ( x _ test )
 R = R . reshape ( len ( R ),1)
 Z = R - Y test
Rs3= len ( Z [ Z ==0])/ Ien ( Z )
5.输出:

 print ('支持向量机模型准确率:',rv1) print ('逻辑模型准确率:',rv2) print ('神经网络模型准确率:',rv3) print ('---
---')
 print ('支持向量机模型预测准确率:',Rs1)
 print ('逻辑模型预测准确率:',Rs2) print ('神经网络模型预测准确率:',Rs3)
6.执行结果

支持向量机模型准确率:0.848780487805
逻辑模型准确率:0.570731707317
神经网络模型准确率:0.507317073171
支持向量机模型预测准确率:
0.7666666666666667
逻辑模型预测准确率:
0.7666666666666667
神经网络模型预测准确率:0.8

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值