Перекрестная проверка в Weka

Из того, что я читал, я всегда думал, что перекрестная проверка выполняется так:

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

Таким образом, k моделей построены, и последняя является средней из них. В Weka руководство написано, что каждая модель всегда строится с использованием ВСЕГО набора данных. Так как же работает перекрестная проверка в Weka? Является ли модель построенной на основе всех данных, и "перекрестная проверка" означает, что создается k-кратное значение, затем оценивается каждое сгибание, а конечные выходные результаты являются просто усредненным результатом по сгибам?

6 ответов

Решение

Итак, вот снова сценарий: у вас есть 100 помеченных данных

Используйте тренировочный набор

  • weka примет 100 помеченных данных
  • он будет применять алгоритм для построения классификатора из этих 100 данных
  • он применяет этот классификатор ОПЯТЬ на этих 100 данных
  • он предоставляет вам производительность классификатора (применяется к тем же 100 данным, из которых он был разработан)

Используйте 10 кратное резюме

  • Weka берет 100 помеченных данных

  • он производит 10 наборов одинакового размера. Каждый набор разделен на две группы: 90 помеченных данных используются для обучения и 10 помеченных данных используются для тестирования.

  • он производит классификатор с алгоритмом из 90 помеченных данных и применяет его к 10 тестовым данным для набора 1.

  • Он делает то же самое для набора от 2 до 10 и производит еще 9 классификаторов

  • он усредняет производительность 10 классификаторов, произведенных из 10 одинаковых по размеру (90 обучающих и 10 испытательных) комплектов

Дайте мне знать, если это ответит на ваш вопрос.

Я бы ответил в комментарии, но моя репутация все еще не позволяет мне:

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

Полученная модель всегда основана на полном обучающем наборе, независимо от ваших вариантов тестирования. Поскольку MTA запрашивает обновление указанной ссылки, вот она: http://list.waikato.ac.nz/pipermail/wekalist/2009-December/046633.html. Это ответ одного из сопровождающих WEKA, в котором указано только то, что я написал.

Я думаю, что я понял это. Взять (например) weka.classifiers.rules.OneR -x 10 -d outmodel.xxx, Это делает две вещи:

  1. Он создает модель на основе полного набора данных. Это модель, которая написана outmodel.xxx, Эта модель не используется как часть перекрестной проверки.
  2. Затем выполняется перекрестная проверка. перекрестная проверка включает в себя создание (в данном случае) 10 новых моделей с обучением и тестированием сегментов данных, как было описано. Ключ - модели, используемые в перекрестной проверке, являются временными и используются только для генерации статистики. Они не эквивалентны или не используются для модели, которая предоставляется пользователю.

Как только мы выполнили 10-перекрестную проверку, разделив данные на 10 сегментов, создали дерево решений и оценили, что делает Weka - одиннадцатый раз запускает алгоритм для всего набора данных. Это тогда произведет классификатор, который мы могли бы развернуть на практике. Мы используем 10-кратную перекрестную проверку для получения результата оценки и оценки ошибки, а затем, наконец, делаем классификацию еще раз, чтобы получить фактический классификатор для использования на практике. Во время k-й перекрестной проверки у нас будет другое дерево решений, но окончательное будет создано для целых наборов данных. CV используется, чтобы увидеть, есть ли у нас переизбыток или большая проблема отклонений.

Weka следует традиционной перекрестной валидации в k-кратном порядке, которую вы упомянули здесь. У вас есть полный набор данных, а затем разделите его на k nos равных наборов (например, k1, k2, ..., k10 для 10-кратного CV) без перекрытий. Затем при первом запуске возьмите от k1 до k9 в качестве тренировочного набора и разработайте модель. Используйте эту модель на K10, чтобы получить производительность. Далее идут k1 к k8 и k10 в качестве тренировочного набора. Разработайте модель из них и примените ее к k9, чтобы получить производительность. Таким образом, используйте все сгибы, где каждый сгиб не более 1 раза используется в качестве тестового набора.

Затем Weka усредняет результаты и представляет их на панели вывода.

Согласно исследованию Data Mining with Weka из Университета Вайкато: перекрестная проверка - это способ улучшить повторяющиеся задержки. Перекрестная проверка - это систематический способ повторного удержания, который фактически улучшает его за счет уменьшения дисперсии оценки. Берем обучающий набор и создаем классификатор. Затем мы хотим оценить производительность этого классификатора, и в этой оценке есть определенная разница, потому что она все статистическая. Мы хотим, чтобы дисперсия оценки была как можно меньше. Перекрестная проверка - это способ уменьшения дисперсии, а вариант перекрестной проверки, называемый «стратифицированная перекрестная проверка», снижает ее еще больше.(В отличие от метода «повторного удержания», при котором мы выдвигаем 10% на тестирование и повторяем это 10 раз.) Итак, как работает перекрестная проверка в Weka?: При перекрестной проверке мы разделяем наш набор данных только один раз, но делим на k частей, например, 10 частей. Затем мы берем 9 частей и используем их для обучения, а последний кусок мы используем для тестирования. Затем с тем же делением берем еще 9 частей и используем их для тренировки, а оставшуюся часть - для тестирования. Мы проделываем все это 10 раз, каждый раз используя разные сегменты для тестирования. Другими словами, мы делим набор данных на 10 частей, а затем по очереди выставляем каждую из этих частей для тестирования, обучаем остальным, проводим тестирование и усредняем 10 результатов.Затем с тем же делением берем еще 9 частей и используем их для тренировки, а оставшуюся часть - для тестирования. Мы проделываем все это 10 раз, каждый раз используя разные сегменты для тестирования. Другими словами, мы делим набор данных на 10 частей, а затем по очереди выставляем каждую из этих частей для тестирования, обучаем остальным, проводим тестирование и усредняем 10 результатов.Затем с тем же делением берем еще 9 частей и используем их для тренировки, а оставшуюся часть - для тестирования. Мы проделываем все это 10 раз, каждый раз используя разные сегменты для тестирования. Другими словами, мы делим набор данных на 10 частей, а затем по очереди выставляем каждую из этих частей для тестирования, обучаем остальным, проводим тестирование и усредняем 10 результатов.


Это будет 10-кратная перекрестная проверка. Разделите набор данных на 10 частей (они называются «складками»); протянуть каждую часть по очереди; и усредните результаты. Таким образом, каждая точка данных в наборе данных используется один раз для тестирования и 9 раз для обучения. Это 10-кратная перекрестная проверка.

Другие вопросы по тегам