本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

码报:【j2开奖】周志华教授gcForest(多粒度级联森林)算法预测股指期货涨跌(4)

时间:2017-04-29 05:17来源:报码现场 作者:本港台直播 点击:
节点中执行拆分的最小样本数 在多粒度扫描随机森林训练期间。 如果int number_of_samples = int。 如果float,min_samples表示要考虑的初始n_samples的分数。 min_sa

  节点中执行拆分的最小样本数 在多粒度扫描随机森林训练期间。 如果int number_of_samples = int。 如果float,min_samples表示要考虑的初始n_samples的分数。

  min_samples_cascade:float或int(default = 0.1)

  节点中执行拆分的最小样本数 在级联随机森林训练期间。 如果int number_of_samples = int。 如果float,min_samples表示要考虑的初始n_samples的分数。

  cascade_layer:int(default = np.inf)

  允许的最大级联级数。 有用的限制级联的结构。

  tolerance:float(default= 0.0)

  联生长的精度差,整个级联的性能将在验证集上进行估计, 如果没有显着的性能增益,训练过程将终止

  n_jobs:int(default = 1)

  任意随机森林适合并预测的并行运行的工作数量。 如果为-1,则将作业数设置为核心数。

  #shape_1X样本维度,window为多粒度扫描(Multi-Grained Scanning)算法中滑动窗口大小,

  #用于扫描原始数据,tolerance为级联生长的精度差,整个级联的性能将在验证集上进行估计,

  #如果没有显着的性能增益,训练过程将终止#gcf = gcForest(shape_1X=4, window=2, tolerance=0.0)

  #gcf = gcForest(shape_1X=[13,13], window=2, tolerance=0.0)

  gcf = gcForest(shape_1X= 13, n_mgsRFtree= 100, window= 6, stride= 2, cascade_test_size= 0.2, n_cascadeRF= 4, n_cascadeRFtree= 101, cascade_layer=np.inf, min_samples_mgs= 0.1, min_samples_cascade= 0.1, tolerance= 0.0, n_jobs= 1)gcf.fit(X_tr, y_tr)

  Slicing Sequence...Training MGS Random Forests...Adding/Training Layer, n_layer=1Layer validation accuracy = 0.5577889447236181Adding/Training Layer, n_layer=2Layer validation accuracy = 0.521608040201005#shape_1X样本维度,window为多粒度扫描(Multi-Grained Scanning)算法中滑动窗口大小,

  #用于扫描原始数据,tolerance为级联生长的精度差,整个级联的性能将在验证集上进行估计,

  #如果没有显着的性能增益,训练过程将终止#gcf = gcForest(shape_1X=4, window=2, tolerance=0.0)

  #gcf = gcForest(shape_1X=[13,13], window=2, tolerance=0.0)

  gcf = gcForest(shape_1X=[ 1, 13], window=[ 1, 6],)gcf.fit(X_tr, y_tr) Slicing Sequence...Training MGS Random Forests...Slicing Sequence...Training MGS Random Forests...Adding/Training Layer, n_layer=1Layer validation accuracy = 0.5964125560538116Adding/Training Layer, n_layer=2Layer validation accuracy = 0.5695067264573991

  参数改为shape_1X=[1,13], window=[1,6]后训练集达到0.59,不理想,这里只是抛砖引玉,调参需要大神指导。

  Now checking the prediction for the test set:

  现在看看测试集的预测值:

  pred_X = gcf.predict(X_te)print(len(pred_X))print(len(y_te))print(pred_X)

  Slicing Sequence...Slicing Sequence...549549[1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 1 0 0 1 0等

  #最近预测

  fori inrange( 1,len(pred_X)): print(y_te[-i],pred_X[-i],-i)

0 1 -10 0 -21 0 -31 0 -40 1 -5

  等# 保存每一天预测的结果,如果某天预测对了,保存1,如果某天预测错了,保存-1

  result_list = []

  # 检查预测是否成功

  defcheckPredict(i):ifpred_X[i] == y_te[i]: result_list.append( 1)

  else: result_list.append( 0)

  #画出最近第k+1个长度为j的时间段准确率

  k= 0j

  =len(y_te)

  #j=100

  fori inrange(len(y_te)-j*(k+ 1), len(y_te)-j*k): checkPredict(i)

  #print(y_pred[i])#return result_list

  print(len(y_te) ) print(len(result_list) )

  importmatplotlib.pyplot asplt

  #将准确率曲线画出来

  x = range( 0, len(result_list))y = []

  #z=[]

  fori inrange( 0, len(result_list)):

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容