最近ray
teams出了个新项目,Tune-Sklearn。
Tune-sklearn is a package that integrates Ray Tune’s hyperparameter tuning and scikit-learn’s models, allowing users to optimize hyerparameter searching for sklearn using Tune’s schedulers
2月份我还没仔细研究贝叶斯优化的时候就像手撸一个这样的项目的,现在开源社区也做了好事,在ray tuner(参考2018ICML的paper)的基础上开发了一个封装程度更高的项目,我们就来瞅瞅
我随便选择一个Example脚本examples/bayesian_sgd.py
作为调试入口,直接进入数据拟合的函数tune_sklearn.tune_basesearch.TuneBaseSearchCV#fit
这个基类被两个子类基础了,一个子类实现网格搜索,一个子类实现贝叶斯搜索+随机搜索。
fit
其实也只是一层壳,真正干活的函数在tune_sklearn.tune_basesearch.TuneBaseSearchCV#_fit
self.n_splits = cv.get_n_splits(X, y, groups)
学习这个用法。
进入tune_sklearn.tune_search.TuneSearchCV#_tune_run
Wrapper to call
tune.run
. Multiple estimators are generated when
early stopping is possible, whereas a single estimator is
generated when early stopping is not possible.
意思是如果有early_stoping
,会有多个estimators
。
体现在这段代码上:
if self.early_stopping is not None:
config["esti