В чем разница между оценкой GridSearchCrossValidation и оценкой на тестовом наборе данных?

Вопрос или проблема

Я занимаюсь классификацией с использованием Python. Я использую класс GridSearchCV, этот класс имеет атрибут best_score_, определяемый как “Средняя кросс-валидиционная оценка лучшего оценщика”.

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

Теперь я понимаю теоретическую разницу между двумя значениями (одно вычисляется в кросс-валидации, другое – на тестовом наборе), но как их интерпретировать? Например, если в случае 1 я получаю эти значения (соответственно как best_score_ и как оценка на тестовом наборе) 0.9236840458731027 0.8483477781024932, а в случае 2 – это другие значения 0.8923046854943018 0.8733431353820776, какое из них я должен предпочесть и почему? Почему разница между двумя значениями может так сильно варьироваться?

Каждый раз, когда вы (или ваш компьютер) принимаете решения на основе оценок, на эти оценки больше нельзя полагаться как на объективные. Таким образом, best_score_, хотя он и основан на оценке моделей на данных, которые они не видели, всё же остаётся оптимистически смещённой оценкой будущей производительности. (Простой способ увидеть это: если ваши гиперпараметры не влияют ни на что, кроме случайности, выбор наивысшей оценки очевидно не лучше других, и это максимальное значение не является хорошей оценкой дальнейшей производительности.)

Так что ваш второй вариант лучше, так как имеет более высокую (свежую) оценку на тестовом наборе. Конечно, если у вас есть два выбора на данный момент и вы теперь используете тестовую оценку, чтобы выбрать один, это уже не является объективной оценкой будущей производительности!

При этом обычно best_score_ достаточно близок к тестовой производительности, особенно если у вас нет множества гиперпараметров для настройки или если они имеют незначительное влияние на моделирование; ваше первое значение — это неожиданно большое падение. Одним из факторов, который нужно учитывать, является размер тестового набора и его репрезентативность. Если ваш тестовый набор слишком мал, чтобы уловить всю нюансировку вашей популяции, но обучающий набор очень велик, возможно, ваши тестовые оценки больше подвержены шуму, а кросс-валидационные оценки на самом деле более стабильны, несмотря на предвзятость выбора.

Вы должны выбирать модель на основе результата GridSearchCV.

Не следует делать выбор на основе оценки тестового набора данных. Выбор модели на основе тестовой оценки снижает вероятность того, что модель будет обобщаться на невидимые данные. Тестовые наборы данных следует использовать только один раз.

Для конкретных случаев, которые вы перечисляете, случай 1 имеет наивысший результат GridSearchCV, и это лучшая модель.

Одной из возможных причин большой разницы между оценками может быть относительно высокая дисперсия. Существует множество способов снижения дисперсии — увеличение объема данных, применение уменьшения размерности, отбор признаков, переход к другому алгоритму и увеличение регуляризации.

Кросс-валидация GridSearch может использоваться для изучения гиперпараметров предсказательной функции. Следует учитывать, что изучение и тестирование модели на одних и тех же данных является большой ошибкой. Вероятность получения идеальной оценки, но неспособности предсказать что-либо полезное на ещё невидимых данных (т.е. переобучения), очень высока при использовании одних и тех же данных для обучения и тестирования. Общепринятой практикой при обучении модели является выделение части данных в качестве тестового набора, чтобы предотвратить переобучение и измерить производительность модели. Кроме того, обратите внимание, что лучшие гиперпараметры могут быть определены методом сеточного поиска, и оценка, полученная в результате сеточного поиска, не должна использоваться в качестве критерия для оценки производительности модели. Пожалуйста, обратитесь к этой странице для получения дополнительной информации

Сказав это, best_score_ из GridSearchCV является средней кросс-валидационной оценкой лучшего оценщика. Например, в случае использования 5-кратной кросс-валидации GridSearchCV делит данные на 5 частей и обучает модель 5 раз. Каждый раз он откладывает одну часть и обучает модель на основе оставшихся 4 частей. Затем он измеряет производительность модели на основе оставленной части. Наконец, он возвращает среднюю производительность 5 моделей как окончательную оценку.

Теперь давайте ответим на вопрос: что означает лучший оценщик? Это оценщик, выбранный поиском, или оценщик, который дал наивысшую оценку (или наименьшие потери, если это указано) на оставленных данных. Цель GridSearchCV — найти оптимальные гиперпараметры. Он получает в качестве ввода диапазон параметров и находит лучшие на основе описанной выше средней оценки. Сеточный поиск обучает различные модели на основе различных комбинаций входных параметров и, наконец, возвращает лучшую модель или лучший оценщик. Таким образом, best_score_ является средней оценкой лучшего оценщика. Примечательно, что настройка гиперпараметров с кросс-валидацией в вышеупомянутом контексте является одним из методов, которые помогают избежать переобучения.

В вашем случае 0.8923046854943018 является средней оценкой лучшего оценщика. Давайте назовём эту оценку кросс-валидационной оценкой. В вашем случае я бы выбрал второй случай, потому что в этом случае нет переобучения, и кросс-валидационная и тестовая оценки почти одинаковы. В первом случае кросс-валидация значительно выше, чем невидимая тестовая оценка, и имеет место переобучение. Это означает, что модель работает очень хорошо на обучающих данных, но не на невидимых данных.

.

Ответ или решение

Основное различие между показателем best_score_ в GridSearchCV и оценкой на тестовом наборе данных заключается в происхождении и интерпретации этих значений. Давайте рассмотрим теоретическую часть, пример и практическое применение, чтобы глубже понять эти различия.

Теория:

GridSearchCV выполняет оптимизацию гиперпараметров модели с использованием кросс-валидации. Параметр best_score_ относится к средней оценке, полученной от наилучшего эстиматора в ходе кросс-валидации. Это означает, что для каждого набора гиперпараметров модель обучается на нескольких подмножествах обучающих данных, и оценка вычисляется на оставшихся данных. Таким образом, best_score_ отражает качество модели в идеальных лабораторных условиях, где данные, на которых она тестируется, контролируются.

С другой стороны, оценка на тестовом наборе данных (test set score) определяется путем применения наилучшего эстиматора, найденного GridSearchCV, к полностью отложенному набору данных, который не использовался в процессе обучения или кросс-валидации. Это дает представление о том, насколько хорошо модель будет работать на новых, невидимых данных.

Пример:

Если мы рассматриваем два сценария: первый с best_score_ = 0.9236840458731027 и test set score = 0.8483477781024932, и второй случай с best_score_ = 0.8923046854943018 и test set score = 0.8733431353820776, то разница между значениями в этих случаях дает основания для размышлений.

Применение:

В контексте оценки модели важно различать оптимистичные оценки best_score_ и более реалистичные оценки на тестовом наборе данных.

  1. Определение и устранение переобучения: Если разница между best_score_ и оценкой на тестовом наборе значительная, это может указывать на переобучение. Модель может показывать отличные результаты на кросс-валидации, но снижает качество на реальных данных.

  2. Принятие решений: Как правило, следует отдавать предпочтение более высокой оценке на тестовом наборе, поскольку она более актуально отражает способность модели обобщать результаты на новые данные. Однако это не означает, что нужно выбирать гиперпараметры, основываясь исключительно на этой оценке, так как это может привести к пониженной способности модели обобщать.

  3. Устойчивость модели: Во втором случае, где нет значительной разницы между best_score_ и тестовой оценкой, модель демонстрирует более согласованные результаты и, возможно, лучше обобщает на новых данных.

Важно также понимать, что резкое падение результатов в случае 1 может быть вызвано высокой вариативностью модели. В таких случаях улучшить производительность модели можно за счет увеличения объема данных, использования методов уменьшения размерности, выбора других моделей, или применения методов регуляризации.

Оцените материал
Добавить комментарий

Капча загружается...