Изменения

Перейти к: навигация, поиск

Кросс-валидация

2443 байта добавлено, 02:53, 30 января 2019
Нет описания правки
'''Кросс-валидация''' или '''скользящий контроль''' это {{---}} процедура эмпирического оценивания обобщающей способности алгоритмов.
С помощью кросс-валидации эмулируется наличие тестовой выборки, которая не участвует в обучении, но для которой известны правильные ответы.
=== Определения и обозначения ===
Пусть <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>Q</tex> {{---}} мера качества, <tex>A</tex> {{---}} [[Модель алгоритма и ее выбор | модель]], <tex>\mu: (X \times Y)^l \to A, </tex> {{---}} алгоритм обучения. ==Разновидности кросс-валидации = Контроль = === Валидация на отложенных данных (Hold-Out Validation) ===
Обучающая выборка один раз случайным образом разбивается на две части <tex> T^l = T^t \cup T^{l-t} </tex>
 
[[Файл:Hold-out.png|500px]]
 
После чего решается задача оптимизации:
<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>
После чего решается задача оптимизации=== Полная кросс-валидация (Complete cross-validation) ===# Выбирается значение <tex>t</tex>;# Выборка разбивается всеми возможными способами на две части <tex> T^l = T^t \cup T^{l-t} </tex>. [[Файл:CompleteCrossValidation.png|500px]]
<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>, Здесь число разбиений <tex>C_l^{l-t}</tex> становится слишком большим даже при сравнительно малых значениях t, что затрудняет практическое применение данного метода.
=== k-fold кросс-валидация ===
# Обучающая выборка разбивается на <tex> k </tex> непересекающихся одинаковых по объему частей;
# Производится <tex> k </tex> итераций. На каждой итерации происходит следующее:
## Модель обучается на <tex> k - 1 </tex> части обучающей выборки;
## Модель тестируется на части обучающей выборки, которая не участвовала в обучении;.Каждая из <tex>k</tex> частей единожды используется для тестирования. Как правило, <tex>k = 10</tex> (5 в случае малого размера выборки). [[Файл:K-fold-validation.png|500px]]
<tex>T^l = F_1 \cup \dots \cup F_k, |F_i| \approx \frac{l}{k} </tex> , <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 кросс-валидация === # Процедура выполняется <tex>t</tex> раз: ## Обучающая выборка случайным образом разбивается на <tex>k</tex> непересекающихся одинаковых по объему частей единожды используется для тестирования;## Производится <tex> k </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>CV_{t \times k } = \frac{1}{tk} \sum_{j=1}^t \sum_{i= 101}^{k} Q(\mu(T^l \setminus F_{(i,j)}),F_{(i,j)}) \to min </tex> . === Кросс-валидация по отдельным объектам (5 Leave-One-Out) === Выборка разбивается на <tex>l-1</tex> и 1 объект <tex>l</tex> раз. [[Файл: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>. Преимущества LOO в том, что каждый объект ровно один раз участвует в случае малого размера контроле, а длина обучающих подвыборок лишь на единицу меньше длины полной выборки. Недостатком LOO является большая ресурсоёмкость, так как обучаться приходится <tex>L</tex> раз. Некоторые методы обучения позволяют достаточно быстро перенастраивать внутренние параметры алгоритма при замене одного обучающего объекта другим. В этих случаях вычисление LOO удаётся заметно ускорить. === Случайные разбиения (Random subsampling)=== Выборка разбивается в случайной пропорции. Процедура повторяется несколько раз. [[Файл:CompleteCrossValidation.png|500px]]
В результате можно посчитать различные метрики, показывающие, насколько модель удачная, например, среднюю ошибку === Критерий целостности модели (Model consistency criterion) === Не переобученый алгоритм должен показывать одинаковую эффективность на частях, которые не участвовали в обучающей выборкекаждой части.
=== t×k-fold кросс-валидация === Процедура выполняется <tex>t</tex> раз[[Файл: ModelConsistencyCriterion.png|500px]]
<tex>D_1 = (\mu, T^{l -t}) = F_\frac{(1,1)} \cup \dots \cup F_{(k,1)l} = \dots sum_{i= F_{(1,t)} ^l (\cup \dots \cup F_{mu(k,T^t)}, |F_{(i,jx_i)}| -\approx \fracmu(T^{l-t}{k} )(x_i)) </tex> ,
Метод может быть обобщен как аналог <tex> CV_{t \times k2} = \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>.
== См. также ==
* [[Общие понятия]]<sup>[на 17.01.19 не создан]</sup
* [[Модель алгоритма и ее выбор]]
* [[Мета-обучение]]<sup>[на 17.01.19 не создан]</sup>
== Примечания ==
# [https://en.wikipedia.org/wiki/Cross-validation_(statistics) Кросс-валидация]
# [https://www.ml4aad.org/wp-content/uploads/2018/07/automl_book_draft_auto-weka.pdf Автоматизированный выбор модели в библиотеке WEKA для Java]# [https://epistasislab.github.io/tpot/ Автоматизированный выбор модели в библиотеке TPOT для Python]# [https://automl.github.io/auto-sklearn/stable/ Автоматизированный выбор модели в библиотеке sklearn для Python]
== Источники информации ==
# [http://www.machinelearning.ru/wiki/index.php?title=%D0%A1%D0%BA%D0%BE%D0%BB%D1%8C%D0%B7%D1%8F%D1%89%D0%B8%D0%B9_%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8C Скользящий контроль] - статья на MachineLearning.ru
# [httphttps://jmldadrive.org/papers/doc/2016google.com/no2/Efimova2016Reinforcement.pdf Применение обучения с подкреплением для одновременного выбора модели алгоритма классификации и ее структурных параметровopen?id=1p9CTAa1_gJpj94RXBEcQ09aVOa-KTlrd Model assessment and selection]
[[Категория: Машинное обучение]]
[[Категория: Автоматическое машинное обучение]]
77
правок

Навигация