使用超参搜索时如何知道模块参数名

超参搜索
模块
标签: #<Tag:0x00007fcc03f3cd08> #<Tag:0x00007fcc03f3cbc8>

(冰柠檬) #1

你好 请教你一个问题 在用超参搜寻板块的时候 设置超参的时候 树的数量 的字段名字是 the_number_of_trees 我想知道其他字段的名字 比如 学习率 最小样本叶节点数量 ,这些要在哪里查看呢? 还有就是评价标准除了夏普比率 我还想用其他的标准 比如 最大回撤 累计收益 等 这些字段名 需要在哪里查看呢? 谢谢


pandas选取数据语法不对
(达达) #2

您可以打开代码模式 会发现所有模块的参数都有个编号
image
如图所示:
image
比如学习率对应的参数是’m6.learning_rate’

对于策略的评价指标你可以首先通过回测模块的raw_perf结果中读取策略累计收益cum_return和基准累计收益bm_cum_return数据存在df这个DataFrame中,如下计算策略的日收益率和基准的每日收益率:

df['daily_return'] =(1+df['cum_return']).pct_change().fillna(0)
df['benchmark_daily_return'] =(1+df['bm_cum_return']).pct_change().fillna(0)

夏普比率、最大回撤和累计收益您就可以通过empyrical库使用如下的示例函数get_stats计算,比如计算返回max_drawdown

#策略评价函数
import empyrical
def get_stats(results):
    return_ratio  = empyrical.cum_returns_final(results.daily_return)
    annual_return_ratio  = empyrical.annual_return(results.daily_return,period='daily')
    sharp_ratio = empyrical.sharpe_ratio(results.daily_return,0.04/252)
    return_volatility = empyrical.annual_volatility(results.daily_return)
    max_drawdown  = empyrical.max_drawdown(results.daily_return)
    calmar_ratio = empyrical.calmar_ratio(results.daily_return)
    sortino_ratio = empyrical.sortino_ratio(results.daily_return)
    alpha = empyrical.alpha(results.daily_return, results.benchmark_daily_return, risk_free=0.04)
    beta = empyrical.beta(results.daily_return, results.benchmark_daily_return, risk_free=0.04)
    return max_drawdown

最后,可以记录比对这个max_drawdown指标


(冰柠檬) #3

好的 谢谢您