Введение в выбор признаков

Эта тема обеспечивает введение в алгоритмы выбора признаков и описывает функции выбора признаков, доступные в Statistics and Machine Learning Toolbox™.

Алгоритмы выбора признаков

Feature selection уменьшает размерность данных путем выбора только подмножества измеренных функций (переменные предикторы), чтобы создать модель. Алгоритмы выбора признаков ищут подмножество предикторов, что оптимально модели измерили ответы согласно ограничениям такой как требуется или исключили функции и размер подмножества. Основные преимущества выбора признаков должны улучшать производительность прогноза, обеспечить более быстрые и более экономически эффективные предикторы и обеспечить лучшее понимание процесса генерации данных [1]. Использование слишком многих функций может ухудшить производительность прогноза, даже когда все функции релевантны и содержат информацию о переменной отклика.

Можно категоризировать алгоритмы выбора признаков в три типа:

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

  • Выбор признаков Типа обертки — алгоритм выбора признаков типа обертки запускает обучение с помощью подмножества функций и затем добавляет или удаляет функцию с помощью критерия выбора. Критерий выбора непосредственно измеряет изменение в производительности модели, которая следует из добавления или удаления функции. Алгоритм повторяет обучение и улучшение модели до алгоритма, ее критерию остановки удовлетворяют.

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

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

Для проблем регрессии можно сравнить важность переменных предикторов визуально путем создания графиков отдельного условного ожидания (ICE) и частичных графиков зависимости (PDP). Для получения дополнительной информации смотрите plotPartialDependence.

Для проблем классификации, после выбора функций, можно обучить две модели (например, полную модель и модель, обученную с подмножеством предикторов), и сравнить точность моделей при помощи compareHoldout, testcholdout, или testckfold функции.

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

Функции выбора признаков

Statistics and Machine Learning Toolbox предлагает несколько функций для выбора признаков. Выберите соответствующую функцию выбора признаков на основе своей проблемы и типов данных функций.

Отфильтруйте выбор признаков типа

ФункцияПоддерживаемая проблемаПоддерживаемый тип данныхОписание
fscmrmrКлассификацияКатегориальные и непрерывные функции

Оцените функции последовательно с помощью Алгоритма Минимальной уместности максимума сокращения (MRMR).

Для примеров смотрите страницу fscmrmr ссылки на функцию.

fscnca*КлассификацияНепрерывные функции

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

Для получения дополнительной информации смотрите страницу fscnca ссылки на функцию и эти темы:

fsrnca*РегрессияНепрерывные функции

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

Для получения дополнительной информации смотрите страницу fsrnca ссылки на функцию и эти темы:

fsulaplacianБезнадзорное изучениеНепрерывные функции

Оцените функции с помощью Лапласового Счета.

Для примеров смотрите страницу fsulaplacian ссылки на функцию.

relieffКлассификация и регрессияИли все категориальные или все непрерывные функции

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

Для примеров смотрите страницу relieff ссылки на функцию.

sequentialfsКлассификация и регрессияИли все категориальные или все непрерывные функции

Выберите функции последовательно с помощью пользовательского критерия. Задайте функцию, которая измеряет характеристики данных, чтобы выбрать функции и передать указатель на функцию sequentialfs функция. Можно задать последовательный прямой выбор или последовательный обратный выбор при помощи 'Direction' аргумент пары "имя-значение". sequentialfs оценивает критерий с помощью перекрестной проверки.

*Можно также рассмотреть fscnca и fsrnca когда встроенный выбор признаков типа функционирует, потому что они возвращают обученный объект модели, и можно использовать объектные функции predict и loss. Однако вы обычно используете эти объектные функции, чтобы настроить параметр регуляризации алгоритма. После выбора функций с помощью fscnca или fsrnca функционируйте как часть шага предварительной обработки данных, можно применить другую классификацию или алгоритм регрессии для проблемы.

Выбор признаков типа обертки

ФункцияПоддерживаемая проблемаПоддерживаемый тип данныхОписание
sequentialfsКлассификация и регрессияИли все категориальные или все непрерывные функции

Выберите функции последовательно с помощью пользовательского критерия. Задайте функцию, которая реализует алгоритм контролируемого обучения или функцию, которая измеряет уровень алгоритма обучения, и передайте указатель на функцию sequentialfs функция. Можно задать последовательный прямой выбор или последовательный обратный выбор при помощи 'Direction' аргумент пары "имя-значение". sequentialfs оценивает критерий с помощью перекрестной проверки.

Для примеров смотрите страницу sequentialfs ссылки на функцию и эти темы:

Встроенный выбор признаков типа

ФункцияПоддерживаемая проблемаПоддерживаемый тип данныхОписание
DeltaPredictor свойство ClassificationDiscriminant объект моделиКлассификация линейных дискриминантных анализовНепрерывные функции

Создайте классификатор линейного дискриминантного анализа при помощи fitcdiscr. Обученный классификатор, возвращенный как ClassificationDiscriminant, хранит содействующую величину в DeltaPredictor свойство. Можно использовать значения в DeltaPredictor как меры важности предиктора. Этот классификатор использует две Гаммы параметров регуляризации и Delta, чтобы идентифицировать и удалить избыточные предикторы. Можно получить соответствующие значения для этих параметров при помощи cvshrink функционируйте или 'OptimizeHyperparameters' аргумент пары "имя-значение".

Для примеров смотрите эти темы:

fitcecoc с templateLinearЛинейная классификация для мультикласса, учащегося с высоко-размерными даннымиНепрерывные функции

Обучите линейную модель классификации при помощи fitcecoc и линейные бинарные ученики заданы templateLinear. Задайте 'Regularization' из templatelinear как 'lasso' использовать регуляризацию лассо.

Для примера смотрите, Находят Хороший Штраф Лассо Используя Перекрестную проверку. Этот пример определяет хорошую силу штрафа лассо путем оценки моделей с различными значениями силы с помощью kfoldLoss. Можно также оценить модели с помощью kfoldEdge, kfoldMargin, edge, loss, или margin.

fitclinearЛинейная классификация для двоичного файла, учащегося с высоко-размерными даннымиНепрерывные функции

Обучите линейную модель классификации при помощи fitclinear. Задайте 'Regularization' из fitclinear как 'lasso' использовать регуляризацию лассо.

Для примера смотрите, Находят Хороший Штраф Лассо Используя перекрестный Подтвержденный AUC. Этот пример определяет хорошую силу штрафа лассо путем оценки моделей с различными значениями силы с помощью значений AUC. Вычислите перекрестные подтвержденные следующие вероятности класса при помощи kfoldPredict, и вычислите значения AUC при помощи perfcurve. Можно также оценить модели с помощью kfoldEdge, kfoldLoss, kfoldMargin, edge, loss, margin, или predict.

fitrgpРегрессияКатегориальные и непрерывные функции

Обучите модель Gaussian process regression (GPR) при помощи fitrgp. Установите 'KernelFunction' аргумент пары "имя-значение", чтобы использовать автоматическое определение уместности (ARD). Доступными параметрами является 'ardsquaredexponential', 'ardexponential', 'ardmatern32', 'ardmatern52', и 'ardrationalquadratic'. Найдите веса предиктора путем взятия экспоненциала отрицательных изученных шкал расстояний, сохраненных в KernelInformation свойство.

Для примеров смотрите эти темы:

fitrlinearЛинейная регрессия с высоко-размерными даннымиНепрерывные функции

Обучите модель линейной регрессии при помощи fitrlinear. Задайте 'Regularization' из fitrlinear как 'lasso' использовать регуляризацию лассо.

Для примеров смотрите эти темы:

lassoЛинейная регрессияНепрерывные функции

Обучите модель линейной регрессии с регуляризацией Лассо при помощи lasso. Можно задать вес лассо по сравнению с гребенчатой оптимизацией при помощи 'Alpha' аргумент пары "имя-значение".

Для примеров смотрите страницу lasso ссылки на функцию и эти темы:

lassoglmОбобщенная линейная регрессияНепрерывные функции

Обучите обобщенную линейную модель регрессии с регуляризацией Лассо при помощи lassoglm. Можно задать вес лассо по сравнению с гребенчатой оптимизацией при помощи 'Alpha' аргумент пары "имя-значение".

Для получения дополнительной информации смотрите страницу lassoglm ссылки на функцию и эти темы:

oobPermutedPredictorImportance** из ClassificationBaggedEnsembleКлассификация с ансамблем сложенных в мешок деревьев решений (например, случайный лес)Категориальные и непрерывные функции

Обучите уволенный ансамбль классификации с древовидными учениками при помощи fitcensemble и определение 'Method' как 'bag'. Затем используйте oobPermutedPredictorImportance вычислить Из сумки, Оценки Важности Предиктора Сочетания. Функция измеряется, насколько влиятельный переменные предикторы в модели при предсказании ответа.

Для примеров смотрите страницу ссылки на функцию и тему oobPermutedPredictorImportance.

oobPermutedPredictorImportance** из RegressionBaggedEnsembleРегрессия с ансамблем сложенных в мешок деревьев решений (например, случайный лес)Категориальные и непрерывные функции

Обучите уволенный ансамбль регрессии с древовидными учениками при помощи fitrensemble и определение 'Method' как 'bag'. Затем используйте oobPermutedPredictorImportance вычислить Из сумки, Оценки Важности Предиктора Сочетания. Функция измеряется, насколько влиятельный переменные предикторы в модели при предсказании ответа.

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

predictorImportance** из ClassificationEnsembleКлассификация с ансамблем деревьев решенийКатегориальные и непрерывные функции

Обучите ансамбль классификации с древовидными учениками при помощи fitcensemble. Затем используйте predictorImportance вычислить оценки Важности Предиктора для ансамбля путем подведения итогов изменений в риске из-за разделений на каждом предикторе и деления суммы на количество узлов ветви.

Для примеров смотрите страницу predictorImportance ссылки на функцию.

predictorImportance** из ClassificationTreeКлассификация с деревом решенийКатегориальные и непрерывные функции

Обучите дерево классификации при помощи fitctree. Затем используйте predictorImportance вычислить оценки Важности Предиктора для дерева путем подведения итогов изменений в риске из-за разделений на каждом предикторе и деления суммы на количество узлов ветви.

Для примеров смотрите страницу predictorImportance ссылки на функцию.

predictorImportance** из RegressionEnsembleРегрессия с ансамблем деревьев решенийКатегориальные и непрерывные функции

Обучите ансамбль регрессии с древовидными учениками при помощи fitrensemble. Затем используйте predictorImportance вычислить оценки Важности Предиктора для ансамбля путем подведения итогов изменений в риске из-за разделений на каждом предикторе и деления суммы на количество узлов ветви.

Для примеров смотрите страницу predictorImportance ссылки на функцию.

predictorImportance** из RegressionTreeРегрессия с деревом решенийКатегориальные и непрерывные функции

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

Для примеров смотрите страницу predictorImportance ссылки на функцию.

stepwiseglmОбобщенная линейная регрессияКатегориальные и непрерывные функции

Подбирайте обобщенную линейную модель регрессии использование ступенчатой регрессии при помощи stepwiseglm. В качестве альтернативы можно подбирать модель линейной регрессии при помощи fitglm и затем настройте модель при помощи step. Ступенчатая регрессия является систематическим методом для добавления и удаления условий от основанного на модели на их статистическом значении в объяснении переменной отклика.

Для получения дополнительной информации смотрите страницу stepwiseglm ссылки на функцию и эти темы:

stepwiselmЛинейная регрессияКатегориальные и непрерывные функции

Подбирайте модель линейной регрессии использование ступенчатой регрессии при помощи stepwiselm. В качестве альтернативы можно подбирать модель линейной регрессии при помощи fitlm и затем настройте модель при помощи step. Ступенчатая регрессия является систематическим методом для добавления и удаления условий от основанного на модели на их статистическом значении в объяснении переменной отклика.

Для получения дополнительной информации смотрите страницу stepwiselm ссылки на функцию и эти темы:

** Для основанного на дереве алгоритма задайте 'PredictorSelection' как 'interaction-curvature' использовать тест взаимодействия в выборе лучшего предиктора разделения. Тест взаимодействия полезен в идентификации важных переменных в присутствии многих несоответствующих переменных. Кроме того, если обучающие данные включают много предикторов, то задайте 'NumVariablesToSample' как 'all' для обучения. В противном случае программное обеспечение не может выбрать некоторые предикторы, недооценив их важность. Для получения дополнительной информации смотрите fitctree, fitrtree, и templateTree.

Ссылки

[1] Guyon, Изабель и А. Елиссеев. "Введение в переменную и выбор признаков". Журнал Исследования Машинного обучения. Издание 3, 2003, стр 1157–1182.

Смотрите также

Похожие темы

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