1

我有一种情况,我可以动态地将一些记分器传递给网格搜索对象,可以是字符串(= 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
4

0 回答 0