Понимание и применение K-кратной перекрестной проверки (перекрестной проверки)
Личная страница -->www.yansongsong.cn/
1. Концепция перекрестной проверки K-Fold
В процессе моделирования машинного обучения принято делить данные на обучающую и тестовую выборки. Тестовый набор данных не зависит от обучения и вообще не участвует в обучении, а используется для оценки итоговой модели. В процессе обучения часто возникает проблема переобучения, то есть модель может хорошо соответствовать обучающим данным, но не может хорошо предсказывать данные вне обучающей выборки. Если тестовые данные используются для настройки параметров модели в это время, это эквивалентно знанию некоторой информации о тестовых данных во время обучения, что повлияет на точность конечного результата оценки. Обычной практикой является разделение части обучающих данных на проверочные данные для оценки обучающего эффекта модели.
Данные проверки берутся из обучающих данных, но не участвуют в обучении, так что можно относительно объективно оценить степень соответствия модели данным вне обучающего набора. Перекрестная проверка, также известная как циклическая проверка, обычно используется для оценки моделей на данных проверки. Он делит исходные данные на K групп (K-Fold), использует данные каждого подмножества в качестве проверочного набора и использует оставшиеся K-1 наборы данных подмножества в качестве обучающего набора, так что будет получено K моделей. Модели K оцениваются в наборе проверки соответственно, и окончательная ошибка MSE (среднеквадратичная ошибка) добавляется и усредняется для получения ошибки перекрестной проверки. Перекрестная проверка эффективно использует ограниченные данные, а результаты оценки могут быть максимально приближены к производительности модели на тестовом наборе, что можно использовать в качестве индикатора для оптимизации модели.
2. Примеры
Ниже приведен конкретный пример, иллюстрирующий процесс K-Fold, например, следующие данные
[0.1, 0.2, 0.3, 0.4, 0.5, 0.6]
После разделения на K=3 группы
Fold1: [0.5, 0.2]
Fold2: [0.1, 0.3]
Fold3: [0.4, 0.6]
Во время перекрестной проверки следующие три модели используются для обучения и тестирования соответственно.Общая оценка перекрестной проверки получается путем сложения и усреднения ошибок MSE каждого тестового набора.
Model1: Trained on Fold1 + Fold2, Tested on Fold3
Model2: Trained on Fold2 + Fold3, Tested on Fold1
Model3: Trained on Fold1 + Fold3, Tested on Fold2
3. Объяснение применения
1. Разобьем всю обучающую выборку S на k непересекающихся подмножеств, считая, что количество обучающих примеров в S равно m, тогда каждое подмножество имеет m/k обучающих примеров, и соответствующее подмножество называется {}.
2. Берите по одному из набора моделей M за раз., а затем выберите k-1 в обучающем подмножестве
{} (то есть оставляя только по одному), используя эти k-1 подмножества для обученияПосле этого получаем гипотетическую функцию. Используйте оставшуюся часть в концесделать тест, получить ошибку опыта.
3. Так как уходим по одному(j изменяется от 1 до k), поэтому вы получаете k эмпирических ошибок, тогда для a, его эмпирическая ошибка представляет собой среднее значение k эмпирических ошибок.
4. Выберите вариант с наименьшей средней частотой эмпирических ошибок., затем повторите тренировку со всеми S, чтобы получить окончательный.
основное содержание:
Протестируйте производительность модели, выполнив указанные выше шаги 1, 2 и 3, и возьмите среднее значение в качестве индекса производительности модели.
Метод 1, объединить все обученные KFolds
Второй способ заключается в выборе оптимальной модели по показателям производительности, а затем выполнении описанного выше шага 4 для переобучения для получения окончательной модели.
Вопрос ответ:
1. Почему бы не разделить обучающий набор и набор данных напрямую для проверки производительности модели, а вместо этого использовать форму множественных делений, не слишком ли это хлопотно?
Чтобы предотвратить проблему переобучения в процессе обучения, обычной практикой является разделение данных на обучающую и тестовую выборки. Тестовый набор данных не зависит от обучения и вообще не участвует в обучении, а используется для оценки итоговой модели. Такое прямое деление приведет к проблеме, что тестовая выборка не будет участвовать в обучении, поэтому эта часть данных будет потрачена впустую на небольшой набор данных, и модель не сможет быть оптимизирована (данные определяют верхнюю границу производительность процесса, и модель и алгоритм будут приближаться к этому верхнему пределу). Однако мы не можем разделить тестовый набор, потому что нам нужно проверить эффективность обобщения сети. Весь набор данных можно использовать в виде нескольких разделов K-Fold. Наконец, средний метод используется для разумного представления производительности модели.
2. Почему все наборы данных переобучаются, это пустая трата времени?
Мы тренируемся в форме нескольких подразделений K-Fold, чтобы получить индекс производительности определенной модели.Одна модель, обученная K-Fold, не может отражать общую производительность, но мы можем записать отличные суперпроизводительность с помощью обучения K-Fold. параметры, а затем переобучение с оптимальными параметрами оптимальной модели позволит добиться лучших результатов.
Также можно принять метод метода 1, чтобы остановить обучение и использовать метод слияния моделей.
3. Когда использовать K-Fold
На мой взгляд, когда общий объем данных небольшой, другие методы не могут продолжать улучшать производительность, и вы можете попробовать K-Fold. В других случаях это не рекомендуется, например, если объем данных большой, нет необходимости в дополнительных обучающих данных, а стоимость обучения должна быть увеличена в K раз (в основном относится к времени обучения).
4. Примеры
После проведения 5 тренировок по вышеуказанным комбинациям 5 у нас есть модели 5 при тестировании, и каждая модель предсказывает тестовый набор, чтобы получить матрицы вероятности 5. Форма каждой матрицы вероятности (количество выборок тестового набора x 17). Мы можем напрямую усреднять пять матриц вероятностей, а затем делать прогнозы для двух классов, или мы можем делать прогнозы для двух классов отдельно, а затем голосовать, чтобы получить окончательные результаты прогнозирования для нескольких классов. Этот результат фактически использует данные обучения всех 5 складок, которые будут более точными и более стабильными.
Конечно, если вы просто хотите использовать все данные, более простой способ — запустить всю обучающую выборку непосредственно с этой моделью, а затем использовать обученную модель для прогнозирования тестовой выборки. Однако этот второй метод мы не применяли: во-первых, все обучающие выборки были «видены» моделью, а дополнительной проверочной выборки не было, поэтому было сложно оценить ее обобщающую эффективность, во-вторых, мы считали, что в первом методе , Результаты прогнозирования 5 моделей сделаны простым ансамблем, который будет более стабильным.
5. Ссылка
1.K-кратная перекрестная проверка (перекрестная проверка)