1.model拟合过程使用决策树进行拟合。
2.好的优化器可以保持最优值很稳定在一个区间里面,推荐使用skopt.gbrt_minimize
3.保证模型能够拟合比较好,可以浪费一定的找最大值的次数,比如前10次全部为随机初始化过程。
4.线下和线上差异很大,对于决策树来说线下只能到0.2左右,线上在0.6左右浮动
模型 | 优化器 | 线下 | 线上 |
---|---|---|---|
gp | scipy.optimize.minimize | 0.3 | 0.25 |
DecisionTree | scipy.optimize.minimize | 0.2 | 0.51-0.68区间 |
DecisionTree | skopt.gbrt_minimize | 0.45 | 0.55-0.68区间 |
主要借鉴代码:北大openbox开源地址
1.由于次数的减少,导致决策树的拟合效果变差,尝试了许多模型,效果不是很明显的,线上大概在0.31左右
2.决赛没有什么高级的想法,主要是将openbox的代码看懂上层的一部分,然后进行一部分的改写,只能说越看别人的代码,越感觉到自己的菜。
3.改写主要是改写openbox中optimizer. generic_smbo.py core. generic_advisor.py这个两个文件
optimizer. generic_smbo.py | run_init() iterate_init() add_history() run() iterate() |
---|---|
core. generic_advisor.py | get_suggestion() |
4.使用openbox模型为gp,优化器为batchmc
5.没有任何的is_early_stop的实现
模型 | 优化器 | 线下 | 线上 |
---|---|---|---|
DecisionTree | skopt.gbrt_minimize | 0.4 | 0.3-0.31区间 |
openbox.gp | openbox.local_random | 0.58 | 0.03170000(超时) |
openbox.gp | openbox.batchmc | 0.9 | 0.53 |