Проблема
Я использую HalvingGridSearchCV в scikit-learn для настройки гиперпараметров модели XGBoost в конвейере imbalanced-learn. Я заметил, что best_score_ (и, следовательно, best_params_) не совпадает с самым высоким mean_test_score в cv_results_. Это несоответствие вызывает у меня недоумение, тем более что в некоторых случаях оно может быть существенным; Изначально я ожидал, что best_score_ будет соответствовать самому высокому значению среднего_test_score из cv_results_, поскольку этот показатель обычно представляет собой наиболее эффективную модель.
Разумно ли рассматривать модель с самым высоким средним_test_score в cv_results_ как допустимый выбор для развертывания вместо best_estimator_? Какие компромиссы следует учитывать?
Поскольку я не могу предоставить полный конвейер или данные, я делюсь соответствующими частями кода:
из imblearn.ensemble import BalancedBagingClassifier из импорта imblearn FunctionSampler из imblearn.pipeline конвейер импорта из xgboost импортировать XGBClassifier из sklearn.model_selection импорт TimeSeriesSplit # данные Х, у = ... модель = Конвейер([ ('выборка', FunctionSampler( ... )), ('классификация', BalancedBagingClassifier( base_estimator=XGBClassifier( eval_metric='aucpr', use_label_encoder=False) )) ]) параметры = { 'classification__base_estimator__max_length': [3, 5, 7, 10], 'classification__base_estimator__gamma': [0., 1e-4, 1e-2, 0.1, 1.] } cv = TimeSeriesSplit (n_splits = 5) clf = HalvingGridSearchCV( оценщик = модель, param_grid=параметры, скоринг = 'average_precision', коэффициент=3, мин_ресурсы=2500, резюме = резюме, подробный = 1, ремонт = Истина, ) clf.fit(X, y) Результаты: [*]Лучший результат: 0,3516, лучшие параметры: max_глубина = 10, гамма = 1. [*]Наивысший средний балл теста: 0,4006, соответствующие параметры: max_глубина = 7, гамма = 0,1. Комбинация параметров, соответствующая предположительно лучшему результату, иногда даже не входит в пятерку самых высоких средних результатов тестов.
Подводя итог: [*]Почему best_score_ и самый высокий средний_test_score в cv_results_ могут не совпадать, и существуют ли конкретные критерии или механизмы в HalvingGridSearchCV или XGboost, которые объясняют это это? [*]Как мне следует интерпретировать это несоответствие при выборе лучшей модели для развертывания? Рассматривая модель с самым высоким значениемmean_test_score из cv_results_ в качестве альтернативы best_estimator_, какие компромиссы мне следует учитывать?
Будем очень признательны за любую информацию. Хотя я не могу делиться реальными данными, я могу предоставить дополнительные фрагменты кода или подробности для контекста. Спасибо!
Несоответствие между best_score_ и наивысшим средним_test_score в cv_results_ HalvingGridSearchCV ⇐ Python
Программы на Python
1698842354
Гость
Проблема
Я использую HalvingGridSearchCV в scikit-learn для настройки гиперпараметров модели XGBoost в конвейере imbalanced-learn. Я заметил, что best_score_ (и, следовательно, best_params_) не совпадает с самым высоким mean_test_score в cv_results_. Это несоответствие вызывает у меня недоумение, тем более что в некоторых случаях оно может быть существенным; Изначально я ожидал, что best_score_ будет соответствовать самому высокому значению среднего_test_score из cv_results_, поскольку этот показатель обычно представляет собой наиболее эффективную модель.
Разумно ли рассматривать модель с самым высоким средним_test_score в cv_results_ как допустимый выбор для развертывания вместо best_estimator_? Какие компромиссы следует учитывать?
Поскольку я не могу предоставить полный конвейер или данные, я делюсь соответствующими частями кода:
из imblearn.ensemble import BalancedBagingClassifier из импорта imblearn FunctionSampler из imblearn.pipeline конвейер импорта из xgboost импортировать XGBClassifier из sklearn.model_selection импорт TimeSeriesSplit # данные Х, у = ... модель = Конвейер([ ('выборка', FunctionSampler( ... )), ('классификация', BalancedBagingClassifier( base_estimator=XGBClassifier( eval_metric='aucpr', use_label_encoder=False) )) ]) параметры = { 'classification__base_estimator__max_length': [3, 5, 7, 10], 'classification__base_estimator__gamma': [0., 1e-4, 1e-2, 0.1, 1.] } cv = TimeSeriesSplit (n_splits = 5) clf = HalvingGridSearchCV( оценщик = модель, param_grid=параметры, скоринг = 'average_precision', коэффициент=3, мин_ресурсы=2500, резюме = резюме, подробный = 1, ремонт = Истина, ) clf.fit(X, y) Результаты: [*]Лучший результат: 0,3516, лучшие параметры: max_глубина = 10, гамма = 1. [*]Наивысший средний балл теста: 0,4006, соответствующие параметры: max_глубина = 7, гамма = 0,1. Комбинация параметров, соответствующая предположительно лучшему результату, иногда даже не входит в пятерку самых высоких средних результатов тестов.
Подводя итог: [*]Почему best_score_ и самый высокий средний_test_score в cv_results_ могут не совпадать, и существуют ли конкретные критерии или механизмы в HalvingGridSearchCV или XGboost, которые объясняют это это? [*]Как мне следует интерпретировать это несоответствие при выборе лучшей модели для развертывания? Рассматривая модель с самым высоким значениемmean_test_score из cv_results_ в качестве альтернативы best_estimator_, какие компромиссы мне следует учитывать?
Будем очень признательны за любую информацию. Хотя я не могу делиться реальными данными, я могу предоставить дополнительные фрагменты кода или подробности для контекста. Спасибо!
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия