超参搜索(v1)

# 超参搜索(v1)

(可视化模块)
利用参数搜索算法和并行计算技术进行批量化超参寻优
定义

M.hyper_parameter_search.v1(param_grid_builder=func, scoring=func , search_algorithm=str, search_iterations=int, workers=int, worker_distributed_run =True, worker_silent=True,run_now=True, bq_graph=g)

参数

  • param_grid_builder(func)—超参数输入,构建需要搜索的超参数列表,举例如下:
    def bigquant_run():    
      param_grid = {}
      # 在这里设置需要调优的参数备选,例如对特征因子模块m3进行因子寻优:
      # param_grid['m3.features'] = ['close_1/close_0', 'close_2/close_0\nclose_3/close_0']
      # param_grid['m6.number_of_trees'] = [5, 10, 20]
    return param_grid
  • scoring(评分函数)—定义超参数评价方法,例如使用回测结果模块m19计算的sharpe比率进行评分:
    def bigquant_run(result):
      score = result.get('m19').read_raw_perf()['sharpe'].tail(1)[0]
    return score
  • search_algorithm(str)—参数搜索算法,支持网格搜索和随机搜索
  • search_iterations(int)—搜索迭代次数,用于随机搜索,默认为10次
  • workers(int)—并行运行作业数,默认为1。会员可以使用更多的并行作业数。
  • worker_distributed_run(bool)—是否采用集群作业分布式运行参数搜索,默认为是
  • worker_silent(bool)—是否显示作业日志,默认为否
  • run_now(bool)—是否即时执行,默认为是。由于采用graph计算方式,如果需要其它graph计算方式的模块,例如叠加滚动训练模块等graph计算流程就需要取消即时执行。
  • bq_graph(bool)—是否采用graph计算方式,默认为是。自动生成T.Graph对象g,以字典方式自动汇总了画布所有模块的参数信息

返回:

超参搜索每组参数运行结果,例如超参搜索模块号为m1:

  • m1.result.cv_results_: 查看每组参数下各个模块的平均运行时间,具体的超参数取值,评分排名和评分值,以及各个模块的运行时间的标准差。
  • m1.result.best_score_: 查看最优评分
  • m1.result.best_params_: 查看最优得分下的超参数取值
  • m1.result.best_index_:查看最优得分下的参数组序号

返回类型

OutPuts