Лучшая метрика оценки отсутствует в best_param_ для GridSearchCV - PullRequest
0 голосов
/ 11 ноября 2019

У меня есть следующее:

from sklearn.model_selection import GridSearchCV
from sklearn.ensemble import RandomForestClassifier as RFC

par = {"n_estimators":n_estimators,
"max_depth":max_depth,
"class_weight":weight}


scores = {"AUC":"roc_auc","score":my_score} #Scores metric


rfc=RFC()

grid_rfc=GridSearchCV(rfc,
param_grid=par,
cv=10,
scoring=scores,
iid=False,
refit="AUC")

grid_rfc.fit(x_train,y_train)

Затем я могу получить лучшие параметры с помощью grid_rfc.best_param, но score, который предоставил лучшие параметры, не указан.

Насколько я понимаю, score - это тот, который RFC пытается максимизировать, поэтому я не понимаю, почему его нет в лучшем параметре.

РЕДАКТИРОВАТЬ:

Это не оценка, которую производит RF, которую я пропускаю, а то, какая функция оценки использовалась, чтобы соответствовать дереву, которое дало лучший результат (например, "AUC" или "my_score" из scoreДИКТ)

1 Ответ

0 голосов
/ 11 ноября 2019

Согласно документации GridSearchCV , вы можете использовать best_score_ из best_param_, чтобы получить лучший результат.

Я не могу протестировать этот пример, так как ваш код не завершен, но реализация должна выглядеть следующим образом:

from sklearn.model_selection import GridSearchCV
from sklearn.ensemble import RandomForestClassifier as RFC

par = {"n_estimators":n_estimators,
"max_depth":max_depth,
"class_weight":weight}


scores = {"AUC":"roc_auc","score":my_score} #Scores metric


rfc=RFC()

grid_rfc=GridSearchCV(rfc,
param_grid=par,
cv=10,
scoring=scores,
iid=False,
refit="AUC")

grid_rfc.fit(x_train,y_train)

# Print the best score
print(grid.best_score_)

Теперь вы можете заметить, что это выглядит немного иначе, чем истинное precision, так что смотрите этот пост переполнения стека для более подробного обсуждения этого вопроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...