Кросс-валидация в Weka
Я всегда думал о том, что я прочитал, что перекрестная проверка выполняется следующим образом:
В k-кратной перекрестной проверке исходный образец случайным образом разделен на k подвыборки. Из k подвыборки одна подвыборка сохраняется как данные валидации для тестирования модели, и Остальные k - 1 подвыборки используются в качестве учебных данных. процесс перекрестной проверки затем повторяется k раз (складки), с каждая из k подвыборки использовалась ровно один раз в качестве данных валидации. k результатов из сгибов, то можно усреднить (или иным образом объединить) для получения единой оценки
Так построены k-модели, а последняя - средняя.
В руководстве Weka написано, что каждая модель всегда строится с использованием ВСЕГО набора данных. Итак, как работает перекрестная проверка в Weka? Является ли модель, построенная из всех данных, и "кросс-валидация" означает, что k fold создается, каждая оценка оценивается на ней, а конечные результаты результата - это просто усредненный результат из сгибов?
Ответы
Ответ 1
Итак, вот сценарий снова: у вас есть 100 помеченных данных
Использовать набор тренировок
- weka примет 100 помеченных данных
- он применит алгоритм построения классификатора из этих 100 данных
- применяется этот классификатор AGAIN on
эти 100 данных
- он предоставляет вам
классификатор (применяется к тем же 100 данным, из которых он был
разработаны)
Использовать 10-кратное CV
-
Weka принимает 100 помеченных данных
-
он производит 10 одинаковых размеров. Каждый набор разделен на две группы: для обучения используются 90 помеченных данных, а для тестирования используются 10 помеченных данных.
-
он создает классификатор с алгоритмом из 90 помеченных данных и применяет это к 10 данным тестирования для набора 1.
-
Он делает то же самое для множества от 2 до 10 и производит еще 9 классификаторов
-
он усредняет производительность 10 классификаторов, полученных из 10 равных (90 учебных и 10 тестовых) наборов
Сообщите мне, если это ответит на ваш вопрос.
Ответ 2
Я бы ответил в комментарии, но моя репутация все еще не позволяет мне:
В дополнение к принятому Рушди ответу я хочу подчеркнуть, что все модели, созданные для наборов сгибов перекрестной проверки, отбрасываются после того, как измерения производительности были выполнены и усреднены.
Полученная модель всегда основана на полном обучающем наборе, независимо от ваших вариантов тестирования. Поскольку M-T-A запрашивала обновление цитируемой ссылки, вот оно: https://web.archive.org/web/20170519110106/http://list.waikato.ac.nz/pipermail/wekalist/2009-December/046633.html/. Это ответ одного из сопровождающих WEKA, в котором указано только то, что я написал.
Ответ 3
Думаю, я понял это. Возьмите (например) weka.classifiers.rules.OneR -x 10 -d outmodel.xxx
. Это делает две вещи:
- Он создает модель, основанную на полном наборе данных. Это модель, которая написана на
outmodel.xxx
. Эта модель не используется как часть перекрестной проверки.
- Затем выполняется перекрестная проверка. кросс-валидация предполагает создание (в данном случае) 10 новых моделей с обучением и тестированием на сегментах данных, как было описано. Ключом являются модели, используемые при перекрестной проверке, являются временными и используются только для генерации статистики. Они не эквивалентны или не используются для модели, которая предоставляется пользователю.
Ответ 4
Weka следует за обычной k-кратной проверкой перекрестных ссылок, упомянутой здесь. У вас есть полный набор данных, а затем разделите его на k nos равных множеств (k1, k2,..., k10, например, для 10-кратного CV) без перекрытий. Затем при первом запуске возьмите k1 в k9 в качестве учебного набора и разработайте модель. Используйте эту модель на k10, чтобы получить производительность. Далее следуют k1 - k8 и k10 в качестве обучающего набора. Разработайте модель из них и примените ее к k9, чтобы получить производительность. Таким образом, используйте все складки, где каждая сгиб не более 1 раза используется в качестве тестового набора.
Затем Weka усредняет показатели и представляет, что на выходной панели.
Ответ 5
как только мы выполнили 10-перекрестную проверку, разделив данные на 10 сегментов & создайте дерево решений и оцените, что делает Weka - запускает алгоритм одиннадцатый раз для всего набора данных. Это тогда произведет классификатор, который мы могли бы развернуть на практике. Мы используем 10-кратную перекрестную проверку для получения результата оценки и оценки ошибки, а затем, наконец, делаем классификацию еще раз, чтобы получить фактический классификатор для использования на практике.
Во время k-й перекрестной проверки у нас будет другое дерево решений, но окончательное будет создано для целых наборов данных. CV используется, чтобы увидеть, есть ли у нас проблемы с переобучением или большим отклонением.