作者|Michael Chau 编译|VK 来源|Towards Data Science
大家都知道Scikit-Learn——它是数据科学家基本都知道的产品,提供了几十种易于使用的机器学习算法。它还提供了两种现成的技术来解决超参数调整问题:网格搜索(GridSearchCV)和随机搜索(RandomizedSearchCV)。
这两种技术都是找到正确的超参数配置的强力方法,但是这是一个昂贵和耗时的过程!
如果想加快这个过程呢
在这篇博客文章中,我们介绍了tune-sklearn(https://github.com/ray-project/tune-sklearn),它使得在使用Scikit-Learn API的同时更容易利用这些新算法。
Tune sklearn是Scikit Learn模型选择模块的一个替代品,采用了先进的超参数调整技术(贝叶斯优化、早期停止、分布式执行)——这些技术比网格搜索和随机搜索提供了显著的加速!
以下是tune sklearn提供的功能:
与Scikit Learn API的一致性:tune sklearn是GridSearchCV和RandomizedSearchCV的一个替换,因此你只需要在标准Scikit Learn脚本中更改不到5行即可使用API。
现代超参数调整技术:tune-sklearn允许你通过简单地切换几个参数,就可以轻松地利用贝叶斯优化、超空间和其他优化技术。
框架支持:tune-sklearn主要用于调优Scikit-Learn模型,但它也支持并为许多其他具有Scikit-Learn框架提供示例,例如Skorch (Pytorch)、KerasClassifiers(Keras)和XGBoostClassifiers(XGBoost)。
分布式:Tune sklearn利用Ray Tune,一个分布式超参数调优库,高效透明地并行化多核甚至多台机器上的交叉验证。
Tune sklearn也很快。为了看到这一点,我们在标准的超参数扫描上,将tune sklearn(启用早期停止)与本机Scikit Learn进行基准测试。在我们的基准测试中,我们可以看到普通笔记本电脑和4