使用python中的hypopt包在GridSearch函数中指定评分指标
我正在使用hypopt包中的Gridsearch函数使用指定的验证集进行超参数搜索。分类的默认指标似乎是准确性(不是很确定)。这里我想用F1成绩作为衡量标准。我不知道应该在哪里指定度量标准。我看了文档,但有点困惑 熟悉hypopt包的人知道我怎么做吗?先谢谢你使用python中的hypopt包在GridSearch函数中指定评分指标,python,machine-learning,grid-search,hyperparameters,Python,Machine Learning,Grid Search,Hyperparameters,我正在使用hypopt包中的Gridsearch函数使用指定的验证集进行超参数搜索。分类的默认指标似乎是准确性(不是很确定)。这里我想用F1成绩作为衡量标准。我不知道应该在哪里指定度量标准。我看了文档,但有点困惑 熟悉hypopt包的人知道我怎么做吗?先谢谢你 from hypopt import GridSearch log_reg_params = {"penalty": ['l1'], 'C': [0.001, 0.01]} opt = GridSearch(model=Logistic
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)
对于您使用的任何模型,
hypopt
包的默认度量是score()
函数,因此在您的情况下,默认为准确性的是logistic回归().score()
如果通过pip install hypopt--upgrade
将hypopt包升级到1.0.8版,则可以在GridSearch.fit()
的scoring
参数中指定您选择的任何指标,例如,fit(scoring='f1')
。下面是一个基于使用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
支持几乎所有sklearn
支持的评分功能
- 对于分类,
支持以下指标(作为字符串):“准确度”、“brier_分数损失”、“平均精度”、“f1”、“f1_微观”、“f1_宏观”、“f1_加权”、“负对数损失”、“精度”、“召回率”或“roc_auc”李>hypopt
- 对于回归,
支持:“解释方差”、“负均值绝对误差”、“负均值平方误差”、“负均值平方对数误差”、“负中值绝对误差”、“r2”hypopt
您的_custom_score_func(y_true,y_pred)
,方法是将其包装到如下对象中:
from sklearn.metrics import make_scorer
scorer = make_scorer(your_custom_score_func)
opt.fit(X_train, y_train, X_val, y_val, scoring=scorer)
您可以在下面的hypopt.GridSearch.fit()
docstring中了解更多信息:
- 例如:
- 源代码: