Hyperopt-sklearn - scikit-learn 的参数优化工具


BSD-3-Clause
跨平台
Python

软件简介

Hyperopt-sklearn是基于scikit-
learn
项目的一个子集,其全称是:Hyper-parameter optimization for scikit-learn,即针对scikit-
learn项目的超级参数优化工具。由于scikit-learn是基于Python的机器学习开源框架,因此Hyperopt-
sklearn也基于Python语言。

Hyperopt-
sklearn的文档称:对于开发者而言,针对不同的训练数据挑选一个合适的分类器(classifier)通常是困难的。而且即使选好了分类器,后面的参数调试过程也相当乏味和耗时。更严重的是,还有许多情况是开发者好不容易调试好了选定的分类器,却发现一开始的选择本身就是错误的,这本身就浪费了大量的精力和时间。针对该问题,Hyperopt-
sklearn提供了一种解决方案。

Hyperopt-sklearn支持各种不同的搜索算法(包括随机搜索、Tree of Parzen
Estimators、Annealing等),可以搜索所有支持的分类器(KNeightborsClassifier、KNeightborsClassifier、SGDClassifier等)或者在给定的分类器下搜索所有可能的参数配置,并评估最优选择。并且Hyperopt-
sklearn还支持多种预处理流程,包括TfidfVectorizer,Normalzier和OneHotEncoder等。

那么Hyperopt-sklearn的实际效果究竟如何?下表分别展示了使用scikit-learn默认参数和Hyperopt-
sklearn优化参数运行的分类器的F-score分数,数据源来自20个不同的新闻组稿件。可以看到,经过优化的分类器的平均得分都要高于默认参数的情况。

另外,Hyperopt-sklearn的编码量也很小,并且维护团队还提供了丰富的参考样例。