我正在使用来自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)
答案 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)
文档字符串中了解更多信息:
您可以在此处了解有关创建自己的自定义评分指标的更多信息: