在python中使用hypot包在GridSearch函数中指定评分指标

时间:2018-10-21 05:24:22

标签: python machine-learning grid-search hyperparameters

我正在使用来自hypopt包的Gridsearch函数来使用指定的验证集进行超参数搜索。分类的默认指标似乎是准确性(不是很确定)。在这里,我想使用F1分数作为指标。我不知道应该在哪里指定指标。我看了看文档,但有点困惑。

熟悉hypot软件包的人知道我该怎么做吗?提前谢谢。

from hypopt import GridSearch

log_reg_params = {"penalty": ['l1'], 'C': [0.001, 0.01]}
opt = GridSearch(model=LogisticRegression())
opt.fit(X_train, y_train, log_reg_params, X_val, y_val)

1 个答案:

答案 0 :(得分:1)

对于您使用的任何模型,hypopt软件包的默认度量都是score()函数,因此在您的情况下,LogisticRegression().score()缺省为准确性。

如果通过pip install hypopt --upgrade将hypot软件包升级到1.0.8版,则可以在scoring的{​​{1}}参数中指定任意选择的指标,例如{{1 }}。这是一个基于您的代码的简单工作示例,该代码使用F1指标:

GridSearch.fit()

fit(scoring='f1')支持from hypopt import GridSearch param_grid = {"penalty": ['l1'], 'C': [0.001, 0.01]} opt = GridSearch(model=LogisticRegression(), param_grid = param_grid) # This will use f1 score as the scoring metric that you optimize. opt.fit(X_train, y_train, X_val, y_val, scoring='f1') 支持的大多数评分功能。

  • 对于分类,hypopt支持以下度量标准(作为字符串):'准确性','brier_score_loss','average_precision','f1','f1_micro','f1_macro','f1_weighted','neg_log_loss' ,“精度”,“调用”或“ roc_auc”。
  • 对于回归,sklearn支持:“ explained_variance”,“ neg_mean_absolute_error”,“ neg_mean_squared_error”,“ neg_mean_squared_log_error”,“ neg_median_absolute_error”,“ r2”。

您还可以通过将其包装到这样的对象中来创建自己的指标hypopt

hypopt

您可以在your_custom_score_func(y_true, y_pred)文档字符串中了解更多信息:

您可以在此处了解有关创建自己的自定义评分指标的更多信息: