#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
【无标题】
最新推荐文章于 2024-10-16 18:40:11 发布
文章通过Python的pandas库处理指数数据,计算特征指标X和决策变量Y。接着,使用支持向量机(SVM),逻辑回归和多层感知器(MLP)三种模型进行训练和预测,分别评估了它们在训练集和测试集上的预测准确率。
摘要由CSDN通过智能技术生成