我有一种情况,我可以动态地将一些记分器传递给网格搜索对象,可以是字符串(= accuracy
)的形式,也可以是自定义记分器,通过make_scorer
参数greater_is_better
可能是True
或创建的False
。换句话说,我的得分手最好并不总是在他们是“最大”价值的时候。
我想要做的是从对象中动态提取我的记分员的“符号”,这样,当我知道如何对分数进行排名时(我知道如果你“静态地”这样做是微不足道的),无论是前配置已定义的指标(“准确性”)或给定的评分指标。
我试图查看内部的“核心”代码,grid search object
但无济于事。我可以利用一些属性或属性吗?
例子:
from sklearn.model_selection import GridSearchCV
def build_grid_1():
cls_1 = GridSearchCV(estimator, param_grid, scoring='accuracy')
cls_1.fit(X, y)
return cls_1
def build_grid_2():
cls_1 = GridSearchCV(estimator, param_grid, scoring=make_scorer(func, greater_is_better=False))
cls_1.fit(X, y)
return cls_1
def build_grid_3():
cls_1 = GridSearchCV(estimator, param_grid, scoring=make_scorer(func, greater_is_better=True))
cls_1.fit(X, y)
return cls_1
def gauge_scoring_sign(grid_search_class):
return scorer_sign
gauge_scoring_sign(build_grid_1()) # 1
gauge_scoring_sign(build_grid_2()) # -1
gauge_scoring_sign(build_grid_3()) # 1