Эта тема обеспечивает введение в алгоритмы выбора признаков и описывает функции выбора признаков, доступные в Statistics and Machine Learning Toolbox™.
Feature selection уменьшает размерность данных путем выбора только подмножества измеренных функций (переменные предикторы), чтобы создать модель. Алгоритмы выбора признаков ищут подмножество предикторов, что оптимально модели измерили ответы согласно ограничениям такой как требуется или исключили функции и размер подмножества. Основные преимущества выбора признаков должны улучшать производительность прогноза, обеспечить более быстрые и более экономически эффективные предикторы и обеспечить лучшее понимание процесса генерации данных [1]. Использование слишком многих функций может ухудшить производительность прогноза, даже когда все функции релевантны и содержат информацию о переменной отклика.
Можно категоризировать алгоритмы выбора признаков в три типа:
Отфильтруйте Выбор признаков Типа — важность функции мер по алгоритму выбора признаков типа фильтра на основе характеристик функций, таких как отклонение функции и покажите отношение к ответу. Вы выбираете важные функции, когда часть предварительной обработки данных продвигается и затем обучает модель, использующую выбранные функции. Поэтому отфильтруйте выбор признаков типа, является некоррелированым к учебному алгоритму.
Выбор признаков Типа обертки — алгоритм выбора признаков типа обертки запускает обучение с помощью подмножества функций и затем добавляет или удаляет функцию с помощью критерия выбора. Критерий выбора непосредственно измеряет изменение в производительности модели, которая следует из добавления или удаления функции. Алгоритм повторяет обучение и улучшение модели до алгоритма, ее критерию остановки удовлетворяют.
Встроенный Выбор признаков Типа — встроенный алгоритм выбора признаков типа изучает важность функции как часть процесса обучения модели. Если вы обучаете модель, вы получаете важность функций в обученной модели. Этот тип алгоритма выбирает функции, которые работают хорошо с конкретным процессом обучения.
Кроме того, можно категоризировать алгоритмы выбора признаков согласно тому, оценивает ли алгоритм функции последовательно. Алгоритм минимальной уместности максимума сокращения (MRMR) и ступенчатая регрессия являются двумя примерами последовательного алгоритма выбора признаков. Для получения дополнительной информации смотрите Последовательный Выбор признаков.
Для проблем регрессии можно сравнить важность переменных предикторов визуально путем создания графиков отдельного условного ожидания (ICE) и частичных графиков зависимости (PDP). Для получения дополнительной информации смотрите plotPartialDependence
.
Для проблем классификации, после выбора функций, можно обучить две модели (например, полную модель и модель, обученную с подмножеством предикторов), и сравнить точность моделей при помощи compareHoldout
, testcholdout
, или testckfold
функции.
Выбор признаков предпочтителен, чтобы показать преобразование, когда исходные функции и их модули важны, и цель моделирования состоит в том, чтобы идентифицировать влиятельное подмножество. Когда категориальные функции присутствуют, и числовые преобразования являются несоответствующими, выбор признаков становится основными средствами сокращения размерности.
Statistics and Machine Learning Toolbox предлагает несколько функций для выбора признаков. Выберите соответствующую функцию выбора признаков на основе своей проблемы и типов данных функций.
Функция | Поддерживаемая проблема | Поддерживаемый тип данных | Описание |
---|---|---|---|
fscmrmr | Классификация | Категориальные и непрерывные функции | Оцените функции последовательно с помощью Алгоритма Минимальной уместности максимума сокращения (MRMR). Для примеров смотрите страницу |
fscnca * | Классификация | Непрерывные функции | Определите веса функции при помощи диагональной адаптации анализа компонента окружения (NCA). Этот алгоритм работает лучше всего на оценку важности функции для основанных на расстоянии контролируемых моделей, которые используют попарные расстояния между наблюдениями, чтобы предсказать ответ. Для получения дополнительной информации смотрите страницу
|
fsrnca * | Регрессия | Непрерывные функции | Определите веса функции при помощи диагональной адаптации анализа компонента окружения (NCA). Этот алгоритм работает лучше всего на оценку важности функции для основанных на расстоянии контролируемых моделей, которые используют попарные расстояния между наблюдениями, чтобы предсказать ответ. Для получения дополнительной информации смотрите страницу
|
fsulaplacian | Безнадзорное изучение | Непрерывные функции | Оцените функции с помощью Лапласового Счета. Для примеров смотрите страницу |
relieff | Классификация и регрессия | Или все категориальные или все непрерывные функции | Оцените функции с помощью алгоритма ReliefF в классификации и алгоритма RReliefF для регрессии. Этот алгоритм работает лучше всего на оценку важности функции для основанных на расстоянии контролируемых моделей, которые используют попарные расстояния между наблюдениями, чтобы предсказать ответ. Для примеров смотрите страницу |
sequentialfs | Классификация и регрессия | Или все категориальные или все непрерывные функции | Выберите функции последовательно с помощью пользовательского критерия. Задайте функцию, которая измеряет характеристики данных, чтобы выбрать функции и передать указатель на функцию |
*Можно также рассмотреть fscnca
и fsrnca
когда встроенный выбор признаков типа функционирует, потому что они возвращают обученный объект модели, и можно использовать объектные функции predict
и loss
. Однако вы обычно используете эти объектные функции, чтобы настроить параметр регуляризации алгоритма. После выбора функций с помощью fscnca
или fsrnca
функционируйте как часть шага предварительной обработки данных, можно применить другую классификацию или алгоритм регрессии для проблемы.
Функция | Поддерживаемая проблема | Поддерживаемый тип данных | Описание |
---|---|---|---|
sequentialfs | Классификация и регрессия | Или все категориальные или все непрерывные функции | Выберите функции последовательно с помощью пользовательского критерия. Задайте функцию, которая реализует алгоритм контролируемого обучения или функцию, которая измеряет уровень алгоритма обучения, и передайте указатель на функцию Для примеров смотрите страницу |
Функция | Поддерживаемая проблема | Поддерживаемый тип данных | Описание |
---|---|---|---|
DeltaPredictor свойство ClassificationDiscriminant объект модели | Классификация линейных дискриминантных анализов | Непрерывные функции | Создайте классификатор линейного дискриминантного анализа при помощи Для примеров смотрите эти темы:
|
fitcecoc с templateLinear | Линейная классификация для мультикласса, учащегося с высоко-размерными данными | Непрерывные функции | Обучите линейную модель классификации при помощи Для примера смотрите, Находят Хороший Штраф Лассо Используя Перекрестную проверку. Этот пример определяет хорошую силу штрафа лассо путем оценки моделей с различными значениями силы с помощью |
fitclinear | Линейная классификация для двоичного файла, учащегося с высоко-размерными данными | Непрерывные функции | Обучите линейную модель классификации при помощи Для примера смотрите, Находят Хороший Штраф Лассо Используя перекрестный Подтвержденный AUC. Этот пример определяет хорошую силу штрафа лассо путем оценки моделей с различными значениями силы с помощью значений AUC. Вычислите перекрестные подтвержденные следующие вероятности класса при помощи |
fitrgp | Регрессия | Категориальные и непрерывные функции | Обучите модель Gaussian process regression (GPR) при помощи Для примеров смотрите эти темы:
|
fitrlinear | Линейная регрессия с высоко-размерными данными | Непрерывные функции | Обучите модель линейной регрессии при помощи Для примеров смотрите эти темы:
|
lasso | Линейная регрессия | Непрерывные функции | Обучите модель линейной регрессии с регуляризацией Лассо при помощи Для примеров смотрите страницу
|
lassoglm | Обобщенная линейная регрессия | Непрерывные функции | Обучите обобщенную линейную модель регрессии с регуляризацией Лассо при помощи Для получения дополнительной информации смотрите страницу
|
oobPermutedPredictorImportance ** из ClassificationBaggedEnsemble | Классификация с ансамблем сложенных в мешок деревьев решений (например, случайный лес) | Категориальные и непрерывные функции | Обучите уволенный ансамбль классификации с древовидными учениками при помощи Для примеров смотрите страницу ссылки на функцию и тему |
oobPermutedPredictorImportance ** из RegressionBaggedEnsemble | Регрессия с ансамблем сложенных в мешок деревьев решений (например, случайный лес) | Категориальные и непрерывные функции | Обучите уволенный ансамбль регрессии с древовидными учениками при помощи Для примеров смотрите страницу |
predictorImportance ** из ClassificationEnsemble | Классификация с ансамблем деревьев решений | Категориальные и непрерывные функции | Обучите ансамбль классификации с древовидными учениками при помощи Для примеров смотрите страницу |
predictorImportance ** из ClassificationTree | Классификация с деревом решений | Категориальные и непрерывные функции | Обучите дерево классификации при помощи Для примеров смотрите страницу |
predictorImportance ** из RegressionEnsemble | Регрессия с ансамблем деревьев решений | Категориальные и непрерывные функции | Обучите ансамбль регрессии с древовидными учениками при помощи Для примеров смотрите страницу |
predictorImportance ** из RegressionTree | Регрессия с деревом решений | Категориальные и непрерывные функции | Обучите дерево регрессии при помощи Для примеров смотрите страницу |
stepwiseglm | Обобщенная линейная регрессия | Категориальные и непрерывные функции | Подбирайте обобщенную линейную модель регрессии использование ступенчатой регрессии при помощи Для получения дополнительной информации смотрите страницу
|
stepwiselm | Линейная регрессия | Категориальные и непрерывные функции | Подбирайте модель линейной регрессии использование ступенчатой регрессии при помощи Для получения дополнительной информации смотрите страницу
|
** Для основанного на дереве алгоритма задайте 'PredictorSelection'
как 'interaction-curvature'
использовать тест взаимодействия в выборе лучшего предиктора разделения. Тест взаимодействия полезен в идентификации важных переменных в присутствии многих несоответствующих переменных. Кроме того, если обучающие данные включают много предикторов, то задайте 'NumVariablesToSample'
как 'all'
для обучения. В противном случае программное обеспечение не может выбрать некоторые предикторы, недооценив их важность. Для получения дополнительной информации смотрите fitctree
, fitrtree
, и templateTree
.
[1] Guyon, Изабель и А. Елиссеев. "Введение в переменную и выбор признаков". Журнал Исследования Машинного обучения. Издание 3, 2003, стр 1157–1182.