Кросс-валидация — различия между версиями
Строка 1: | Строка 1: | ||
'''Кросс-валидация''' или '''скользящий контроль''' это процедура оценивания обобщающей способности алгоритмов. | '''Кросс-валидация''' или '''скользящий контроль''' это процедура оценивания обобщающей способности алгоритмов. | ||
С помощью кросс-валидации эмулируется наличие тестовой выборки, которая не участвует в обучении, но для которой известны правильные ответы. | С помощью кросс-валидации эмулируется наличие тестовой выборки, которая не участвует в обучении, но для которой известны правильные ответы. | ||
+ | |||
== Разновидности Кросс-валидации == | == Разновидности Кросс-валидации == | ||
− | === Hold- | + | === Контроль на отложенных данных (Hold-Out Validation) === |
− | Обучающая выборка разбивается на две части <tex> T^l = T^t \cup T^{l-t} </tex> | + | |
+ | Обучающая выборка один раз случайным образом разбивается на две части <tex> T^l = T^t \cup T^{l-t} </tex> | ||
+ | |||
+ | После чего решается задача оптимизации: | ||
+ | |||
+ | <tex>HO(\mu, T^t, T^{l-t}) = Q(\mu(T^t), T^{l-t}) \to min </tex> | ||
+ | |||
+ | Метод Hold-out применяется в случаях больших датасетов, т.к. требует меньше вычислительных мощностей по сравнению с другими методами кросс-валидации. | ||
+ | Недостатком метода является то, что оценка существенно зависит от разбиения, тогда как желательно, чтобы она характеризовала только алгоритм обучения. | ||
+ | |||
+ | === Полная кросс-валидация (CVV) === | ||
+ | # Выбирается значение <tex>t</tex> | ||
+ | # Выборка разбивается всеми возможными способами на две части <tex> T^l = T^t \cup T^{l-t} </tex> | ||
+ | |||
+ | После чего решается задача оптимизации: | ||
+ | |||
+ | <tex>CVV_t = \frac{1}{C_l^{l-t}} | ||
+ | \displaystyle\sum_{T^l = T^t \cup T^{l-t}} Q(\mu(T^t), T^{l-t}) \to min </tex> | ||
− | + | === k-fold Кросс-валидация === | |
− | + | # Обучающая выборка разбивается на <tex> k </tex> непересекающихся одинаковых по объему частей <tex>T^l = F_1 \cup \dots \cup F_k, |F_i| \approx \frac{l}{k} </tex> | |
− | # Обучающая выборка разбивается на <tex> k </tex> непересекающихся одинаковых по объему частей | ||
# Производится <tex> k </tex> итераций. На каждой итерации происходит следующее: | # Производится <tex> k </tex> итераций. На каждой итерации происходит следующее: | ||
## Модель обучается на <tex> k - 1 </tex> части обучающей выборки; | ## Модель обучается на <tex> k - 1 </tex> части обучающей выборки; | ||
## Модель тестируется на части обучающей выборки, которая не участвовала в обучении; | ## Модель тестируется на части обучающей выборки, которая не участвовала в обучении; | ||
− | + | ||
+ | Каждая из <tex>k</tex> частей единожды используется для тестирования. | ||
+ | Как правило <tex>k = 10</tex> (5 в случае малого размера выборки) | ||
+ | |||
+ | В результате можно посчитать различные метрики, показывающие, насколько модель удачная, например, среднюю ошибку на частях, которые не участвовали в обучающей выборке. | ||
== См. также == | == См. также == | ||
+ | * [[Общие понятия]]<sup>[на 17.01.19 не создан]</sup | ||
* [[Модель алгоритма и ее выбор]] | * [[Модель алгоритма и ее выбор]] | ||
− | * [[Мета-обучение]]<sup>[на | + | * [[Мета-обучение]]<sup>[на 17.01.19 не создан]</sup> |
== Примечания == | == Примечания == |
Версия 20:14, 17 января 2019
Кросс-валидация или скользящий контроль это процедура оценивания обобщающей способности алгоритмов. С помощью кросс-валидации эмулируется наличие тестовой выборки, которая не участвует в обучении, но для которой известны правильные ответы.
Содержание
Разновидности Кросс-валидации
Контроль на отложенных данных (Hold-Out Validation)
Обучающая выборка один раз случайным образом разбивается на две части
После чего решается задача оптимизации:
Метод Hold-out применяется в случаях больших датасетов, т.к. требует меньше вычислительных мощностей по сравнению с другими методами кросс-валидации. Недостатком метода является то, что оценка существенно зависит от разбиения, тогда как желательно, чтобы она характеризовала только алгоритм обучения.
Полная кросс-валидация (CVV)
- Выбирается значение
- Выборка разбивается всеми возможными способами на две части
После чего решается задача оптимизации:
k-fold Кросс-валидация
- Обучающая выборка разбивается на непересекающихся одинаковых по объему частей
- Производится
- Модель обучается на части обучающей выборки;
- Модель тестируется на части обучающей выборки, которая не участвовала в обучении;
итераций. На каждой итерации происходит следующее:
Каждая из
частей единожды используется для тестирования. Как правило (5 в случае малого размера выборки)В результате можно посчитать различные метрики, показывающие, насколько модель удачная, например, среднюю ошибку на частях, которые не участвовали в обучающей выборке.
См. также
- Общие понятия[на 17.01.19 не создан]</sup
- Модель алгоритма и ее выбор
- Мета-обучение[на 17.01.19 не создан]
Примечания
- Кросс-валидация
- Автоматизированный выбор модели в библиотеке WEKA для Java
- Автоматизированный выбор модели в библиотеке TPOT для Python
- Автоматизированный выбор модели в библиотеке sklearn для Python