Я не уверен, что вы хотите сделать на шаге 7а. Как я понимаю, сейчас это не имеет смысла для меня.
Вот как я понимаю ваше описание: на шаге 7 вы хотите сравнить эффективность удержания с результатами перекрестной проверки, охватывающей шаги 4–6 (так что да, это будет вложенная установка).
Основные моменты, почему я не думаю, что это сравнение имеет большой смысл:
Это сравнение не может обнаружить два основных источника результатов овероптимистической проверки, с которыми я сталкиваюсь на практике:
утечка данных (зависимость) между обучающими и тестовыми данными, которая вызвана иерархической (то есть кластеризованной) структурой данных и которая не учитывается при расщеплении. В моей области у нас обычно есть несколько (иногда тысячи) показаний (= строк в матрице данных) одного и того же пациента или биологической копии эксперимента. Они не являются независимыми, поэтому разделение валидации необходимо проводить на уровне пациента. Тем не менее, такая утечка данных происходит, вы будете иметь это как в разделении для набора удержания, так и в перекрестном разделении проверки. Выдержка будет таким же оптимистичным, как и перекрестная проверка.
Предварительная обработка данных выполняется во всей матрице данных, где вычисления не являются независимыми для каждой строки, но многие / все строки используются для расчета параметров для предварительной обработки. Типичными примерами могут быть, например, прогноз PCA до «фактической» классификации.
Опять же, это повлияет как на вашу задержку, так и на внешнюю перекрестную проверку, поэтому вы не сможете ее обнаружить.
Для данных, с которыми я работаю, обе ошибки могут легко привести к недооценке доли неправильных классификаций на порядок!
Если вы ограничены этой подсчитанной долей типа производительности тестовых случаев, для сравнения моделей необходимо либо чрезвычайно большое количество тестовых случаев, либо смехотворно большие различия в истинной производительности. Сравнение двух классификаторов с неограниченными данными обучения может быть хорошим началом для дальнейшего чтения.
Однако, сравнивая качество модели, утверждения о внутренней перекрестной проверке для «оптимальной» модели и внешней перекрестной проверки или отложенной проверки имеют смысл: если расхождение велико, сомнительно, сработала ли ваша поисковая оптимизация по сетке (возможно, у вас дисперсия скиммера из-за высокой дисперсии показателя эффективности). Это сравнение легче в том, что вы можете обнаружить проблемы, если у вас внутренняя оценка смехотворно хороша по сравнению с другой - если это не так, вам не нужно сильно беспокоиться о своей оптимизации. Но в любом случае, если ваше внешнее (7) измерение производительности является честным и надежным, у вас по крайней мере будет полезная оценка полученной модели, независимо от того, является ли она оптимальной или нет.
ИМХО измерение кривой обучения - это еще одна проблема. Я бы , вероятно , иметь дело с этим отдельно, и я думаю , что вам нужно , чтобы более ясно , что вам нужно кривое обучение для (вам нужно кривые обучений для определения в наборе данных данной задачи, данных и методу классификации или кривое обучение для этого набора данных данной проблемы, данных и метода классификации), а также множество дальнейших решений (например, как справиться со сложностью модели как функцией размера обучающей выборки? Оптимизировать все заново, использовать фиксированные гиперпараметры, принять решение о функция для исправления гиперпараметров в зависимости от размера тренировочного набора?)
(Мои данные обычно имеют так мало независимых случаев, чтобы измерить кривую обучения достаточно точно, чтобы использовать ее на практике - но вам может быть лучше, если ваши 1200 строк фактически независимы)
Обновление: Что не так с примером scikit-learn?
Прежде всего, здесь нет ничего плохого во вложенной перекрестной проверке. Вложенная проверка имеет первостепенное значение для оптимизации, управляемой данными, и перекрестная проверка является очень мощным подходом (особенно если повторяется / повторяется).
Затем, если что-то не так, зависит от вашей точки зрения: пока вы выполняете честную вложенную проверку (сохраняя данные внешнего теста строго независимыми), внешняя проверка является надлежащей мерой производительности «оптимальной» модели. В этом нет ничего плохого.
Но при поиске в сетке этих показателей производительности пропорционального типа для настройки гиперпараметра SVM могут и не получатся некоторые вещи. По сути, они означают, что вы не можете (вероятно?) Полагаться на оптимизацию. Тем не менее, если ваше внешнее разделение было выполнено правильно, даже если модель не самая лучшая из возможных, у вас есть честная оценка производительности модели, которую вы получили.
Я постараюсь дать интуитивное объяснение, почему оптимизация может быть в беде:
Говоря математически / статистически, проблема с пропорциями заключается в том, что измеренные пропорции подвержены огромным отклонениям из-за конечного размера тестовой выборки (в зависимости также от истинных характеристик модели, ):p^np
Var(p^)=p(1−p)n
Вам нужно смехотворно огромное количество случаев (по крайней мере, по сравнению с количеством случаев, которые я обычно могу иметь), чтобы достичь необходимой точности (смещение / чувство отклонения) для оценки отзыва, точности (чувство производительности машинного обучения). Это, конечно, относится и к коэффициентам, которые вы рассчитываете из таких пропорций. Посмотрите на доверительные интервалы для биномиальных пропорций. Они потрясающе большие! Часто больше, чем истинное улучшение производительности по сравнению с сеткой гиперпараметров. И с точки зрения статистики, поиск по сетке - это серьезная проблема множественного сравнения: чем больше точек сетки вы оцениваете, тем выше риск найти некоторую комбинацию гиперпараметров, которая случайно выглядит очень хорошо для расщепления поезда / теста, которое вы оцениваете. Вот что я имею в виду под дисперсией скимминга.
Интуитивно, рассмотрим гипотетическое изменение гиперпараметра, которое медленно приводит к ухудшению модели: один тестовый пример движется к границе решения. «Жесткие» показатели эффективности пропорции не обнаруживают это до тех пор, пока дело не пересекает границу и не переходит на другую сторону. Затем, однако, они сразу же назначают полную ошибку для бесконечно малого изменения гиперпараметра.
Чтобы выполнить числовую оптимизацию, вам нужно, чтобы показатель производительности был хорошим. Это означает, что ни переходная (не непрерывно дифференцируемая) часть показателя производительности пропорционального типа, ни тот факт, что, кроме этого скачка, фактически обнаруженные изменения не обнаруживаются, не подходят для оптимизации.
Правильные правила оценки определяются таким образом, который особенно подходит для оптимизации. Они имеют свой глобальный максимум, когда прогнозируемые вероятности соответствуют истинным вероятностям для каждого случая принадлежности к рассматриваемому классу.
Для SVM у вас есть дополнительная проблема, заключающаяся в том, что не только показатели производительности, но и модель реагируют таким скачкообразным образом: небольшие изменения гиперпараметра ничего не изменят. Модель изменяется только тогда, когда гиперпараметры изменяются настолько, что некоторые случаи перестают быть опорным вектором или становятся опорным вектором. Опять же, такие модели сложно оптимизировать.
Литература:
- Браун, Л .; Cai, T. & DasGupta, A .: Оценка интервала для биномиальной пропорции, Статистическая наука, 16, 101-133 (2001).
- Cawley, GC & Talbot, NLC: О переоснащении при выборе модели и смещении последующего выбора при оценке эффективности, Journal of Machine Learning Research, 11, 2079-2107 (2010).
Gneiting, T. & Raftery, AE: Строго правильные правила оценки, прогнозирования и оценки, Журнал Американской статистической ассоциации, 102, 359-378 (2007). DOI: 10.1198 / 016214506000001437
Brereton, R .: Хемометрика для распознавания образов, Wiley, (2009).
указывает на скачкообразное поведение SVM как функции гиперпараметров.
Обновление II: дисперсия скимминга
То, что вы можете себе позволить с точки зрения сравнения моделей, очевидно, зависит от количества независимых случаев. Давайте сделаем несколько быстрых и грязных симуляций о риске скимминговой дисперсии здесь:
scikit.learn
говорит, что у них 1797 есть digits
данные.
- Предположим, что сравниваются 100 моделей, например, сетка × для 2 параметров.10×10
- предположим, что оба параметра (диапазоны) вообще не влияют на модели,
т.е. все модели имеют одинаковую истинную производительность, скажем, 97% (типичная производительность для digits
набора данных).
Выполните моделирования "тестирования этих моделей" с размером выборки = 1797 строк в наборе данных104digits
p.true = 0.97 # hypothetical true performance for all models
n.models = 100 # 10 x 10 grid
n.rows = 1797 # rows in scikit digits data
sim.test <- replicate (expr= rbinom (n= nmodels, size= n.rows, prob= p.true),
n = 1e4)
sim.test <- colMaxs (sim.test) # take best model
hist (sim.test / n.rows,
breaks = (round (p.true * n.rows) : n.rows) / n.rows + 1 / 2 / n.rows,
col = "black", main = 'Distribution max. observed performance',
xlab = "max. observed performance", ylab = "n runs")
abline (v = p.outer, col = "red")
Вот распределение для лучшей наблюдаемой производительности:
Красная линия обозначает истинную производительность всех наших гипотетических моделей. В среднем, мы наблюдаем только 2/3 истинной частоты ошибок для, казалось бы, лучшей из 100 сравниваемых моделей (для моделирования мы знаем, что все они работают одинаково с 97% правильных прогнозов).
Это моделирование, очевидно, очень сильно упрощено:
- В дополнение к дисперсии размера тестовой выборки есть, по крайней мере, дисперсия из-за нестабильности модели, поэтому мы недооцениваем дисперсию здесь
- Параметры настройки, влияющие на сложность модели, обычно охватывают наборы параметров, где модели нестабильны и, следовательно, имеют высокую дисперсию.
- Для цифр UCI из примера исходная база данных имеет ок. 11000 цифр написано 44 человека. Что если данные сгруппированы в соответствии с тем, кто написал? (То есть легче распознать цифру 8, написанную кем-то, если вы знаете, как этот человек пишет, скажем, цифру 3?). Тогда эффективный размер выборки может составлять всего 44.
- Настройка гиперпараметров модели может привести к корреляции между моделями (фактически, это будет считаться хорошим поведением с точки зрения численной оптимизации). Сложно предсказать влияние этого (и я подозреваю, что это невозможно без учета фактического типа классификатора).
В целом, однако, как небольшое количество независимых тестовых случаев, так и большое количество сравниваемых моделей увеличивают смещение. Кроме того, статья Коули и Тэлбота дает эмпирическое наблюдаемое поведение.