Оценить:
 Рейтинг: 0

Предсказываем тренды. С Rattle и R в мир моделей классификации

Год написания книги
2019
<< 1 ... 10 11 12 13 14 15 16 >>
На страницу:
14 из 16
Настройки чтения
Размер шрифта
Высота строк
Поля

Логическая ошибка в исходном подходе четкая. Модель создавалась из набора данных обучения и, используя эти данные, предикторы были оценены и упорядочены. Если модель подогнана снова, используя только важные предикторы, результативность почти наверняка изменится к лучшему для этого же набора данных.

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

Чтобы должным образом повторно дискретизировать процесс выбора предиктора, необходим «внешний» цикл ресемплирования, который охватывает весь процесс.

Было показано, что при бутстрэпинге, 10-кратной перекрестной проверке или повторения набора тестов должным образом использовать методы ресемплирования, то результаты модели определяются правильно.

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

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

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

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

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

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

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

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

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, что позволяет оценивать предикторы, имеющие корреляцию между собой. Учет этой корреляции позволяет строить модели случайного леса, дающие устойчивые характеристики вне выборки.

11.7. Функции R

Приведем некоторые функции, которые могут быть использованы при работе над данным разделом.

Приведено название функции, а в скобках название пакета, в котором функция расположена. Для использования функция необходима загрузка пакета, а если его еще нет, то и установка.

Если названия пакета не приведено – это означает, что функция имеется в базовом пакете и не требуется предварительная загрузка пакета.

Для реализации идей данного раздела могут быть использованы следующие пакеты: caret,klaR, leaps, MASS, pROC, rms и stats.

11.7.1. Выбор вперед, назад и пошаговый

Есть несколько функций R для этого класса:

– может использоваться step в пакете stats для поиска соответствующих подмножеств для линейной регрессии и обобщенных линейных моделей (функции lm и glm, соответственно). Аргумент direction управляет методом поиска признака (например, «both,» «backward» или «forward»). Более общая функция – функция stepAIC в пакете MASS, который может обработать дополнительные типы моделей. В любом случае, статистика AIC (или в ее разновидности) используется в качестве целевой функции;

– функция fastbw в пакете rms проводит подобные поиски;

– у функции regsubsets в пакете leaps есть подобная функциональность;

– пакет klaR содержит функцию stepclass, которая ищет пространство предикторов для моделей, максимизирующая точность кросс-проверки.

Функция train пакета caret позволяет уменьшить риск смещения при выборе предикторов.

11.7.2. Рекурсивное удаление предикторов

Пакеты caret и varSelRF содержат функции ля рекурсивного удаления предикторов.

varSelRF (varSelRF)

рекурсивное удаление предикторов только в моделях случайного леса

rfe (caret)

универсальная обертка для любых предсказательных моделей

11.7.3. Методы фильтрации

В пакете caret имеется функция sbf, которая выбирает предикторы для модели с оценкой результативности ресемплированием.

Часть 2. Краткое описание Rattle

Вторая часть книги является краткой инструкцией для работы с Rattle. Организация материала продиктована порядком построения моделей, предусмотренным Rattle в виде последовательности вкладок программы.
<< 1 ... 10 11 12 13 14 15 16 >>
На страницу:
14 из 16