Как выбрать классификатор после перекрестной проверки?


13

Когда мы проводим перекрестную проверку в k-кратном порядке, должны ли мы просто использовать классификатор, который имеет самую высокую точность теста? Каков обычно лучший подход в получении классификатора от перекрестной проверки?


Я думаю, что этот вопрос во многом зависит от показателя, используемого для определения «наилучшего подхода». Количественно многие люди используют точность, но в зависимости от набора данных могут использоваться другие метрики, такие как гармоническое среднее, например, F1-Score. Так что метрический выбор может быть не менее важным.
Натан Маккой

@NathanMcCoy хорошо, если мы выберем точность, мы бы выбрали классификатор с самой высокой точностью теста?
Armon Safai

Конечно! Просто пытаюсь упомянуть что-то еще, чтобы подумать :)
Натан Маккой

Ответы:


15

Вы выполняете перекрестную проверку, когда хотите выполнить одно из следующих двух действий:

  • Выбор модели
  • Оценка ошибки модели

Выбор модели может происходить по разным сценариям:

  • Выбор одного алгоритма против других для конкретной проблемы / набора данных
  • Выбор гиперпараметров конкретного алгоритма для конкретной задачи / набора данных

(обратите внимание, что если вы оба выбираете алгоритм - лучше назвать его моделью - а также выполняете поиск гиперпараметров, вам необходимо выполнить Nested Cross Validation. Действительно ли Nested-CV необходим? )

Перекрестная проверка в некоторой степени гарантирует, что оценка погрешности является самой близкой возможной ошибкой обобщения для этой модели (хотя ее очень трудно приблизить). Наблюдая за средней ошибкой среди сгибов, вы можете получить хорошую проекцию ожидаемой ошибки для модели, построенной на полном наборе данных. Также важно наблюдать за отклонением прогноза, это то, насколько погрешность изменяется от кратности к кратности. Если отклонение слишком велико (значительно различаются значения), модель будет нестабильной. Самозагрузка - другой метод, обеспечивающий хорошее приближение в этом смысле. Предлагаю внимательно прочитать раздел 7 книги «Элементы статистического обучения», свободно доступной по адресу: ELS-Standford

Как уже упоминалось ранее, вы не должны брать собранную модель ни в одну из складок. Вместо этого вам нужно перестроить модель с полным набором данных (тот, который был разбит на сгибы). Если у вас есть отдельный набор тестов, вы можете использовать его, чтобы попробовать эту окончательную модель, получив аналогичную (и, безусловно, более высокую) ошибку, чем та, которая получена в CV. Однако вы должны полагаться на предполагаемую ошибку, указанную в процедуре CV.

После выполнения CV с разными моделями (комбинация алгоритмов и т. Д.), Выберите ту, которая показала лучшие результаты в отношении ошибки и ее дисперсии между сгибами. Вам нужно будет перестроить модель со всем набором данных. Здесь возникает общая путаница в терминах: мы часто ссылаемся на выбор модели, полагая, что модель представляет собой готовую к прогнозу модель, построенную на данных, но в данном случае она относится к комбинации применяемых вами алгоритмов + процедур предварительной обработки. Таким образом, для получения фактической модели, необходимой вам для прогнозирования / классификации, вам необходимо построить ее, используя комбинацию победителей во всем наборе данных.

Последнее, на что следует обратить внимание, это то, что если вы применяете какую-либо предварительную обработку, использующую информацию о классе (выбор объектов, уменьшение размерности LDA и т. Д.), Это должно выполняться в каждом сгибе, а не ранее для данных. Это критический аспект. Следует делать то же самое, если вы применяете методы предварительной обработки, которые включают прямую информацию данных (PCA, нормализация, стандартизация и т. Д.). Однако вы можете применить предварительную обработку, которая не зависит от данных (удаление переменной по мнению эксперта, но это довольно очевидно). Это видео может помочь вам в этом направлении: резюме правильно и неправильно

Здесь, последнее приятное объяснение относительно предмета: резюме и выбор модели


Я вижу, вам действительно нужны отдельные тестовые данные или вы можете просто обучить свой классификатор на 100% всех данных, которые у вас есть, так как мы уже провели перекрестную проверку и получили приблизительную ошибку теста для модели?
Armon Safai

+1 за «выбрал ту, которая работала лучше в отношении ошибки и ее дисперсии между сгибами ». Все, кажется, игнорируют дисперсию между сгибами при выборе моделей.
Stmax

Зачем мне заботиться об ошибке теста, если меня волнует только ошибка CV? Я спросил, потому что вы написали «действительно о предполагаемой ошибке, указанной в процедуре CV».
HelloWorld

Другой вопрос. Что, если лучшая модель из CV не является лучшей моделью при построении для всего набора данных?
HelloWorld

1
Вы строите модель на 100% данных, то есть на 100% данных, используемых для перекрестной проверки. Если вы ранее разделили исходные данные на 80% -20% для обучения и дальнейшего тестирования, то вы делаете CV на 80%, выбираете модель и переучиваете на все 80%. Наличие набора тестов в этом случае (20%) просто позволяет вам увидеть, как себя ведут новые невидимые данные (вы можете думать о них как о данных, которые стали доступны в будущем), но оценка ошибки, которую вы используете, - это оценка CV. , Надеемся, что это приведет к аналогичной ошибке с новыми данными, если это хорошая модель (это 20%, или фактически новые данные). @ArmonSafai
Хавьерфдр,

8

Нет. Вы не выбираете ни одного из k классификаторов, созданных во время перекрестной проверки в k раз. Прежде всего, цель перекрестной проверки состоит не в том, чтобы придумать прогностическую модель, а в том, чтобы оценить, насколько точно прогностическая модель будет работать на практике. Во-вторых, ради аргумента, скажем, вам пришлось использовать перекрестную проверку в k-кратном порядке с k = 10, чтобы выяснить, какой из трех различных алгоритмов классификации будет наиболее подходящим для решения данной проблемы классификации. В этом случае данные случайным образом разбиваются на k частей одинакового размера. Одна из частей зарезервирована для тестирования, а остальные части k-1 будут использованы для обучения. Процесс перекрестной проверки повторяется k (кратно) раз, так что на каждой итерации для тестирования используется разная часть. После выполнения перекрестной проверки вы смотрите на результаты каждого сгиба и задаетесь вопросом, какой алгоритм классификации (а не любая обученная модель!) Является наиболее подходящим. Вы не хотите выбирать алгоритм, который имеет наивысшую точность теста на одной из 10 итераций, потому что, возможно, просто случайно получилось, что данные теста на этой конкретной итерации содержали очень простые примеры, которые затем приводили к высокой точности теста. Что вы хотите сделать, это выбрать алгоритм, который дал наилучшую точность что приводит к высокой точности испытаний. Что вы хотите сделать, это выбрать алгоритм, который дал наилучшую точность что приводит к высокой точности испытаний. Что вы хотите сделать, это выбрать алгоритм, который дал наилучшую точностьусреднено по всем k сгибам . Теперь, когда вы выбрали алгоритм, вы можете тренировать его, используя все свои тренировочные данные, и начать делать прогнозы в дикой природе.

Это выходит за рамки этого вопроса, но вам также следует оптимизировать гиперпараметры модели (если таковые имеются), чтобы получить максимальную отдачу от выбранного алгоритма. Люди обычно выполняют оптимизацию гиперпараметров, используя перекрестную проверку.


Я думал, что k-кратная перекрестная проверка создает k различных моделей, поскольку существует 10 различных наборов обучающих данных.
Armon Safai

Проверьте мой обновленный ответ. Я уточнил это, чтобы обратиться к вопросу более прямо и объяснить лучше на примере.
Туомастик

я вижу, поэтому, когда вы, наконец, обучаете свой классификатор, вы используете ВСЕ свои данные для обучения классификатора после того, как вы выбрали свой алгоритм из перекрестной проверки
Armon Safai

Да, если вы не хотите выполнять какой-либо дополнительный анализ, такой как оптимизация гиперпараметра, который требует вложенной перекрестной проверки, когда внутренний цикл CV заботится о настройке гиперпараметра, а внешний цикл CV оценивает производительность модели на независимом наборе данных с оптимальным гиперпараметры.
tuomastik

1

Итак, позвольте нам предположить, что у вас есть обучение, из которого вы используете 80% в качестве обучения, а остальные 20% в качестве данных проверки. Мы можем тренироваться на 80% и тестировать на оставшиеся 20%, но возможно, что 20%, которые мы взяли, не похожи на фактические данные тестирования и могут плохо работать последние. Таким образом, чтобы предотвратить это, мы можем использовать перекрестную проверку в k-кратном размере.

Итак, позвольте нам сказать, что у вас есть разные модели, и вы хотите знать, какая из них лучше работает с вашим набором данных, перекрестная проверка в k-кратном порядке отлично работает. Вы можете узнать об ошибках валидации по показателям k-validation и выбрать лучшую модель на основе этого. Обычно это является целью перекрестной проверки в k-кратном порядке.

Приведя только одну модель, и если вы проверяете с помощью k-кратной перекрестной проверки, вы можете получить приблизительную ошибку ошибок тестовых данных, но when you are actually training it finally, you can use the complete training data(поскольку здесь предполагается, что все данные вместе будут работать лучше, чем часть их) Иногда это может быть не так, но это общее предположение.)


Ооочень, когда мы делаем перекрестную проверку, мы просто выбираем модель, которая имеет самую высокую точность теста?
Armon Safai

когда вы говорите «тест», вы имеете в виду тест набора данных проверки, верно?
Хима Варша

да, вот что я имею в виду
Armon Safai

как только мы использовали перекрестную проверку для выбора более эффективной модели (например, у вас есть 2 модели - линейная регрессия или нейронная сеть), мы обучаем эту модель (будь то линейная регрессия или нейронная сеть) для всех данных
Hima Варша

1
@HimaVarsha, поэтому, если мы решим взять среднее значение, как бы мы выбрали «усредненный классификатор»?
Armon Safai
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.