sklearn извлекает «знак бомбардира» из объекта GridSearch
У меня есть ситуация, когда я могу динамически передавать некоторые бомбардиры объекту поиска сетки либо в виде строк (=
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