机器学习调参方法
机器学习工程实践中4种常用的调参方法
- 手动调参
- 网格搜索(Grid Search)
- 随机搜索
- 贝叶斯调优
各种方法的对比
参考:Gridsearchcv vs Bayesian optimization
特点
- Grid search穷举所有参数的组合,以在所给的参数空间中寻找全局最优,而Bayesian optimization避免尝试所有的组合。这正是二者各自的特点,也是各自的优点。
- Grid search的参数搜索是离散的值,Bayesian的参数搜索是连续的区间。
如何选择?
- 如果计算机有足够的计算力,且不在意时间的消耗,那么选择Grid Search;如果参数搜索空间太大,选择Bayesian optimization。
- 另有一说:在确定参数的最佳组合的保证和计算时间之间总是存在权衡。如果超参数空间(超参数个数)非常大,则使用随机搜索找到超参数的潜在组合,然后在该局部使用网格搜索(超参数的潜在组合)选择最优特征。
Python调参库
from sklearn.model_selection import GridSearchCV
from sklearn.model_selection import RandomizedSearchCV
# 下面两个包可以做贝叶斯搜索,选用其一即可
from bayes_opt import BayesianOptimization # 安装:pip install bayesian-optimization
from skopt import BayesSearchCV # 安装:pip install scikit-optimize
import hyperopt # pip install hyperopt
import skopt # pip install scikit-optimize