Наблюдения в обучающей выборке (training set) содержат опыт, который алгоритм использует для обучения. В задачах обучения с учителем каждое наблюдение состоит из наблюдаемой (зависимой) переменной и одной или нескольких независимых переменных.
Тестовое множество, или тестовая выборка, представляет из себя аналогичный набор наблюдений, который используется для оценки качества модели, используя некоторые показатели.
Важно, чтобы никакие наблюдения из обучающей выборки не были включены в тестовую выборку. Если тестовые данные действительно содержат примеры из обучающей выборки, то будет трудно оценить, научился ли алгоритм обобщать, используя обучающую выборку или же просто запомнил данные. Программа, которая хорошо обобщает, будет в состоянии эффективно выполнять задачи с новыми данными. И наоборот, программа, которая запоминит обучающие данные, создав чрезмерно сложную модель, может точно предсказывать значения зависимой переменной для обучающего множества, но не сможет предсказать значение зависимой переменной для новых примеров.
Переобучение
Запоминание обучающей выборки называется переобучением (overfitting). Программа, которая запомнит свои наблюдения не сможет выполнить поставленную задачу правильно, так как она запомнит отношения и структуры в данных, являющиеся шумом или простым совпадением. Балансировка между запоминанием и обобщением, или переобучением и недообучением (underfitting), является общей проблемой для многих алгоритмов машинного обучения. Одним из способов избежать переобучение для многих моделей является применение регуляризации.
Проверочное множество
В дополнение к обучающей и тестовой выборкам иногда требуется третий набор наблюдений, называемый проверочным (validation) множеством. Проверочное множество используется для настройки переменных, называемых гиперпараметрами, которые контролируют, как модель обучается. Программа по-прежнему оценивается на тестовом множестве, для получения оценки ее эффективности в реальном мире. Показатели эффективности на проверочном множестве не должны использоваться в качестве оценки реальной эффективности модели, так как программа была настроена, используя проверочные данные. Как правило, единая выборка наблюдений, используемых для обучения, разделяется на обучающее, тестовое и проверочное множества. Не существует каких-то особенных требований к размерам таких множеств, и они могут изменяться в соответствии с количеством имеющихся данных. На практике же, для обучающей выборки используется слудующая схема:
- 50 или более процентов данных для формирования обучающего множества;
- 25 процентов для тестовой выборки;
- оставшиеся данные используются для формирования проверочного множества.
Качество данных
Некоторые обучающие выборки могут содержать только несколько сотен наблюдений, другие могут включать в себя миллионы точек данных. Недорогие облачные хранилища данных, множество встроенных в смартфоны и различные гаджеты датчиков внесли свой вклад в современное состояние BigData. У нас имеется доступ к обучающим множествам с миллионами, или даже миллиардами примеров. Предсказательная сила многих алгоритмов машинного обучения растет при увеличении размера обучающих выборок данных. Тем не менее, алгоритмы машинного обучения, также следуют принципу «мусор на входе — мусор на выходе». Студент, который готовится к экзамену, читая большой, запутанной учебник, который содержит много ошибок, скорее всего, не получит лучшую оценку, чем студент, который читает небольшой, но хорошо написанный учебник. Аналогично, алгоритм обучающийся на большой коллекции зашумленных, не относящихся к делу, или неправильно маркированных данных не будет работать лучше, чем алгоритм обучающийся на меньшем наборе данных, которые более адекватны задачам в реальном мире.
Многие из обучающих множеств подготавливаются вручную, или же с использованием полуавтоматических процессов. Создание больших коллекций данных для обучения по прецедентам может быть достаточно затратным процессом в некоторых областях.
Кросс-валидация
Когда нам не хватает обучающих данных, то существует методика, называемая перекрестной проверкой (cross-validation). Перекрестная проверка может быть использована и для подготовки и для проверки алгоритма на одних и тех же данных. При перекрестной проверке, обучающие данные делятся на части. Алгоритм обучается, используя все, кроме одной из частей, а тестируется - на оставшейся части данных. Части могут затем меняться несколько раз так, что алгоритм обучается и оценивается на всех данных. В таблице показан пример перекрестной проверки с данными, разбитыми на пять частей.
A | B | C | D | E | |
Перекрестная проверка, 1 итерация | Тестовое множество | Обучающее множество | Обучающее множество | Обучающее множество | Обучающее множество |
Перекрестная проверка, 2 итерация | Обучающее множество | Тестовое множество | Обучающее множество | Обучающее множество | Обучающее множество |
Перекрестная проверка, 3 итерация | Обучающее множество | Обучающее множество | Тестовое множество | Обучающее множество | Обучающее множество |
Перекрестная проверка, 4 итерация | Обучающее множество | Обучающее множество | Обучающее множество | Тестовое множество | Обучающее множество |
Перекрестная проверка, 5 итерация | Обучающее множество | Обучающее множество | Обучающее множество | Обучающее множество | Тестовое множество |
Оригинальный набор данных разбивается на пять подмножеств одинакового размера, обозначенных от A до E. Сначала модель обучается на частях В-Е, и тестируется на части данных А. На следующей итерации, модель обучается на разделах A, C, D и Е и тестируется на данных части В. Части меняются до тех пор, пока модель не обучится и протестируется на всех частях. Кросс-валидация дает более точную оценку эффективности модели, чем тестирование с использованием только одной части данных.
[add_ratings]