Валидация модели

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
(Новая: '''Валидация моделей''' — совокупность методов оценки качества модели на данных, которые не использова...)
Строка 1: Строка 1:
-
'''Валидация моделей''' — совокупность методов оценки качества модели на данных, которые не использовались непосредственно при её обучении. В [[машинное обучение|машинном обучении]] валидация применяется для выбора алгоритма, настройки [[гиперпараметр]]ов и оценки способности модели работать с новыми объектами.
+
'''Валидация моделей''' — оценивание качества модели на данных, которые не использовались при обучении её параметров. В [[Машинное обучение|машинном обучении]] валидация нужна для выбора алгоритма, настройки [[Гиперпараметр|гиперпараметров]] и проверки способности модели работать с новыми объектами.
-
Необходимость валидации связана с тем, что малая ошибка на обучающей выборке не гарантирует хорошего качества после внедрения. Модель может запомнить случайные особенности данных и показать высокий результат только на уже известных примерах. Такое явление называется [[переобучение]]м.
+
Ошибка на обучающей выборке для этой цели непригодна. Параметры модели подбираются именно по обучающим данным, поэтому полученная на них оценка обычно занижена. Кроме устойчивой зависимости модель может усвоить шум, выбросы и случайные особенности конкретной выборки. Это явление называется [[Переобучение|переобучением]].
-
Результат валидации не является доказательством универсальной пригодности модели. Он зависит от состава данных, способа их разделения и выбранной [[метрика качества|метрики качества]].
+
Валидация не гарантирует сохранения качества при любых условиях. Её результат относится к конкретным данным, способу разделения и выбранной [[Метрика качества|метрике]]. Если контрольная выборка не воспроизводит будущие условия применения, точность вычислений не делает оценку содержательно правильной.
-
== Основная задача ==
+
== Задача валидации ==
-
Пусть объекты <tex>x</tex> и ответы <tex>y</tex> порождаются неизвестным распределением <tex>P(x,y)</tex>. Модель <tex>f</tex> оценивается по ожидаемому риску
+
Пусть пары <tex>(x,y)</tex> порождаются неизвестным распределением <tex>P(x,y)</tex>, а <tex>f</tex> обозначает модель. Её качество определяется ожидаемым риском
:: <tex>R(f)=\mathbb{E}_{(x,y)\sim P}L(y,f(x)),</tex>
:: <tex>R(f)=\mathbb{E}_{(x,y)\sim P}L(y,f(x)),</tex>
-
где <tex>L</tex> — [[функция потерь]].
+
где <tex>L</tex> — [[Функция потерь|функция потерь]].
-
Распределение <tex>P(x,y)</tex> неизвестно, поэтому истинный риск обычно невозможно вычислить. Вместо него используется средняя ошибка на конечной выборке:
+
Распределение <tex>P(x,y)</tex> неизвестно, поэтому ожидаемый риск оценивают по конечной выборке:
:: <tex>\widehat{R}(f)=\frac{1}{m}\sum_{i=1}^{m}L(y_i,f(x_i)).</tex>
:: <tex>\widehat{R}(f)=\frac{1}{m}\sum_{i=1}^{m}L(y_i,f(x_i)).</tex>
-
Если ошибка вычисляется на данных обучения, её значение обычно оказывается заниженным, поскольку параметры модели подбирались именно по этим объектам.
+
Если объекты <tex>(x_i,y_i)</tex> не участвовали в обучении модели, величина <tex>\widehat{R}(f)</tex> служит оценкой ошибки обобщения. Она остаётся случайной: другое разбиение данных может дать иной результат.
-
'''Валидационная ошибка''' вычисляется на данных, не участвовавших в обучении параметров. Она лучше характеризует обобщающую способность, но остаётся случайной величиной и может изменяться при другом разбиении данных.
+
Валидация решает две задачи, которые нельзя смешивать:
-
Валидация решает две разные задачи:
+
# выбор модели, признаков и гиперпараметров;
 +
# независимая оценка уже выбранной процедуры.
-
# выбор модели и гиперпараметров;
+
Если одна и та же выборка используется и для настройки, и для итоговой оценки, процедура постепенно приспосабливается к её особенностям. Полученная метрика оказывается оптимистически смещённой.<ref name="Cawley2010">Cawley G. C., Talbot N. L. C. On Over-fitting in Model Selection and Subsequent Selection Bias in Performance Evaluation // Journal of Machine Learning Research. 2010. Vol. 11. P. 2079–2107.</ref>
-
 
+
-
# оценка качества уже выбранной процедуры.
+
-
 
+
-
Использование одной и той же выборки для обеих задач приводит к оптимистическому смещению оценки.<ref>Cawley G. C., Talbot N. L. C. On Over-fitting in Model Selection and Subsequent Selection Bias in Performance Evaluation // Journal of Machine Learning Research. 2010. Vol. 11. P. 2079–2107.</ref>
+
== Обобщающая способность ==
== Обобщающая способность ==
-
'''Обобщающая способность''' — способность модели сохранять качество на объектах, не входивших в обучающую выборку.
+
'''Обобщающая способность''' — способность модели сохранять качество на объектах, не представленных при обучении.
-
 
+
-
Обычно предполагается, что обучающие и будущие данные получены из одного распределения. На практике это условие часто нарушается: данные могут зависеть от времени, относиться к одним и тем же пользователям или поступать из разных организаций.
+
-
 
+
-
Поэтому схема валидации должна соответствовать реальному сценарию применения. Если модель предназначена для новых пациентов, записи одного пациента нельзя распределять между обучением и проверкой. Если требуется прогноз будущего, контрольные данные должны быть получены позже обучающих.
+
-
=== Переобучение и недообучение ===
+
Стандартная теория предполагает, что обучающие и будущие наблюдения независимы и получены из одного распределения. В прикладных задачах это условие часто нарушается. Несколько строк могут относиться к одному пользователю, данные могут зависеть от времени, а условия сбора — различаться между организациями.
-
'''Переобучение''' возникает, когда модель описывает не только устойчивые закономерности, но и случайный шум. Его типичный признак — малая обучающая ошибка при значительно большей валидационной.
+
Поэтому понятие «новый объект» определяется сценарием применения. Если модель должна работать с новыми пациентами, все записи одного пациента помещаются в одну часть данных. Если требуется прогноз будущего, валидационные наблюдения должны следовать за обучающими по времени.
-
'''Недообучение''' означает, что модель не способна описать существенные зависимости. В этом случае высокими остаются обе ошибки.
+
'''Переобучение''' проявляется малой ошибкой на обучающей выборке и заметно большей ошибкой на контрольной. Его вероятность зависит не только от сложности модели, но и от объёма данных, уровня шума, числа проверенных конфигураций и способа отбора признаков.
-
Переобучение зависит не только от сложности модели, но и от объёма данных, качества признаков, уровня шума и количества проверенных конфигураций.
+
'''Недообучение''' возникает, когда модель не описывает существенные зависимости. В этом случае высокими остаются и обучающая, и валидационная ошибки.
== Разделение данных ==
== Разделение данных ==
-
В классической схеме данные делятся на три части.
+
В классической схеме исходная выборка разделяется на три части.
'''Обучающая выборка''' используется для оценки параметров модели.
'''Обучающая выборка''' используется для оценки параметров модели.
-
'''Валидационная выборка''' применяется для выбора алгоритма, признаков и гиперпараметров.
+
'''Валидационная выборка''' служит для выбора алгоритма, признаков, порога решения и гиперпараметров.
-
'''Тестовая выборка''' служит для итоговой оценки уже выбранной процедуры.
+
'''Тестовая выборка''' применяется один раз — для итоговой оценки выбранной процедуры.
-
Если результат на тестовой выборке влияет на изменение модели, эта выборка фактически становится валидационной и перестаёт обеспечивать независимую оценку.
+
Различие между валидационной и тестовой выборками определяется не происхождением данных, а способом использования. Если тестовая метрика влияет на дальнейшую настройку, тестовая выборка фактически становится валидационной.
-
После завершения настройки модель может быть повторно обучена на объединении обучающей и валидационной частей. Тестовые данные при этом не используются.
+
После завершения выбора модель можно обучить заново на объединённых обучающих и валидационных данных. Тестовая часть при этом остаётся изолированной.
== Валидация на удержанной выборке ==
== Валидация на удержанной выборке ==
-
'''Валидация на удержанной выборке''', или ''hold-out validation'', предполагает однократное разделение данных на обучающую и контрольную части.
+
'''Валидация на удержанной выборке''', или ''hold-out validation'', использует одно разделение данных на обучающую и контрольную части.
-
Преимущество метода состоит в низкой вычислительной стоимости: каждая конфигурация обучается один раз.
+
Метод требует одного обучения для каждой конфигурации и подходит для крупных выборок. Его слабое место — зависимость от конкретного разделения. При небольшом числе объектов замена нескольких наблюдений способна заметно изменить метрику.
-
Основное ограничение — зависимость результата от конкретного разбиения. При малом объёме данных различные разделения могут давать заметно отличающиеся оценки.
+
Фиксированная пропорция, например 80:20, не является универсальным правилом. Значение имеет абсолютное число контрольных объектов, а в классификации — число представителей каждого класса.
-
 
+
-
Метод обычно применяется, когда данных достаточно много и обе части остаются репрезентативными.
+
-
 
+
-
Универсального соотношения между обучающей и контрольной выборками не существует. Важны не только доли, но и абсолютное число объектов, а в классификации — количество примеров каждого класса.
+
== Перекрёстная проверка ==
== Перекрёстная проверка ==
-
'''Перекрёстная проверка''', или ''cross-validation'', многократно разделяет данные на обучающие и контрольные части. Разные объекты поочерёдно используются для проверки, что позволяет эффективнее использовать ограниченную выборку.
+
'''Перекрёстная проверка''', или ''cross-validation'', использует несколько разделений одной выборки. Объекты поочерёдно включаются в контрольные части, что снижает зависимость оценки от одного разбиения.
=== k-блочная перекрёстная проверка ===
=== k-блочная перекрёстная проверка ===
Строка 81: Строка 70:
:: <tex>D=D_1\cup D_2\cup\ldots\cup D_k.</tex>
:: <tex>D=D_1\cup D_2\cup\ldots\cup D_k.</tex>
-
На каждом шаге один блок используется для проверки, а остальные — для обучения. Итоговая ошибка равна среднему значению по блокам:
+
На шаге <tex>j</tex> блок <tex>D_j</tex> используется для проверки, остальные блоки — для обучения. Итоговая оценка равна
-
:: <tex>\widehat{R}*{CV}=\frac{1}{k}\sum*{j=1}^{k}\widehat{R}_j.</tex>
+
:: <tex>\widehat{R}_{CV}=\frac{1}{k}\sum_{j=1}^{k}\widehat{R}_j.</tex>
-
Часто применяются значения <tex>k=5</tex> или <tex>k=10</tex>, обеспечивающие компромисс между устойчивостью оценки и вычислительной стоимостью.<ref>Hastie T., Tibshirani R., Friedman J. The Elements of Statistical Learning. 2nd ed. New York: Springer, 2009.</ref>
+
Каждый объект один раз участвует в проверке и <tex>k-1</tex> раз — в обучении. Значения <tex>k=5</tex> и <tex>k=10</tex> часто дают приемлемое соотношение между вычислительной стоимостью и устойчивостью оценки.<ref name="Hastie2009">Hastie T., Tibshirani R., Friedman J. The Elements of Statistical Learning. 2nd ed. New York: Springer, 2009.</ref>
 +
 
 +
Увеличение числа блоков не гарантирует более надёжного результата. Обучающие подвыборки сильнее пересекаются, а стоимость вычислений растёт.
=== Стратификация ===
=== Стратификация ===
Строка 91: Строка 82:
При '''стратифицированной перекрёстной проверке''' в каждом блоке сохраняются приблизительно одинаковые доли классов.
При '''стратифицированной перекрёстной проверке''' в каждом блоке сохраняются приблизительно одинаковые доли классов.
-
Стратификация особенно важна при несбалансированной классификации, когда редкий класс может отсутствовать в отдельных блоках.
+
Стратификация нужна при дисбалансе классов: без неё редкий класс может отсутствовать в отдельных контрольных частях. Однако она не устраняет зависимость между объектами и не защищает от утечки данных.
-
 
+
-
Она не устраняет зависимость между объектами и не защищает от утечки данных.
+
=== Повторная перекрёстная проверка ===
=== Повторная перекрёстная проверка ===
-
При повторной проверке разбиение выполняется несколько раз с различными случайными состояниями.
+
При повторной проверке разбиение на <tex>k</tex> блоков строится несколько раз. Разброс результатов показывает чувствительность модели к составу фолдов.
-
Метод позволяет оценить чувствительность результата к конкретному разделению, но увеличивает вычислительную стоимость.
+
Повторения уменьшают влияние неудачного разделения, но не создают новых независимых наблюдений. Метрики разных запусков остаются статистически связанными.
-
 
+
-
Результаты разных повторений не являются полностью независимыми, поскольку используются одни и те же исходные данные.
+
=== Leave-One-Out ===
=== Leave-One-Out ===
-
При '''Leave-One-Out Cross-Validation''' каждый объект поочерёдно используется как единственный контрольный пример:
+
В схеме '''Leave-One-Out Cross-Validation''' каждый объект поочерёдно становится единственным контрольным примером:
-
:: <tex>\widehat{R}*{LOO}=\frac{1}{n}\sum*{i=1}^{n}L(y_i,f_{D\setminus{i}}(x_i)).</tex>
+
:: <tex>\widehat{R}_{LOO}=\frac{1}{n}\sum_{i=1}^{n}L\left(y_i,f_{D\setminus\{i\}}(x_i)\right).</tex>
-
Метод использует почти всю выборку для каждого обучения, но требует <tex>n</tex> запусков и может быть чувствителен к отдельным объектам.
+
Каждая модель обучается на <tex>n-1</tex> объектах. Метод использует почти всю выборку, но требует <tex>n</tex> обучений и может быть чувствителен к отдельным наблюдениям. Его применение оправдано главным образом при очень малом объёме данных.
-
 
+
-
Он применяется главным образом при очень малом числе независимых наблюдений.
+
== Групповая валидация ==
== Групповая валидация ==
-
Во многих задачах отдельные строки таблицы не являются независимыми. Несколько записей могут относиться к одному пользователю, пациенту, устройству, документу или видеоролику.
+
Построчное случайное разделение некорректно, если несколько записей относятся к одной сущности: пациенту, пользователю, устройству, документу или видеоролику.
-
Если объекты одной группы попадают одновременно в обучение и валидацию, модель может запомнить особенности группы, что приводит к завышенной оценке.
+
Попадание одной группы одновременно в обучение и проверку позволяет модели использовать её индивидуальные особенности. Такая оценка показывает качество на новых записях известных групп, а не на действительно новых группах.
-
При '''Group K-Fold''' все объекты одной группы помещаются в один блок. Обучающая и контрольная части не содержат общих групп.
+
При '''Group K-Fold''' все объекты одной группы помещаются в один блок. Обучающая и контрольная части не содержат общих групп. Единица разделения должна совпадать с единицей будущего обобщения.
-
 
+
-
Такая схема оценивает способность модели работать с новыми группами, а не только с новыми записями уже известных групп.
+
== Валидация временных данных ==
== Валидация временных данных ==
-
Для временных данных случайное перемешивание обычно некорректно, поскольку модель может получить доступ к информации из будущего.
+
Для временных данных случайное перемешивание обычно недопустимо: модель может получить информацию из будущего.
-
Должно выполняться условие:
+
Должно выполняться условие
:: <tex>t_{\mathrm{train}} < t_{\mathrm{val}}.</tex>
:: <tex>t_{\mathrm{train}} < t_{\mathrm{val}}.</tex>
-
Здесь <tex>t_{\mathrm{train}}</tex> обозначает моменты времени, относящиеся к обучающей выборке, а <tex>t_{\mathrm{val}}</tex> — моменты времени, относящиеся к валидационной выборке.
+
Здесь <tex>t_{\mathrm{train}}</tex> обозначает время обучающих наблюдений, а <tex>t_{\mathrm{val}}</tex> — время валидационных.
 +
 
 +
При простом временном разделении ранний период используется для обучения, более поздний — для проверки.
 +
 
 +
При '''расширяющемся окне''' обучающий интервал постепенно увеличивается. Такая схема соответствует системам, которые при каждом переобучении используют всю накопленную историю.
 +
 
 +
При '''скользящем окне''' длина обучающего интервала остаётся постоянной: новые наблюдения добавляются, старые исключаются. Метод уместен, когда давние данные теряют актуальность.
 +
 
 +
'''Последовательная валидация''' (англ. ''walk-forward validation'') повторяет обучение и прогнозирование так, чтобы каждый прогноз основывался только на ранее доступной информации.
 +
 
 +
Если признаки вычисляются по временным интервалам, между обучающей и контрольной частями оставляют зазор. Он предотвращает пересечение исходных окон и утечку будущей информации.
-
При простом временном разделении ранние данные используются для обучения, а более поздние — для проверки.
 
== Вложенная перекрёстная проверка ==
== Вложенная перекрёстная проверка ==
-
При активном подборе гиперпараметров обычная перекрёстная проверка может давать заниженную ошибку. Среди большого числа конфигураций выбирается не только сильная модель, но и модель, которой случайно подошло конкретное разбиение.
+
Обычная перекрёстная проверка даёт смещённую оценку, если её результат одновременно используется для выбора гиперпараметров и сообщения итогового качества. Среди большого числа конфигураций часть получает низкую ошибку случайно.
-
'''Вложенная перекрёстная проверка''' содержит два уровня:
+
'''Вложенная перекрёстная проверка''' разделяет эти задачи:
# внутренний цикл выбирает гиперпараметры;
# внутренний цикл выбирает гиперпараметры;
-
 
# внешний цикл оценивает всю процедуру выбора.
# внешний цикл оценивает всю процедуру выбора.
-
На каждом внешнем шаге один блок откладывается. На оставшихся данных проводится внутренний подбор, после чего выбранная модель проверяется на внешнем блоке.
+
На каждом внешнем шаге один блок откладывается. На оставшихся данных проводится внутренний подбор. Затем выбранная конфигурация обучается заново и проверяется на внешнем блоке.
-
Метод особенно полезен при малой выборке и отсутствии отдельного тестового набора.<ref>Varma S., Simon R. Bias in Error Estimation When Using Cross-Validation for Model Selection // BMC Bioinformatics. 2006. Vol. 7. Article 91.</ref>
+
Метод особенно важен при малой выборке, широком поиске гиперпараметров и отсутствии отдельного тестового набора.<ref name="Varma2006">Varma S., Simon R. Bias in Error Estimation When Using Cross-Validation for Model Selection // BMC Bioinformatics. 2006. Vol. 7. Article 91.</ref>
-
Главный недостаток высокая вычислительная стоимость.
+
Цена независимой оценки большое число обучений.
== Бутстрэп и out-of-bag-оценка ==
== Бутстрэп и out-of-bag-оценка ==
-
'''Бутстрэп''' формирует выборки того же размера путём случайного выбора объектов с возвращением.<ref>Efron B., Tibshirani R. J. An Introduction to the Bootstrap. New York: Chapman & Hall, 1993.</ref>
+
'''Бутстрэп''' формирует выборки того же размера путём случайного выбора объектов с возвращением.<ref name="Efron1993">Efron B., Tibshirani R. J. An Introduction to the Bootstrap. New York: Chapman & Hall, 1993.</ref>
-
Вероятность того, что конкретный объект не попадёт в бутстрэп-выборку, приблизительно равна
+
Вероятность того, что объект не попадёт в бутстрэп-выборку, при большом <tex>n</tex> приближается к
:: <tex>e^{-1}\approx 0{,}368.</tex>
:: <tex>e^{-1}\approx 0{,}368.</tex>
-
Следовательно, одна такая выборка содержит около 63,2 % различных объектов исходного набора.
+
Поэтому одна бутстрэп-выборка содержит около 63,2 % различных объектов исходного набора.
-
Объекты, не вошедшие в конкретную выборку, называются '''out-of-bag'''-объектами и могут использоваться для проверки модели.
+
Невыбранные объекты называются '''out-of-bag'''-объектами. Они используются для оценки модели, обученной без них. Такой подход применяется, например, в [[Случайный лес|случайных лесах]].<ref>Breiman L. Random Forests // Machine Learning. 2001. Vol. 45. P. 5–32.</ref>
-
Этот подход применяется, например, в [[случайный лес|случайных лесах]].<ref>Breiman L. Random Forests // Machine Learning. 2001. Vol. 45. P. 5–32.</ref>
+
Бутстрэп особенно полезен для анализа устойчивости и построения доверительных интервалов. Он не является автоматической заменой перекрёстной проверке: свойства оценки зависят от алгоритма и объёма данных.
-
 
+
-
Бутстрэп также используется для оценки неопределённости и построения доверительных интервалов.
+
== Валидация полного конвейера ==
== Валидация полного конвейера ==
-
Валидации подлежит весь процесс обработки данных:
+
Валидации подлежит не только модель, но и весь процесс обработки:
: '''исходные данные''' → '''предварительная обработка''' → '''признаки''' → '''модель'''
: '''исходные данные''' → '''предварительная обработка''' → '''признаки''' → '''модель'''
-
Все операции, параметры которых оцениваются по данным, должны выполняться отдельно внутри каждой обучающей части.
+
Любое преобразование, параметры которого оцениваются по данным, обучается только на обучающей части каждого фолда. Это относится к заполнению пропусков, нормализации, кодированию категорий, отбору признаков, уменьшению размерности, балансировке классов и выбору порога.
-
К ним относятся:
+
-
 
+
-
* заполнение пропусков;
+
-
* нормализация;
+
-
* кодирование категорий;
+
-
* отбор признаков;
+
-
* уменьшение размерности;
+
-
* балансировка классов;
+
-
* выбор порога классификации.
+
-
Если, например, среднее значение признака вычислено по всей выборке до разделения, контрольные данные уже повлияли на обучение.
+
Например, если среднее значение признака вычислено по всей выборке до разделения, контрольные объекты уже повлияли на обучение. Последующая перекрёстная проверка не исправляет эту ошибку.
== Утечка данных ==
== Утечка данных ==
-
'''Утечка данных''' — попадание в обучение информации, которая не должна быть доступна при реальном прогнозировании.
+
'''Утечка данных''' — использование информации, недоступной в реальном моменте прогнозирования или принадлежащей контрольной части.
-
Основные виды утечки:
+
Основные случаи:
-
* признак прямо или косвенно содержит правильный ответ;
+
* признак прямо или косвенно содержит целевую переменную;
-
* одинаковые или почти одинаковые объекты попадают в разные части;
+
* дубликаты или связанные объекты попадают в разные части;
-
* обработка признаков выполняется до разделения;
+
* предварительная обработка выполняется до разделения;
-
* модель использует сведения из будущего.
+
* при временном прогнозировании используются будущие события.
-
Утечка приводит к завышенной оценке качества и может сделать модель непригодной после внедрения.
+
Утечка почти всегда завышает качество. Иногда модель после внедрения теряет большую часть точности, поскольку главный источник её предсказаний в рабочей среде отсутствует.
-
Для её предотвращения необходимо определить момент прогнозирования, допустимый набор информации и корректную единицу разделения.
+
Предотвращение утечки начинается не с выбора функции разделения, а с точного определения момента прогнозирования, доступной к этому моменту информации и независимой единицы наблюдения.
== Выбор гиперпараметров ==
== Выбор гиперпараметров ==
Строка 204: Строка 184:
Пусть <tex>\lambda</tex> обозначает конфигурацию гиперпараметров. Выбирается значение
Пусть <tex>\lambda</tex> обозначает конфигурацию гиперпараметров. Выбирается значение
-
:: <tex>\widehat{\lambda}=\arg\min_{\lambda}\widehat{R}_{val}(\lambda).</tex>
+
:: <tex>\widehat{\lambda}=\arg\min_{\lambda}\widehat{R}_{\mathrm{val}}(\lambda).</tex>
-
Чем больше конфигураций проверяется, тем выше вероятность переобучения на валидационной выборке.
+
Чем больше конфигураций проверяется, тем выше вероятность выбрать вариант, которому случайно подошла конкретная валидационная выборка. Возникает переобучение уже не параметров модели, а всей процедуры поиска.
-
Для уменьшения смещения применяются независимая тестовая выборка, вложенная перекрёстная проверка и ограничение пространства поиска.
+
Смещение уменьшают независимая тестовая выборка, вложенная перекрёстная проверка и разумное ограничение пространства поиска.
-
В системах [[AutoML]] эта проблема особенно заметна, поскольку автоматически проверяется большое число моделей и преобразований.
+
В системах [[AutoML]] эта проблема выражена особенно сильно: автоматизация увеличивает число испытаний, но не отменяет необходимость независимой проверки.
== Метрики ==
== Метрики ==
-
Схема валидации определяет, на каких данных измеряется качество, а метрика — что именно измеряется.
+
Схема валидации определяет, на каких данных оценивается модель. Метрика определяет, какое свойство считается качеством.
-
Выбор метрики должен соответствовать задаче. Например, доля правильных ответов может быть малоинформативна при сильном дисбалансе классов.
+
Доля правильных ответов малоинформативна при сильном дисбалансе классов. ROC AUC оценивает ранжирование, но не качество при конкретном пороге. Средняя квадратичная ошибка сильнее реагирует на крупные отклонения, чем средняя абсолютная.
-
Если порог классификации подбирается по данным, он также считается гиперпараметром и должен настраиваться внутри валидационного цикла.
+
Порог классификации, выбранный по данным, является гиперпараметром. Его следует настраивать внутри валидационного цикла, а не на итоговой тестовой выборке.
-
Для некоторых метрик результат зависит от способа агрегирования. Можно усреднить значения по блокам либо объединить вневыборочные прогнозы и вычислить метрику один раз. Выбранный способ должен быть указан.
+
Для неаддитивных метрик возможны два способа агрегирования: усреднение значений по фолдам и вычисление одной метрики по объединённым вневыборочным прогнозам. Эти результаты не обязаны совпадать, поэтому способ расчёта должен быть указан.
== Статистическая неопределённость ==
== Статистическая неопределённость ==
-
Валидационная оценка зависит от случайного состава данных, разделения на блоки и случайности обучения.
+
Валидационная метрика зависит от состава выборки, разбиения на фолды, случайной инициализации и стохастического обучения.
-
Разброс метрик по блокам полезен для диагностики, но эти значения не являются независимыми, поскольку обучающие множества перекрываются.
+
Разброс результатов по фолдам полезен для диагностики, но не является обычной выборочной дисперсией: обучающие множества пересекаются, поэтому оценки зависимы.
-
Не существует универсальной несмещённой оценки дисперсии перекрёстной проверки, основанной только на ошибках её блоков.<ref>Bengio Y., Grandvalet Y. No Unbiased Estimator of the Variance of K-Fold Cross-Validation // Journal of Machine Learning Research. 2004. Vol. 5. P. 1089–1105.</ref>
+
Универсальной несмещённой оценки дисперсии <tex>k</tex>-блочной перекрёстной проверки, основанной только на ошибках её фолдов, не существует.<ref>Bengio Y., Grandvalet Y. No Unbiased Estimator of the Variance of K-Fold Cross-Validation // Journal of Machine Learning Research. 2004. Vol. 5. P. 1089–1105.</ref>
-
Для оценки неопределённости используются повторные разбиения, бутстрэп и независимые тестовые выборки.
+
Для анализа неопределённости применяются повторные разбиения, бутстрэп и отдельные тестовые выборки. Доверительный интервал отражает случайную изменчивость, но не устраняет утечку данных, смещение выборки или изменение распределения.
-
 
+
-
Доверительный интервал не устраняет систематическое смещение, вызванное утечкой данных или нерепрезентативной выборкой.
+
== Воспроизводимость ==
== Воспроизводимость ==
-
Для воспроизводимости необходимо фиксировать:
+
Воспроизводимая оценка требует фиксации:
-
* версию данных;
+
* версии данных и правил формирования выборки;
-
* правила разделения;
+
* единицы разделения и индексов фолдов;
-
* индексы блоков;
+
* случайных состояний;
-
* случайные состояния;
+
* этапов предварительной обработки;
-
* этапы обработки;
+
* пространства гиперпараметров;
-
* пространство гиперпараметров;
+
* основной метрики и способа её агрегирования.
-
* способ вычисления метрики.
+
-
Сохранение самих индексов разделения надёжнее, чем фиксация только начального состояния генератора случайных чисел.
+
Сохранение индексов фолдов надёжнее сохранения одного seed: результат генерации может зависеть от порядка строк и версии библиотеки.
-
Если модель чувствительна к инициализации, одного запуска недостаточно для оценки устойчивости.
+
Один запуск не показывает устойчивость алгоритма, если обучение чувствительно к инициализации.
-
== Особенности отдельных задач ==
+
== Особые случаи ==
=== Несбалансированная классификация ===
=== Несбалансированная классификация ===
-
При редком положительном классе используется стратификация.
+
При редком положительном классе применяется стратификация. Балансировка и генерация синтетических объектов выполняются только внутри обучающей части.
-
Балансировка и генерация синтетических объектов выполняются только внутри обучающей части.
+
Если редкий класс представлен несколькими наблюдениями, никакая схема разделения не сделает оценку надёжной. Проблема заключается в нехватке данных, а не в выборе метода валидации.
-
 
+
-
Если примеров редкого класса слишком мало, оценка качества остаётся неопределённой независимо от выбранной схемы.
+
-
 
+
-
=== Регрессия ===
+
-
 
+
-
Для регрессии иногда применяется приближённая стратификация по интервалам целевой переменной, но она не является обязательной.
+
-
 
+
-
При наличии выбросов следует анализировать не только среднюю ошибку, но и распределение отдельных отклонений.
+
=== Компьютерное зрение ===
=== Компьютерное зрение ===
-
Кадры одного видео, фрагменты одного изображения и снимки одного объекта должны находиться в одной части данных.
+
Кадры одного видео, фрагменты одного снимка и изображения одного физического объекта обычно зависимы. Единицей разделения должен быть видеоролик, сцена, пациент или объект, а не отдельный файл.
-
 
+
-
Единицей разделения может быть видеоролик, сцена, пациент или физический объект.
+
=== Обработка текстов ===
=== Обработка текстов ===
-
Дубликаты, тексты одного автора и документы из одной временной серии могут создавать зависимость между выборками.
+
Дубликаты, шаблонные документы и тексты одного автора могут попадать в разные части выборки. Для оценки переноса на новых авторов применяется групповое разделение, для будущих документов — временное.
-
 
+
-
Для оценки переноса на новых авторов применяется групповое разделение, для будущих документов — временное.
+
=== Медицинские данные ===
=== Медицинские данные ===
-
Все обследования одного пациента должны находиться в одной части.
+
Все обследования одного пациента помещаются в одну часть данных. Проверка на материалах другой клиники часто даёт более содержательную оценку переносимости, чем дополнительное случайное разбиение внутри одной базы.
-
 
+
-
Проверка на данных другой клиники часто даёт более реалистичную оценку переносимости, чем случайное разделение внутри одной базы.
+
== Внутренняя и внешняя валидация ==
== Внутренняя и внешняя валидация ==
-
'''Внутренняя валидация''' использует разделение одного набора данных.
+
'''Внутренняя валидация''' использует повторное разделение одного набора данных. Она оценивает качество в пределах представленной им совокупности.
-
'''Внешняя валидация''' проводится на независимо собранных данных: в другой организации, в другом регионе или в более поздний период.
+
'''Внешняя валидация''' проводится на независимо собранных данных: из другой организации, региона, периода или технической системы.
-
Внешняя проверка лучше выявляет зависимость модели от конкретного источника, но также не доказывает универсальность.
+
Внешняя проверка лучше выявляет зависимость модели от источника данных. Она также не доказывает универсальность, но проверяет более сильное утверждение, чем случайное разделение одной базы.
== Сдвиг распределения ==
== Сдвиг распределения ==
-
Валидация предполагает, что контрольные данные похожи на будущие.
+
Валидация имеет смысл только тогда, когда контрольные данные представляют будущие условия применения.
-
Если распределение признаков, классов или способов сбора данных изменяется, оценка может перестать отражать реальное качество.
+
Изменяться могут распределение признаков, доли классов, связь между признаками и ответом, оборудование и правила сбора данных. При ожидаемом сдвиге схема проверки должна его воспроизводить.
-
При ожидаемом изменении схема валидации должна его воспроизводить. Для временного сдвига используется проверка на более позднем периоде, для организационного — на данных другой организации.
+
Для временного сдвига используется более поздний период, для географического — другой регион, для организационного — данные другой организации. Случайное перемешивание часто скрывает такие различия и создаёт завышенную оценку.
== Типичные ошибки ==
== Типичные ошибки ==
-
К наиболее распространённым ошибкам относятся:
+
Наиболее серьёзные ошибки связаны не с выбором числа фолдов, а с неверным устройством эксперимента:
-
* оценка модели на обучающих данных;
+
* оценивание на обучающих данных;
* использование тестовой выборки при настройке;
* использование тестовой выборки при настройке;
-
* обработка всей выборки до разделения;
+
* предварительная обработка до разделения;
-
* разделение связанных объектов;
+
* попадание связанных объектов в разные части;
-
* перемешивание временных данных;
+
* перемешивание временных наблюдений;
-
* сравнение моделей на разных блоках;
+
* сравнение моделей на разных фолдах;
-
* выбор схемы по максимальной метрике;
+
* выбор схемы разделения по наибольшей метрике;
-
* сообщение только среднего результата без анализа разброса.
+
* сообщение среднего результата без анализа отдельных групп и периодов.
-
Эти ошибки приводят к завышенной или плохо интерпретируемой оценке качества.
+
Каждая из этих ошибок меняет смысл оценки. Увеличение числа запусков не исправляет некорректную схему.
-
== Практический выбор схемы ==
+
== Выбор схемы ==
При большом числе независимых объектов обычно достаточно hold-out-разделения.
При большом числе независимых объектов обычно достаточно hold-out-разделения.
Строка 323: Строка 286:
Для несбалансированной классификации используется стратификация.
Для несбалансированной классификации используется стратификация.
-
Если строки относятся к одним и тем же сущностям, требуется групповое разделение.
+
Если записи относятся к одним сущностям, требуется групповое разделение.
-
Для временных данных применяется последовательная проверка без перемешивания.
+
Для временных данных используется последовательная проверка без перемешивания.
-
При активном подборе гиперпараметров и отсутствии независимого тестового набора используется вложенная перекрёстная проверка.
+
При активном подборе гиперпараметров и отсутствии независимого тестового набора применяется вложенная перекрёстная проверка.
-
Корректной считается схема, наиболее близко воспроизводящая способ получения новых данных после внедрения.
+
Главный критерий выбора — соответствие способу появления новых данных после внедрения. Формальное название метода вторично.
== Ограничения интерпретации ==
== Ограничения интерпретации ==
-
Валидационная метрика не устанавливает истинность модели и не доказывает правильность описываемого механизма.
+
Валидационная метрика не устанавливает истинность модели и не подтверждает правильность описываемого ею механизма. Она показывает качество предсказаний на данных определённого происхождения согласно выбранному критерию.
-
 
+
-
Высокое качество означает только то, что модель хорошо решает выбранную задачу на данных определённого происхождения согласно выбранной метрике.
+
-
Валидация также не оценивает автоматически безопасность, справедливость или практическую полезность системы.
+
Высокая метрика не доказывает безопасность, справедливость или практическую полезность системы. Эти свойства требуют отдельных проверок.
-
Если исходная выборка не представляет целевую совокупность, корректная процедура разделения не устраняет это ограничение.
+
Корректное разделение также не исправляет нерепрезентативную выборку. Если данные систематически исключают часть целевой совокупности, валидация точно измерит качество только внутри уже смещённого набора.
-
Основное эпистемологическое ограничение валидации состоит в том, что неизвестное будущее заменяется конечным набором уже наблюдавшихся примеров. Такая оценка необходима, но не является гарантией будущего качества.
+
Неизвестное будущее в валидации заменяется конечным множеством прошлых наблюдений. Это необходимая эмпирическая процедура, но не гарантия будущего результата.
== См. также ==
== См. также ==
Строка 365: Строка 326:
* Efron B., Tibshirani R. J. An Introduction to the Bootstrap. New York: Chapman & Hall, 1993.
* Efron B., Tibshirani R. J. An Introduction to the Bootstrap. New York: Chapman & Hall, 1993.
* Hastie T., Tibshirani R., Friedman J. The Elements of Statistical Learning. 2nd ed. New York: Springer, 2009.
* Hastie T., Tibshirani R., Friedman J. The Elements of Statistical Learning. 2nd ed. New York: Springer, 2009.
-
* Kohavi R. A Study of Cross-Validation and Bootstrap for Accuracy Estimation and Model Selection // Proceedings of IJCAI. 1995. P. 1137–1143.
+
* Kohavi R. A Study of Cross-Validation and Bootstrap for Accuracy Estimation and Model Selection // Proceedings of the Fourteenth International Joint Conference on Artificial Intelligence. 1995. Vol. 2. P. 1137–1143.
* Vapnik V. N. Statistical Learning Theory. New York: Wiley, 1998.
* Vapnik V. N. Statistical Learning Theory. New York: Wiley, 1998.

Версия 12:28, 12 июля 2026

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

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

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

Содержание

Задача валидации

Пусть пары (x,y) порождаются неизвестным распределением P(x,y), а f обозначает модель. Её качество определяется ожидаемым риском

R(f)=\mathbb{E}_{(x,y)\sim P}L(y,f(x)),

где Lфункция потерь.

Распределение P(x,y) неизвестно, поэтому ожидаемый риск оценивают по конечной выборке:

\widehat{R}(f)=\frac{1}{m}\sum_{i=1}^{m}L(y_i,f(x_i)).

Если объекты (x_i,y_i) не участвовали в обучении модели, величина \widehat{R}(f) служит оценкой ошибки обобщения. Она остаётся случайной: другое разбиение данных может дать иной результат.

Валидация решает две задачи, которые нельзя смешивать:

  1. выбор модели, признаков и гиперпараметров;
  2. независимая оценка уже выбранной процедуры.

Если одна и та же выборка используется и для настройки, и для итоговой оценки, процедура постепенно приспосабливается к её особенностям. Полученная метрика оказывается оптимистически смещённой.[1]

Обобщающая способность

Обобщающая способность — способность модели сохранять качество на объектах, не представленных при обучении.

Стандартная теория предполагает, что обучающие и будущие наблюдения независимы и получены из одного распределения. В прикладных задачах это условие часто нарушается. Несколько строк могут относиться к одному пользователю, данные могут зависеть от времени, а условия сбора — различаться между организациями.

Поэтому понятие «новый объект» определяется сценарием применения. Если модель должна работать с новыми пациентами, все записи одного пациента помещаются в одну часть данных. Если требуется прогноз будущего, валидационные наблюдения должны следовать за обучающими по времени.

Переобучение проявляется малой ошибкой на обучающей выборке и заметно большей ошибкой на контрольной. Его вероятность зависит не только от сложности модели, но и от объёма данных, уровня шума, числа проверенных конфигураций и способа отбора признаков.

Недообучение возникает, когда модель не описывает существенные зависимости. В этом случае высокими остаются и обучающая, и валидационная ошибки.

Разделение данных

В классической схеме исходная выборка разделяется на три части.

Обучающая выборка используется для оценки параметров модели.

Валидационная выборка служит для выбора алгоритма, признаков, порога решения и гиперпараметров.

Тестовая выборка применяется один раз — для итоговой оценки выбранной процедуры.

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

После завершения выбора модель можно обучить заново на объединённых обучающих и валидационных данных. Тестовая часть при этом остаётся изолированной.

Валидация на удержанной выборке

Валидация на удержанной выборке, или hold-out validation, использует одно разделение данных на обучающую и контрольную части.

Метод требует одного обучения для каждой конфигурации и подходит для крупных выборок. Его слабое место — зависимость от конкретного разделения. При небольшом числе объектов замена нескольких наблюдений способна заметно изменить метрику.

Фиксированная пропорция, например 80:20, не является универсальным правилом. Значение имеет абсолютное число контрольных объектов, а в классификации — число представителей каждого класса.

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

Перекрёстная проверка, или cross-validation, использует несколько разделений одной выборки. Объекты поочерёдно включаются в контрольные части, что снижает зависимость оценки от одного разбиения.

k-блочная перекрёстная проверка

При k-блочной перекрёстной проверке выборка делится на k непересекающихся блоков:

D=D_1\cup D_2\cup\ldots\cup D_k.

На шаге j блок D_j используется для проверки, остальные блоки — для обучения. Итоговая оценка равна

\widehat{R}_{CV}=\frac{1}{k}\sum_{j=1}^{k}\widehat{R}_j.

Каждый объект один раз участвует в проверке и k-1 раз — в обучении. Значения k=5 и k=10 часто дают приемлемое соотношение между вычислительной стоимостью и устойчивостью оценки.[1]

Увеличение числа блоков не гарантирует более надёжного результата. Обучающие подвыборки сильнее пересекаются, а стоимость вычислений растёт.

Стратификация

При стратифицированной перекрёстной проверке в каждом блоке сохраняются приблизительно одинаковые доли классов.

Стратификация нужна при дисбалансе классов: без неё редкий класс может отсутствовать в отдельных контрольных частях. Однако она не устраняет зависимость между объектами и не защищает от утечки данных.

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

При повторной проверке разбиение на k блоков строится несколько раз. Разброс результатов показывает чувствительность модели к составу фолдов.

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

Leave-One-Out

В схеме Leave-One-Out Cross-Validation каждый объект поочерёдно становится единственным контрольным примером:

\widehat{R}_{LOO}=\frac{1}{n}\sum_{i=1}^{n}L\left(y_i,f_{D\setminus\{i\}}(x_i)\right).

Каждая модель обучается на n-1 объектах. Метод использует почти всю выборку, но требует n обучений и может быть чувствителен к отдельным наблюдениям. Его применение оправдано главным образом при очень малом объёме данных.

Групповая валидация

Построчное случайное разделение некорректно, если несколько записей относятся к одной сущности: пациенту, пользователю, устройству, документу или видеоролику.

Попадание одной группы одновременно в обучение и проверку позволяет модели использовать её индивидуальные особенности. Такая оценка показывает качество на новых записях известных групп, а не на действительно новых группах.

При Group K-Fold все объекты одной группы помещаются в один блок. Обучающая и контрольная части не содержат общих групп. Единица разделения должна совпадать с единицей будущего обобщения.

Валидация временных данных

Для временных данных случайное перемешивание обычно недопустимо: модель может получить информацию из будущего.

Должно выполняться условие

t_{\mathrm{train}} < t_{\mathrm{val}}.

Здесь t_{\mathrm{train}} обозначает время обучающих наблюдений, а t_{\mathrm{val}} — время валидационных.

При простом временном разделении ранний период используется для обучения, более поздний — для проверки.

При расширяющемся окне обучающий интервал постепенно увеличивается. Такая схема соответствует системам, которые при каждом переобучении используют всю накопленную историю.

При скользящем окне длина обучающего интервала остаётся постоянной: новые наблюдения добавляются, старые исключаются. Метод уместен, когда давние данные теряют актуальность.

Последовательная валидация (англ. walk-forward validation) повторяет обучение и прогнозирование так, чтобы каждый прогноз основывался только на ранее доступной информации.

Если признаки вычисляются по временным интервалам, между обучающей и контрольной частями оставляют зазор. Он предотвращает пересечение исходных окон и утечку будущей информации.

Вложенная перекрёстная проверка

Обычная перекрёстная проверка даёт смещённую оценку, если её результат одновременно используется для выбора гиперпараметров и сообщения итогового качества. Среди большого числа конфигураций часть получает низкую ошибку случайно.

Вложенная перекрёстная проверка разделяет эти задачи:

  1. внутренний цикл выбирает гиперпараметры;
  2. внешний цикл оценивает всю процедуру выбора.

На каждом внешнем шаге один блок откладывается. На оставшихся данных проводится внутренний подбор. Затем выбранная конфигурация обучается заново и проверяется на внешнем блоке.

Метод особенно важен при малой выборке, широком поиске гиперпараметров и отсутствии отдельного тестового набора.[1]

Цена независимой оценки — большое число обучений.

Бутстрэп и out-of-bag-оценка

Бутстрэп формирует выборки того же размера путём случайного выбора объектов с возвращением.[1]

Вероятность того, что объект не попадёт в бутстрэп-выборку, при большом n приближается к

e^{-1}\approx 0{,}368.

Поэтому одна бутстрэп-выборка содержит около 63,2 % различных объектов исходного набора.

Невыбранные объекты называются out-of-bag-объектами. Они используются для оценки модели, обученной без них. Такой подход применяется, например, в случайных лесах.[1]

Бутстрэп особенно полезен для анализа устойчивости и построения доверительных интервалов. Он не является автоматической заменой перекрёстной проверке: свойства оценки зависят от алгоритма и объёма данных.

Валидация полного конвейера

Валидации подлежит не только модель, но и весь процесс обработки:

исходные данныепредварительная обработкапризнакимодель

Любое преобразование, параметры которого оцениваются по данным, обучается только на обучающей части каждого фолда. Это относится к заполнению пропусков, нормализации, кодированию категорий, отбору признаков, уменьшению размерности, балансировке классов и выбору порога.

Например, если среднее значение признака вычислено по всей выборке до разделения, контрольные объекты уже повлияли на обучение. Последующая перекрёстная проверка не исправляет эту ошибку.

Утечка данных

Утечка данных — использование информации, недоступной в реальном моменте прогнозирования или принадлежащей контрольной части.

Основные случаи:

  • признак прямо или косвенно содержит целевую переменную;
  • дубликаты или связанные объекты попадают в разные части;
  • предварительная обработка выполняется до разделения;
  • при временном прогнозировании используются будущие события.

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

Предотвращение утечки начинается не с выбора функции разделения, а с точного определения момента прогнозирования, доступной к этому моменту информации и независимой единицы наблюдения.

Выбор гиперпараметров

Пусть \lambda обозначает конфигурацию гиперпараметров. Выбирается значение

\widehat{\lambda}=\arg\min_{\lambda}\widehat{R}_{\mathrm{val}}(\lambda).

Чем больше конфигураций проверяется, тем выше вероятность выбрать вариант, которому случайно подошла конкретная валидационная выборка. Возникает переобучение уже не параметров модели, а всей процедуры поиска.

Смещение уменьшают независимая тестовая выборка, вложенная перекрёстная проверка и разумное ограничение пространства поиска.

В системах AutoML эта проблема выражена особенно сильно: автоматизация увеличивает число испытаний, но не отменяет необходимость независимой проверки.

Метрики

Схема валидации определяет, на каких данных оценивается модель. Метрика определяет, какое свойство считается качеством.

Доля правильных ответов малоинформативна при сильном дисбалансе классов. ROC AUC оценивает ранжирование, но не качество при конкретном пороге. Средняя квадратичная ошибка сильнее реагирует на крупные отклонения, чем средняя абсолютная.

Порог классификации, выбранный по данным, является гиперпараметром. Его следует настраивать внутри валидационного цикла, а не на итоговой тестовой выборке.

Для неаддитивных метрик возможны два способа агрегирования: усреднение значений по фолдам и вычисление одной метрики по объединённым вневыборочным прогнозам. Эти результаты не обязаны совпадать, поэтому способ расчёта должен быть указан.

Статистическая неопределённость

Валидационная метрика зависит от состава выборки, разбиения на фолды, случайной инициализации и стохастического обучения.

Разброс результатов по фолдам полезен для диагностики, но не является обычной выборочной дисперсией: обучающие множества пересекаются, поэтому оценки зависимы.

Универсальной несмещённой оценки дисперсии k-блочной перекрёстной проверки, основанной только на ошибках её фолдов, не существует.[1]

Для анализа неопределённости применяются повторные разбиения, бутстрэп и отдельные тестовые выборки. Доверительный интервал отражает случайную изменчивость, но не устраняет утечку данных, смещение выборки или изменение распределения.

Воспроизводимость

Воспроизводимая оценка требует фиксации:

  • версии данных и правил формирования выборки;
  • единицы разделения и индексов фолдов;
  • случайных состояний;
  • этапов предварительной обработки;
  • пространства гиперпараметров;
  • основной метрики и способа её агрегирования.

Сохранение индексов фолдов надёжнее сохранения одного seed: результат генерации может зависеть от порядка строк и версии библиотеки.

Один запуск не показывает устойчивость алгоритма, если обучение чувствительно к инициализации.

Особые случаи

Несбалансированная классификация

При редком положительном классе применяется стратификация. Балансировка и генерация синтетических объектов выполняются только внутри обучающей части.

Если редкий класс представлен несколькими наблюдениями, никакая схема разделения не сделает оценку надёжной. Проблема заключается в нехватке данных, а не в выборе метода валидации.

Компьютерное зрение

Кадры одного видео, фрагменты одного снимка и изображения одного физического объекта обычно зависимы. Единицей разделения должен быть видеоролик, сцена, пациент или объект, а не отдельный файл.

Обработка текстов

Дубликаты, шаблонные документы и тексты одного автора могут попадать в разные части выборки. Для оценки переноса на новых авторов применяется групповое разделение, для будущих документов — временное.

Медицинские данные

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

Внутренняя и внешняя валидация

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

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

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

Сдвиг распределения

Валидация имеет смысл только тогда, когда контрольные данные представляют будущие условия применения.

Изменяться могут распределение признаков, доли классов, связь между признаками и ответом, оборудование и правила сбора данных. При ожидаемом сдвиге схема проверки должна его воспроизводить.

Для временного сдвига используется более поздний период, для географического — другой регион, для организационного — данные другой организации. Случайное перемешивание часто скрывает такие различия и создаёт завышенную оценку.

Типичные ошибки

Наиболее серьёзные ошибки связаны не с выбором числа фолдов, а с неверным устройством эксперимента:

  • оценивание на обучающих данных;
  • использование тестовой выборки при настройке;
  • предварительная обработка до разделения;
  • попадание связанных объектов в разные части;
  • перемешивание временных наблюдений;
  • сравнение моделей на разных фолдах;
  • выбор схемы разделения по наибольшей метрике;
  • сообщение среднего результата без анализа отдельных групп и периодов.

Каждая из этих ошибок меняет смысл оценки. Увеличение числа запусков не исправляет некорректную схему.

Выбор схемы

При большом числе независимых объектов обычно достаточно hold-out-разделения.

При малой или средней выборке применяется k-блочная перекрёстная проверка.

Для несбалансированной классификации используется стратификация.

Если записи относятся к одним сущностям, требуется групповое разделение.

Для временных данных используется последовательная проверка без перемешивания.

При активном подборе гиперпараметров и отсутствии независимого тестового набора применяется вложенная перекрёстная проверка.

Главный критерий выбора — соответствие способу появления новых данных после внедрения. Формальное название метода вторично.

Ограничения интерпретации

Валидационная метрика не устанавливает истинность модели и не подтверждает правильность описываемого ею механизма. Она показывает качество предсказаний на данных определённого происхождения согласно выбранному критерию.

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

Корректное разделение также не исправляет нерепрезентативную выборку. Если данные систематически исключают часть целевой совокупности, валидация точно измерит качество только внутри уже смещённого набора.

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

См. также

Примечания


Литература

  • Bengio Y., Grandvalet Y. No Unbiased Estimator of the Variance of K-Fold Cross-Validation // Journal of Machine Learning Research. 2004. Vol. 5. P. 1089–1105.
  • Bishop C. M. Pattern Recognition and Machine Learning. New York: Springer, 2006.
  • Cawley G. C., Talbot N. L. C. On Over-fitting in Model Selection and Subsequent Selection Bias in Performance Evaluation // Journal of Machine Learning Research. 2010. Vol. 11. P. 2079–2107.
  • Efron B., Tibshirani R. J. An Introduction to the Bootstrap. New York: Chapman & Hall, 1993.
  • Hastie T., Tibshirani R., Friedman J. The Elements of Statistical Learning. 2nd ed. New York: Springer, 2009.
  • Kohavi R. A Study of Cross-Validation and Bootstrap for Accuracy Estimation and Model Selection // Proceedings of the Fourteenth International Joint Conference on Artificial Intelligence. 1995. Vol. 2. P. 1137–1143.
  • Vapnik V. N. Statistical Learning Theory. New York: Wiley, 1998.