scikit-learn 中的超参数优化(网格搜索)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scikit-learn 中的超参数优化(网格搜索)相关的知识,希望对你有一定的参考价值。
参考技术A 超参数调优,最基本的就是网格搜索的方法。最常用的是网格遍历的方法,其遍历给定的参数组合,来比较模型在各参数组合下的表现。scikit-learn.model_selection中提供了GridSerachCV,来实现网格搜索。构造网格搜索,需要指定以下元素:
在GridSearchCV中对应的参数为
此外还有一些参数可用于性能调优,如n_jobs、pre_dispatch可以指定并行运算的作业数量。
GridSearchCV实现了 fit 和 score 方法,学习器自身的方法,也可以通过GridSeachCV直接调用。训练后可通过best_estimator、best_score、best_params等属性获取最佳参数等信息。
除了遍历搜索,还可以进行随机搜索,sklearn.model_selection中的RandomizedSearchCV就是这样的方法。
其参数和使用方法与GridSeachCV类似,只是不对所有可能的超参数组合进行遍历。而是根据参数n_iter,生成指定个数的超参数组合,并在其上进行比较。
适用于超参数非常多,不支持穷举遍历的情况,可以结合启发式搜索方法进行参数调优。
除了遍历和随机的网格搜索方法,scikit-learn也附带提供了遍历和随机的超参数组合方法。只返回超参数组合的集合。
ParameterGrid方法生所有超参数的组合。并可以通过其他函数读取。
ParameterSampler则进行随机组合。不遍历所有超参数组合,而是采用随机采样的方式组合超参数,并生成指定n_iter个组合供迭代使用。
这两种方法只生成的超参数组合,在不用GridSeachCV或RandomizedSearchCV方法,而使用其他调优方法时可以使用。
scikit-learn中还提供了一些模型特定的交叉验证方法,这些方法可以提升验证效率。
包括ElasticNetCV、LassoCV、RidgeCV、LogisticRegressionCV等等。
以上是关于scikit-learn 中的超参数优化(网格搜索)的主要内容,如果未能解决你的问题,请参考以下文章
使用 scikit-learn 对多类支持向量机进行参数优化
scikit-learn 管道:对变压器参数进行网格搜索以生成数据
如何在 scikit-learn 的管道中对变换参数进行网格搜索