После завершения процесса обучения обычно возникает вопрос о том, насколько успешно гипотеза, полученная в результате обучения, позволяет предсказать, к какому классу относятся вновь поступившие данные. Безусловно, как только становятся доступными новые данные, эту точность можно просто измерить, проводя классификацию новых объектов и сравнивая их истинное значение класса с классом, предсказанным с помощью гипотезы. Но проблема состоит в том, что хотелось бы оценить эту точность еще до того, как станут доступными новые данные.
Обычный подход к оценке точности по новым данным состоит в разбиении случайным образом всех имеющихся данных на два множества: учебное и испытательное. Затем обучающаяся программа вызывается на выполнение на учебном множестве, а логически выведенные гипотезы проверяются на испытательном множестве так, как если бы данные этого множества представляли собой новые, будущие данные.
440 Часть II. Применение языка Prolog в области искусственного интеллекта
Такой подход является простым и не создает каких-либо проблем, если количество данных велико. Но наиболее распространенной ситуацией является недостаток данных. Предположим, что программа обучается составлению диагноза в определенной области медицины. В нашем распоряжении имеются только данные о последних пациентах, а количество этих данных не может быть увеличено. Если объем обучающих данных невелик, он может оказаться недостаточным для успешного обучения. В таком случае нехватка данных еще больше усугубляется тем, что часть данных необходимо выделить для использования в качестве испытательного множества.
Если количество обучающих примеров невелико, то результаты обучения и испытания подвержены значительным статистическим колебаниям. Они могут зависеть от того, как именно было выполнено разбиение данных на обучающее и испытательное множество. Для устранения такой статистической неопределенности процесс обучения и испытания повторяется несколько раз (как правило, десять) с использованием различных случайных разбиений. Затем результаты измерения точности усредняются, а их дисперсия позволяет получить представление о стабильности оценки.
Дальнейшим развитием метода проведения повторных испытаний такого типа является к кратная перекрестная проверка (k-fold cross-validation). При использовании этого метода все обучающее множество случайным образом разбивается на к подмножеств. После этого обучение и испытание повторяются для каждого из этих подмножеств следующим образом: i-e подмножество удаляется из данных, остальная часть данных используется в качестве обучающего множества, после чего i-e подмножество применяется для испытания логически выведенной гипотезы. Полученные таким образом к результатов оценки точности усредняются, и вычисляется их дисперсия. Конкретного метода выбора значения к не существует, но в экспериментах по машинному обучению чаще всего применяется значение к - 10.
Особый случай перекрестной проверки возникает, если подмножества содержат только по одному элементу. В каждой итерации обучение осуществляется по всем данным, кроме одного примера, а логически выведенные гипотезы проверяются на оставшемся примере. Такая форма перекрестной проверки называется исключением одного примера (leave-one-out). Она является оправданной, если количество доступных данных особенно мало.