В этом разделе приводится введение в алгоритмы выбора признаков и описываются функции выбора признаков, доступные в Statistics and Machine Learning Toolbox™.
Feature selection уменьшает размерность данных, выбирая только подмножество измеренных функций (переменные предиктора), чтобы создать модель. Алгоритмы выбора признаков ищут подмножество предикторов, которые оптимально моделируют измеренные отклики, удовлетворяющие ограничениям, таким как требуемые или исключенные признаки и размер подмножества. Основные преимущества выбора признаков заключаются в повышении эффективности предсказания, обеспечении более быстрых и экономичных предикторов и обеспечении лучшего понимания процесса генерации данных [1]. Использование слишком многих функций может снизить эффективность предсказания, даже когда все функции релевантны и содержат информацию о переменной отклика.
Можно классифицировать алгоритмы выбора признаков по трем типам:
Тип фильтра Выбор признаков - алгоритм выбора признаков типа фильтра измеряет важность функции на основе характеристик функций, таких как отклонение функции и релевантность функции к отклику. Вы выбираете важные функции как часть шага предварительной обработки данных, а затем обучаете модель с помощью выбранных функций. Поэтому тип выбора признаков фильтра некоррелирован с алгоритмом настройки.
Тип обертки Выбора признаков - алгоритм выбора признаков обертки начинает обучение с помощью подмножества функций и затем добавляет или удаляет функцию с помощью критерия выбора. Критерий выбора непосредственно измеряет изменение производительности модели, которое является результатом добавления или удаления функции. Алгоритм повторяет обучение и улучшение модели, пока не будут удовлетворены его критерий остановки.
Embedded Type Feature Selection - алгоритм выбора признаков встраиваемого типа учит значимость функции как часть процесса обучения модели. Когда вы обучаете модель, вы получаете важность функций в обученной модели. Этот тип алгоритма выбирает функции, которые хорошо работают с конкретным процессом обучения.
В сложение можно классифицировать алгоритмы выбора признаков в зависимости от того, функции ли алгоритм последовательно. Алгоритм максимальной релевантности минимальной избыточности (MRMR) и ступенчатая регрессия являются двумя примерами алгоритма последовательного выбора признаков. Для получения дополнительной информации см. раздел «Последовательный выбор признаков».
Можно сравнить важность переменных предиктора визуально, создав графики частичной зависимости (PDP) и отдельные графики условного ожидания (ICE). Для получения дополнительной информации см. plotPartialDependence
.
Для задач классификации, после выбора функций, можно обучить две модели (для примера, полная модель и модель, обученная с подмножеством предикторов) и сравнить точности моделей с помощью compareHoldout
, testcholdout
, или testckfold
функций.
Выбор признаков предпочтительнее преобразования признака, когда исходные функции и их модули важны, и цель моделирования состоит в том, чтобы идентифицировать влиятельное подмножество. Когда присутствуют категориальные функции и числовые преобразования неуместны, выбор признаков становится основным средством уменьшения размерности.
Statistics and Machine Learning Toolbox предлагает несколько функций для выбора признаков. Выберите соответствующую функцию выбора признаков на основе вашей задачи и типов данных функций.
Функция | Поддерживаемая задача | Поддерживаемый тип данных | Описание |
---|---|---|---|
fscchi2 | Классификация | Категориальные и непрерывные функции | Исследуйте, является ли каждая переменная предиктора независимой от переменной отклика, используя отдельные тесты хи-квадрат, и затем оцените функции с помощью p значений статистики теста хи-квадрат. Для примеров смотрите страницу с описанием функции |
fscmrmr | Классификация | Категориальные и непрерывные функции | Оцените функции последовательно с помощью алгоритма минимальной избыточности максимальной релевантности (MRMR). Для примеров смотрите страницу с описанием функции |
fscnca * | Классификация | Непрерывные функции | Определите веса функции с помощью диагональной адаптации анализа соседних компонентов (NCA). Этот алгоритм лучше всего работает для оценки важности функции для основанных на расстоянии контролируемых моделей, которые используют парные расстояния между наблюдениями, чтобы предсказать реакцию. Для получения дополнительной информации см. страницу с описанием функции
|
fsrftest | Регресс | Категориальные и непрерывные функции | Исследуйте важность каждого предиктора индивидуально с помощью F-test, а затем оцените функции с помощью p-значений F-test статистики. Каждый F-тест проверяет гипотезу о том, что значения отклика, сгруппированные по значениям переменных предиктора, взяты из населений с тем же средним значением против альтернативной гипотезы о том, что средства населения не все одинаковые. Для примеров смотрите страницу с описанием функции |
fsrnca * | Регресс | Непрерывные функции | Определите веса функции с помощью диагональной адаптации анализа соседних компонентов (NCA). Этот алгоритм лучше всего работает для оценки важности функции для основанных на расстоянии контролируемых моделей, которые используют парные расстояния между наблюдениями, чтобы предсказать реакцию. Для получения дополнительной информации см. страницу с описанием функции
|
fsulaplacian | Неконтролируемое обучение | Непрерывные функции | Оцените функции с помощью Laplacian Score. Для примеров смотрите страницу с описанием функции |
relieff | Классификация и регрессия | Либо все категориальные, либо все непрерывные функции | Оцените функции, используя алгоритм ReliefF для классификации и алгоритм RReliefF для регрессии. Этот алгоритм лучше всего работает для оценки важности функции для основанных на расстоянии контролируемых моделей, которые используют парные расстояния между наблюдениями, чтобы предсказать реакцию. Для примеров смотрите страницу с описанием функции |
sequentialfs | Классификация и регрессия | Либо все категориальные, либо все непрерывные функции | Последовательно выберите функции с помощью пользовательского критерия. Задайте функцию, которая измеряет характеристики данных для выбора функций и передает указатель на функцию |
* Вы также можете рассмотретьfscnca
и fsrnca
как встроенный тип функции выбора признаков, потому что они возвращают обученный объект модели, и вы можете использовать функции объекта predict
и loss
. Однако обычно вы используете эти функции объекта, чтобы настроить параметр регуляризации алгоритма. После выбора функций с помощью fscnca
или fsrnca
функция как часть шага предварительной обработки данных, вы можете применить другой алгоритм классификации или регрессии для вашей задачи.
Функция | Поддерживаемая задача | Поддерживаемый тип данных | Описание |
---|---|---|---|
sequentialfs | Классификация и регрессия | Либо все категориальные, либо все непрерывные функции | Последовательно выберите функции с помощью пользовательского критерия. Задайте функцию, которая реализует алгоритм контролируемого обучения или функцию, которая измеряет эффективность алгоритма обучения и передает указатель на функцию Для примеров смотрите страницу с описанием функции |
Функция | Поддерживаемая задача | Поддерживаемый тип данных | Описание |
---|---|---|---|
DeltaPredictor свойство ClassificationDiscriminant объект модели | Классификация линейного дискриминантного анализа | Непрерывные функции | Создайте классификатор линейного дискриминантного анализа при помощи Для примеров смотрите следующие темы:
|
fitcecoc с templateLinear | Линейная классификация для многоклассового обучения с высокомерными данными | Непрерывные функции | Обучите линейную модель классификации при помощи Для получения примера смотрите Найти хороший штраф Лассо с помощью перекрестной валидации. Этот пример определяет хорошую силу лассо-штрафа путем оценки моделей с различными значениями прочности с помощью |
fitclinear | Линейная классификация для двоичного обучения с высоко-размерными данными | Непрерывные функции | Обучите линейную модель классификации при помощи Для получения примера смотрите Найти хороший штраф за лассо с использованием Cross-Validated AUC. Этот пример определяет хорошую силу лассо-штрафа путем оценки моделей с различными значениями прочности с помощью значений AUC. Вычислите перекрестно проверенные вероятности апостериорных классов при помощи |
fitrgp | Регресс | Категориальные и непрерывные функции | Обучите модель регрессии Гауссова процесса (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
.
***stepwiseglm
и stepwiselm
не являются функциями типа оболочки, поскольку вы не можете использовать их в качестве оболочки для другой функции обучения. Однако эти две функции используют алгоритм типа оболочки, чтобы найти важные функции.
[1] Гийон, Изабель и А. Элиссефф. «Введение в переменные и выбор признаков». Журнал исследований машинного обучения. Том 3, 2003, стр. 1157-1182.
rankfeatures
(Bioinformatics Toolbox)