Кросс-валидация — различия между версиями
(→См. также) |
|||
Строка 1: | Строка 1: | ||
− | '''Кросс-валидация''' или '''скользящий контроль''' | + | '''Кросс-валидация''' или '''скользящий контроль''' {{---}} процедура эмпирического оценивания обобщающей способности алгоритмов. |
С помощью кросс-валидации эмулируется наличие тестовой выборки, которая не участвует в обучении, но для которой известны правильные ответы. | С помощью кросс-валидации эмулируется наличие тестовой выборки, которая не участвует в обучении, но для которой известны правильные ответы. | ||
Строка 5: | Строка 5: | ||
Пусть <tex> X </tex> {{---}} множество [[Общие понятия | признаков]], описывающих объекты, а <tex> Y </tex> {{---}} конечное множество меток. | Пусть <tex> X </tex> {{---}} множество [[Общие понятия | признаков]], описывающих объекты, а <tex> Y </tex> {{---}} конечное множество меток. | ||
− | <tex>T^l = {(x_i, y_i)}_{i=1}^{l}, x_i \in X, y_i \in Y</tex> {{---}} обучающая выборка | + | <tex>T^l = {(x_i, y_i)}_{i=1}^{l}, x_i \in X, y_i \in Y</tex> {{---}} обучающая выборка, |
− | <tex>Q</tex> {{---}} мера качества | + | <tex>Q</tex> {{---}} мера качества, |
− | <tex>A</tex> {{---}} [[Модель алгоритма и ее выбор | модель]] | + | <tex>A</tex> {{---}} [[Модель алгоритма и ее выбор | модель]], |
<tex>\mu: (X \times Y)^l \to A, </tex> {{---}} алгоритм обучения. | <tex>\mu: (X \times Y)^l \to A, </tex> {{---}} алгоритм обучения. | ||
− | == Разновидности | + | == Разновидности кросс-валидации == |
=== Валидация на отложенных данных (Hold-Out Validation) === | === Валидация на отложенных данных (Hold-Out Validation) === | ||
Строка 24: | Строка 24: | ||
После чего решается задача оптимизации: | После чего решается задача оптимизации: | ||
− | <tex>HO(\mu, T^t, T^{l-t}) = Q(\mu(T^t), T^{l-t}) \to min </tex> | + | <tex>HO(\mu, T^t, T^{l-t}) = Q(\mu(T^t), T^{l-t}) \to min </tex>, |
Метод Hold-out применяется в случаях больших датасетов, т.к. требует меньше вычислительных мощностей по сравнению с другими методами кросс-валидации. | Метод Hold-out применяется в случаях больших датасетов, т.к. требует меньше вычислительных мощностей по сравнению с другими методами кросс-валидации. | ||
Строка 30: | Строка 30: | ||
=== Полная кросс-валидация (Complete cross-validation) === | === Полная кросс-валидация (Complete cross-validation) === | ||
− | # Выбирается значение <tex>t</tex> | + | # Выбирается значение <tex>t</tex>; |
− | # Выборка разбивается всеми возможными способами на две части <tex> T^l = T^t \cup T^{l-t} </tex> | + | # Выборка разбивается всеми возможными способами на две части <tex> T^l = T^t \cup T^{l-t} </tex>. |
[[Файл:CompleteCrossValidation.png|500px]] | [[Файл:CompleteCrossValidation.png|500px]] | ||
<tex>CVV_t = \frac{1}{C_l^{l-t}} | <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> | + | \displaystyle\sum_{T^l = T^t \cup T^{l-t}} Q(\mu(T^t), T^{l-t}) \to min </tex>, |
Здесь число разбиений <tex>C_l^{l-t}</tex> становится слишком большим даже при сравнительно малых значениях t, что затрудняет практическое применение данного метода. | Здесь число разбиений <tex>C_l^{l-t}</tex> становится слишком большим даже при сравнительно малых значениях t, что затрудняет практическое применение данного метода. | ||
Строка 42: | Строка 42: | ||
=== k-fold кросс-валидация === | === k-fold кросс-валидация === | ||
− | # Обучающая выборка разбивается на <tex> k </tex> непересекающихся одинаковых по объему частей | + | # Обучающая выборка разбивается на <tex> k </tex> непересекающихся одинаковых по объему частей; |
# Производится <tex> k </tex> итераций. На каждой итерации происходит следующее: | # Производится <tex> k </tex> итераций. На каждой итерации происходит следующее: | ||
## Модель обучается на <tex> k - 1 </tex> части обучающей выборки; | ## Модель обучается на <tex> k - 1 </tex> части обучающей выборки; | ||
− | ## Модель тестируется на части обучающей выборки, которая не участвовала в обучении | + | ## Модель тестируется на части обучающей выборки, которая не участвовала в обучении. |
Каждая из <tex>k</tex> частей единожды используется для тестирования. | Каждая из <tex>k</tex> частей единожды используется для тестирования. | ||
− | Как правило <tex>k = 10</tex> (5 в случае малого размера выборки) | + | Как правило, <tex>k = 10</tex> (5 в случае малого размера выборки). |
[[Файл:K-fold-validation.png|500px]] | [[Файл:K-fold-validation.png|500px]] | ||
− | <tex>T^l = F_1 \cup \dots \cup F_k, |F_i| \approx \frac{l}{k} | + | <tex>T^l = F_1 \cup \dots \cup F_k, |F_i| \approx \frac{l}{k}, |
− | \\ CV_k = \frac{1}{k} \sum_{i=1}^{k} Q(\mu(T^l \setminus F_i),F_i) \to min </tex> | + | \\ CV_k = \frac{1}{k} \sum_{i=1}^{k} Q(\mu(T^l \setminus F_i),F_i) \to min </tex>. |
=== t×k-fold кросс-валидация === | === t×k-fold кросс-валидация === | ||
# Процедура выполняется <tex>t</tex> раз: | # Процедура выполняется <tex>t</tex> раз: | ||
− | ## Обучающая выборка случайным образом разбивается на <tex>k</tex> непересекающихся одинаковых по объему частей | + | ## Обучающая выборка случайным образом разбивается на <tex>k</tex> непересекающихся одинаковых по объему частей; |
## Производится <tex> k </tex> итераций. На каждой итерации происходит следующее: | ## Производится <tex> k </tex> итераций. На каждой итерации происходит следующее: | ||
### Модель обучается на <tex> k - 1 </tex> части обучающей выборки; | ### Модель обучается на <tex> k - 1 </tex> части обучающей выборки; | ||
− | ### Модель тестируется на части обучающей выборки, которая не участвовала в обучении | + | ### Модель тестируется на части обучающей выборки, которая не участвовала в обучении. |
− | <tex>T^l = F_{(1,1)} \cup \dots \cup F_{(k,1)} = \dots = F_{(1,t)} \cup \dots \cup F_{(k,t)}, |F_{(i,j)}| \approx \frac{l}{k} </tex> | + | <tex>T^l = F_{(1,1)} \cup \dots \cup F_{(k,1)} = \dots = F_{(1,t)} \cup \dots \cup F_{(k,t)}, |F_{(i,j)}| \approx \frac{l}{k} </tex>, |
− | <tex> CV_{t \times k} = \frac{1}{tk} \sum_{j=1}^t \sum_{i=1}^{k} Q(\mu(T^l \setminus F_{(i,j)}),F_{(i,j)}) \to min </tex> | + | <tex> CV_{t \times k} = \frac{1}{tk} \sum_{j=1}^t \sum_{i=1}^{k} Q(\mu(T^l \setminus F_{(i,j)}),F_{(i,j)}) \to min </tex>. |
=== Кросс-валидация по отдельным объектам (Leave-One-Out) === | === Кросс-валидация по отдельным объектам (Leave-One-Out) === | ||
Строка 71: | Строка 71: | ||
[[Файл:LeaveOneOut.png|500px]] | [[Файл:LeaveOneOut.png|500px]] | ||
− | <tex>LOO = \frac{1}{l} \sum_{i=1}^{l} Q(\mu(T^l \setminus p_i),p_i) \to min </tex>, где <tex>p_i = (x_i, y_i)</tex> | + | <tex>LOO = \frac{1}{l} \sum_{i=1}^{l} Q(\mu(T^l \setminus p_i),p_i) \to min </tex>, где <tex>p_i = (x_i, y_i)</tex>. |
Преимущества LOO в том, что каждый объект ровно один раз участвует в контроле, а длина обучающих подвыборок лишь на единицу меньше длины полной выборки. | Преимущества LOO в том, что каждый объект ровно один раз участвует в контроле, а длина обучающих подвыборок лишь на единицу меньше длины полной выборки. | ||
Строка 83: | Строка 83: | ||
=== Критерий целостности модели (Model consistency criterion) === | === Критерий целостности модели (Model consistency criterion) === | ||
− | Не переобученый алгоритм должен показывать одинаковую эффективность на каждой части | + | Не переобученый алгоритм должен показывать одинаковую эффективность на каждой части. |
[[Файл:ModelConsistencyCriterion.png|500px]] | [[Файл:ModelConsistencyCriterion.png|500px]] | ||
− | <tex> D_1 = (\mu, T^{l-t}) = \frac{1}{l} \sum_{i=1}^l (\mu(T^t)(x_i)-\mu(T^{l-t})(x_i)) </tex> | + | <tex> D_1 = (\mu, T^{l-t}) = \frac{1}{l} \sum_{i=1}^l (\mu(T^t)(x_i)-\mu(T^{l-t})(x_i)) </tex>, |
Метод может быть обобщен как аналог <tex> CV_{t \times 2} </tex>. | Метод может быть обобщен как аналог <tex> CV_{t \times 2} </tex>. |
Версия 02:53, 30 января 2019
Кросс-валидация или скользящий контроль — процедура эмпирического оценивания обобщающей способности алгоритмов. С помощью кросс-валидации эмулируется наличие тестовой выборки, которая не участвует в обучении, но для которой известны правильные ответы.
Содержание
- 1 Определения и обозначения
- 2 Разновидности кросс-валидации
- 2.1 Валидация на отложенных данных (Hold-Out Validation)
- 2.2 Полная кросс-валидация (Complete cross-validation)
- 2.3 k-fold кросс-валидация
- 2.4 t×k-fold кросс-валидация
- 2.5 Кросс-валидация по отдельным объектам (Leave-One-Out)
- 2.6 Случайные разбиения (Random subsampling)
- 2.7 Критерий целостности модели (Model consistency criterion)
- 3 См. также
- 4 Примечания
- 5 Источники информации
Определения и обозначения
Пусть признаков, описывающих объекты, а — конечное множество меток.
— множество— обучающая выборка,
— мера качества, —
— алгоритм обучения.
Разновидности кросс-валидации
Валидация на отложенных данных (Hold-Out Validation)
Обучающая выборка один раз случайным образом разбивается на две части
После чего решается задача оптимизации:
,
Метод Hold-out применяется в случаях больших датасетов, т.к. требует меньше вычислительных мощностей по сравнению с другими методами кросс-валидации. Недостатком метода является то, что оценка существенно зависит от разбиения, тогда как желательно, чтобы она характеризовала только алгоритм обучения.
Полная кросс-валидация (Complete cross-validation)
- Выбирается значение ;
- Выборка разбивается всеми возможными способами на две части .
,
Здесь число разбиений
становится слишком большим даже при сравнительно малых значениях t, что затрудняет практическое применение данного метода.k-fold кросс-валидация
- Обучающая выборка разбивается на непересекающихся одинаковых по объему частей;
- Производится
- Модель обучается на части обучающей выборки;
- Модель тестируется на части обучающей выборки, которая не участвовала в обучении.
итераций. На каждой итерации происходит следующее:
Каждая из
частей единожды используется для тестирования. Как правило, (5 в случае малого размера выборки)..
t×k-fold кросс-валидация
- Процедура выполняется
- Обучающая выборка случайным образом разбивается на непересекающихся одинаковых по объему частей;
- Производится
- Модель обучается на части обучающей выборки;
- Модель тестируется на части обучающей выборки, которая не участвовала в обучении.
итераций. На каждой итерации происходит следующее:
раз:
,
.
Кросс-валидация по отдельным объектам (Leave-One-Out)
Выборка разбивается на
и 1 объект раз., где .
Преимущества LOO в том, что каждый объект ровно один раз участвует в контроле, а длина обучающих подвыборок лишь на единицу меньше длины полной выборки.
Недостатком LOO является большая ресурсоёмкость, так как обучаться приходится
раз. Некоторые методы обучения позволяют достаточно быстро перенастраивать внутренние параметры алгоритма при замене одного обучающего объекта другим. В этих случаях вычисление LOO удаётся заметно ускорить.Случайные разбиения (Random subsampling)
Выборка разбивается в случайной пропорции. Процедура повторяется несколько раз.
Критерий целостности модели (Model consistency criterion)
Не переобученый алгоритм должен показывать одинаковую эффективность на каждой части.
,
Метод может быть обобщен как аналог
.См. также
Примечания
Источники информации
- Скользящий контроль - статья на MachineLearning.ru
- Model assessment and selection