Что такое Gridsearch.cv_results_, может ли кто-нибудь объяснить все вещи в этом, то есть mean_test_score и т. д.? - PullRequest
0 голосов
/ 09 февраля 2019

Я выполняю настройку гиперпараметра с GridSearchCV для деревьев решений.Я подобрал модель и пытаюсь найти то, что дает Gridsearch.cv_results_.Я прочитал документацию, но все еще не ясно.Может кто-нибудь объяснить этот атрибут?

мой код ниже:

depth={"max_depth":[1,5,10,50,100,500,1000],
       "min_samples_split":[5,10,100,500]}       

DTC=DecisionTreeClassifier(class_weight="balanced")

DTC_Grid=GridSearchCV(DTC,param_grid=depth , cv=3, scoring='roc_auc')
DTC_Bow=DTC_Grid.fit(xtrain_bow,ytrain_bow) 

1 Ответ

0 голосов
/ 09 февраля 2019

DTC_Bow.cv_results_ возвращает словарь всех метрик оценки из gridsearch.Для правильной визуализации вы можете сделать

pd.DataFrame(DTC_Bow.cv_results_)

. В вашем случае это должно вернуть фрейм данных с 28 строками (7 вариантов для max_depth умножить на 4 варианта для min_samples_split).Каждая строка этого информационного кадра предоставляет метрики gridsearch для одной комбинации этих двух параметров.Помните, что цель gridsearch - выбрать, какая комбинация параметров будет иметь лучшие показатели производительности.Это цель cv_results_.

. У вас должен быть один столбец с именем param_max_depth, а другой - с именем param_min_samples_leaf, ссылающийся на значение параметра для каждой строки.Сочетание двух суммируется в виде словаря в столбце params.

Теперь к метрике.Значение по умолчанию для return_train_score до сих пор было True, но они изменят его на False в версии 0.21.Если вы хотите, чтобы показатели поезда были установлены на True.Но обычно вас интересуют тестовые метрики.

Основной столбец: mean_test_score.Это среднее значение столбцов split_0_test_score, split_1_test_score, split_2_test_score (поскольку вы выполняете 3-кратное разделение в поиске по сетке)Если вы сделаете DTC_Bow.best_score_, это вернет максимальное значение столбца mean_test_score.Столбец rank_test_score ранжирует все комбинации параметров по значениям mean_test_score.

Вы также можете посмотреть на std_test_score, которое является стандартным отклонением split_0_test_score, split_1_test_score, split_2_test_score.Это может быть интересно, если вы хотите увидеть, насколько последовательно ваш набор параметров работает с вашими данными.

Как уже упоминалось, вы также можете настроить метрики для поезда при условии, что вы установили return_train_score = True.

Наконец, есть также столбцы времени, которые сообщают вам, сколько времени потребовалось длякаждый ряд.Он измеряет, сколько времени потребовалось для обучения модели (mean_fit_time, std_fit_time) и ее оценки (mean_score_time, std_score_time).Как правило, это просто к сведению, если время не является узким местом, вы бы на самом деле не смотрели на эти показатели.

Надеюсь, это поможет!

...