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

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

Год написания книги
2019
<< 1 ... 8 9 10 11 12 13 14 15 16 >>
На страницу:
12 из 16
Настройки чтения
Размер шрифта
Высота строк
Поля
Одно следствие этого подхода состоит в том, что вероятности класса не могут генерироваться для модели, по крайней мере, в доступной реализации. Поэтому нельзя вычислить кривую ROC и следует использовать иную метрику результативности. Поэтому используем статистику Каппы, чувствительность и специфику для оценки воздействия взвешенных классов.

Дополнительно, много моделей классификационных деревьев могут включить дифференцированные стоимости. К ним относятся CART и C5.0. Потенциальная стоимость предсказания принимает во внимание несколько факторов:

– стоимость определенной ошибки;

– вероятность получения ошибки;

– априорная вероятность классов.

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

9.6. Функции R

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

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

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

Для реализации идей данного раздела могут быть использованы следующие пакеты: caret, C50, DMwR, kernlab, pROC и rpart.

createDataPartition (caret)

стратифицированная случайная выборка;

coords (pROC)

оптимизирует чувствительность и специфичность на кривой ROC;

downSample (caret)
upSample (caret)

выравнивает классы;

ksvm (kernlab)

с параметром class. weights подгоняет модель SVM в режиме взвешивания.

10. Значимость предикторов для целевой переменной

Под значимостью предикторов понимается степень влияния предиктора на целевую переменную как самостоятельно, так в совокупности с другими предикторами.

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

10.1. Метрики значимости, полученной из моделей

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

В рамках R доступны следующие методы для оценки вклада каждого предиктора в модель:

– линейные модели: используется абсолютное значение t-статистики для каждого параметра модели;

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

– частные наименьшие квадраты (PLS): более полезный для нас аналог главных компонент (РСА). В PLS мера значимости предикторов основана на взвешенных суммах абсолютных коэффициентов регрессии. Веса являются функцией приведения сумм квадратов по числу компонентов PLS и вычисляются отдельно для каждого результата. Поэтому, вклад коэффициентов взвешивается пропорционально;

– рекурсивное разделение (пакет rpart): приведение функции потерь (например, среднеквадратической ошибки), приписанной к каждому предиктору в каждом разделении, сводится в таблицу. Кроме того, предикторы-кандидаты, которые также были важны, но не использовались в разделении, также сводятся в таблицу в каждом разделении. Эти сведения можно получить в функции rpart.control. Этот метод в настоящий момент не предоставляет достоверный результат при категориальной целевой переменной;

– бутстрэп агрегированные деревья (Bagged trees): для улучшенных деревьев применена методология, аналогичная отдельному дереву. Возвращается итоговая значимость предикторов;

– усиленные деревья (Boosted trees): этот метод использует подход, аналогичный отдельному дереву, но суммирует значимость предикторов при каждой усиливающей итерации. Подробности в пакете gbm;

– многомерные регрессии адаптивных сплайнов: модели пакета MARS включают программу выбора предиктора для удаления, которая смотрит на уменьшение оценки ошибки в результате обобщенной перекрестной проверки (GCV). Функция varImp следит за изменениями в статистике модели, такой как GCV, для каждого предиктора и накапливает уменьшение статистики, при добавлении каждого предиктора к модели. Это полное уменьшение используется в качестве меры по значимости предиктора. Если предиктор не использовался в функциях MARS, то его величина значимости равна нулю. Есть три статистики, которые могут использоваться для оценки значимости предикторов в моделях MARS. При использовании varImp отслеживается уменьшение обобщенной статистики перекрестной проверки при добавлении предикторов. В другом случае varImp наблюдает изменение сумм квадратов остатков (RSS) при добавлении предикторов. В третьем случае функция varImp возвращает количество включений предикторов (в заключительной, сокращенной модели). Ранее функция varImp являлась внутренней функцией для оценки значимости предикторов для моделей MARS. В настоящий момент – это обертка функции evimp в пакете earth.

10.2. Независимые от модели метрики

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

Для классификации анализ кривой ROC проводится для каждого предиктора. Для задач двух классов уменьшается набор предикторов для предсказания класса. Вычисляются чувствительность и специфика при каждом уменьшении количества предикторов, и вычисляется кривая ROC с вычислением площади под кривой AUC. Эта область используется в качестве меры значимости предиктора.

10.3. Другие подходы

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

Для определенного предиктора алгоритм пытается определить расстояние между классами в изолированных пространствах данных. Для выбранных в произвольном порядке наблюдений из набора данных обучения алгоритм находит самые близкие наблюдения из обоих классов (названный «хитом» и «пробелом»). Для каждого предиктора вычисляется разность мер значимости между случайным наблюдением и удачами и неудачами.

10.4. Функции R

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

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

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

Много моделей имеют встроенные средства по оценке значимости предикторов. Пакет caret содержит общий класс для вычисления и возврата этих значений. Существуют следующие методы для этих классов: C5.0, JRip, PART, RRF, RandomForest, bagEarth, classbagg, cubist, dsa, earth, fda, gam, gbm, glm, glmnet, lm, multinom, mvr, nnet, pamrtrained, plsda, randomForest, regbagg, rfe, rpart, sbf,

Для реализации идей данного раздела могут быть использованы следующие пакеты: caret, CORElearn, minerva, pROC и randomForest. Перечень полезных функций:

cor

оценивает корреляцию между предикторами и целевой переменной;

corr

оценивает ранговую корреляцию по Спирмену между предикторами и целевой переменной;

filterVarImp (caret)

количественно оценивает отношения между предикторами и целевой переменной;
<< 1 ... 8 9 10 11 12 13 14 15 16 >>
На страницу:
12 из 16