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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Исследуйте, независим ли каждый переменный предиктор от переменной отклика при помощи отдельных тестов хи-квадрата, и затем отранжируйте признаки с помощью p - значения тестовой статистики хи-квадрата.

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

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

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

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

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

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

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

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

Исследуйте важность каждого предиктора индивидуально с помощью F - тест, и затем отранжируйте признаки с помощью p - значения F - тестовая статистика. Каждый F - тест тестирует гипотезу, что значения отклика, сгруппированные значениями переменного предиктора, чертятся от популяций с тем же средним значением против альтернативной гипотезы, что средние значения населения не являются всеми одинаковыми.

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

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.

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

Ссылки

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

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

(Bioinformatics Toolbox)

Похожие темы