Риск переобучения этим способом не ограничен рекурсивным выбором предиктора или обертками вообще. При использовании других процедур поиска или фильтрации для сокращения количества предикторов риск все еще остается.

Следующие ситуации увеличивают вероятность смещения выбора:

– набор данных небольшой;

– число предикторов большое (так как возрастает вероятность объявления значимым неинформативного предиктора);

– предсказательные возможности модели не оправданно велики (например, модели черного ящика), которая, более вероятно, переобучена на данных;

– независимый набор тестов не доступен.

Когда набор данных большой, рекомендуются отдельные наборы данных для выбора предикторов, настройки модели и проверки заключительной модели (и набор предикторов). Для небольших наборов данных обучения надлежащее ресемплирование критично. Если объем данных не слишком маленький, то также рекомендуется отделить небольшой набор для тестирования, чтобы проверить дважды на отсутствие грубых ошибок.

11.6. Инструменты R для выбора предикторов

11.6.1. Пакет Boruta

Представим реализацию алгоритма для вычисления всех релевантных предикторов пакетом Boruta. Алгоритм использует подход обертки, созданный вокруг классификатора случайного леса. Алгоритм – расширение идеи для определения релевантности методом сравнения релевантности реальных предикторов к их случайным пробам.

Устанавливаются пороги, ниже которых предикторы отбрасываются. В результате по каждому предиктору получаем фактор со значениями Confirmed, Rejected или Tentative. Отвергнутые предикторы помечаются.

Устанавливаются параметры типа классификации. По умолчанию – случайный лес из пакета randomForest. В результате выдается индекс Gini.

11.6.2. Пакет varSelRF

Пакет для выбора предикторов в случайном лесе для объекта randomforest.

Выбор предикторов случайных лесов, используя как обратное удаление предикторов (для выбора небольших множеств безызбыточных переменных) и выбора, основанного на спектре значимости (что-то похожее на рисунки каменистой осыпи для выбора больших, потенциально чрезвычайно коррелированных предикторов). Основное применение для данных большой размерности (например, применение для данных геномики и протеомики).

11.6.3. Пакет FSelector

Методы для выбора предиктора могут быть разделены на два подхода: ранжирование предикторов и выбор подмножества. В первом подходе предикторы упорядочены по некоторым критериями, а затем выбираются предикторы выше определенного порога. Во втором подходе ищется промежуток между подмножествами предикторов для оптимального подмножества. Кроме того второй подход может быть разделен на три части:

– подход фильтра: сначала выбираются предикторы, а затем используется их подмножество для выполнения алгоритма классификации.

– встроенные подходы к выбору предикторов выполняются при выполнении алгоритма классификации.

– подход с оберткой алгоритма для классификации применяется к набору данных для идентификации лучших предикторов.

Пакет FSelector предлагает алгоритмы для фильтрации предикторов, алгоритмы с оберткой классификаторов, и алгоритм поиска разделения предикторов на подмножества (например, поиск по первому наилучшему совпадению, обратный поиск, поиск вперед, поиск восхождения на вершину). Пакет также позволяет выбрать подмножества предикторов с учетом их весов, выполняя различные способы отсечения.

11.6.4. Пакет «CORElearn»

Пакет «CORElearn» имеет большое число критериев упорядочения предикторов по их важности. Особое место занимают критерии, которые основаны на Relief, что позволяет оценивать предикторы, имеющие корреляцию между собой. Учет этой корреляции позволяет строить модели случайного леса, дающие устойчивые характеристики вне выборки.