Анализ компонента окрестности (NCA) является непараметрическим методом для выбора функций с целью максимизации точности предсказания алгоритмов регрессии и классификации. Функции Statistics and Machine Learning Toolbox™ fscnca
и fsrnca
выполните выбор признаков NCA с регуляризацией, чтобы узнать веса признаков для минимизации целевой функции, которая измеряет среднюю классификацию «один на один» или регрессионные потери по сравнению с обучающими данными.
Рассмотрим многоклассовую задачу классификации с набора обучающих данных, содержащей n наблюдения:
где являются векторами функций, являются метками классов, и c количество классов. Цель состоит в том, чтобы узнать классификатор который принимает вектор функции и делает предсказание для истинной метки из .
Рассмотрим рандомизированный классификатор, который:
Случайным образом выбирает точку, , от в качестве «контрольной точки» для
Метки использование метки точки ссылки .
Эта схема аналогична схеме классификатора 1-NN, где контрольная точка выбрана ближайшим соседом новой точки . В NCA точка ссылки выбирается случайным образом и все точки в иметь некоторую вероятность выбора в качестве опорной точки. Вероятность что точка выбран из как ссылка точка для выше, если ближе к как измерено функцией расстояния , где
и являются весами функций. Предположим, что
где является некоторым ядром или функцией подобия, которая принимает большие значения, когда маленькая. Предположим, что это так
как предложено в [1]. Точка ссылки для выбирается из , так сумма для всех j должно быть равно 1. Поэтому писать можно
Теперь рассмотрим разовое применение этого рандомизированного классификатора, то есть предсказание метки используя данные в , а набор обучающих данных исключая точку . Вероятность того, что точка выбран как ссылка точка для является
Средняя вероятность выхода из правильной классификации является вероятностью что рандомизированный классификатор правильно классифицирует i наблюдений с помощью .
где
Средняя вероятность выхода из правильной классификации с использованием рандомизированного классификатора может быть записана как
Правая сторона графика зависит от вектора веса . Цель анализа компонентов окрестностей состоит в том, чтобы максимизировать по отношению к . fscnca
использует регуляризованную целевую функцию, введенную в [1].
где является параметром регуляризации. Термин регуляризации управляет многими весами в в 0.
После выбора параметра ядра в как 1, нахождение вектора веса может быть выражена как следующая задача минимизации для данного .
где f (<reservedrangesplaceholder8>) = - F (<reservedrangesplaceholder6>) и <reservedrangesplaceholder5> <reservedrangesplaceholder4> (<reservedrangesplaceholder3>) = - <reservedrangesplaceholder2> <reservedrangesplaceholder1> (<reservedrangesplaceholder0>).
Обратите внимание, что
и аргумент минимума не меняется, если вы добавляете константу к целевой функции. Поэтому можно переписать целевую функцию, добавив константу 1.
где функция потерь определяется как
Аргументом минимума является вектор веса, который минимизирует ошибку классификации. Вы можете задать пользовательскую функцию потерь, используя LossFunction
аргумент пары "имя-значение" в вызове fscnca
.
fsrnca
функция выполняет выбор признаков NCA, измененный для регрессии. Учитывая n наблюдения
единственное различие от задачи классификации заключается в том, что значения отклика непрерывны. В этом случае цель состоит в том, чтобы предсказать ответ учитывая набор обучающих данных .
Рассмотрим рандомизированную регрессионую модель, которая:
Случайным образом выбирает точку () из в качестве «контрольной точки» для
Устанавливает значение отклика в равным значению отклика точки ссылкой .
Снова вероятность что точка выбран из как ссылка точка для является
Теперь рассмотрим разовое применение этой рандомизированной регрессионой модели, то есть предсказание отклика для используя данные в , а набор обучающих данных исключая точку . Вероятность того, что точка выбран как ссылка точка для является
Давайте быть значением отклика, который предсказывает рандомизированная регрессионая модель, и быть фактическим ответом для . И пусть быть функцией потерь, которая измеряет разногласия между и . Затем среднее значение является
После добавления термина регуляризации, целевая функция минимизации является:
Функция потерь по умолчанию для NCA для регрессии является средним абсолютным отклонением, но можно задать другие функции потерь, включая пользовательскую, используя LossFunction
аргумент пары "имя-значение" в вызове fsrnca
.
Термин регуляризации выводит веса нерелевантных предикторов в нуль. В целевых функциях для NCA для классификации или регрессии существует только один параметр регуляризации для всех весов. Этот факт требует, чтобы величины весов были сопоставимы друг с другом. Когда векторы функций в в разных шкалах, это может привести к весам, которые в разных шкалах и не значимы. Чтобы избежать этой ситуации, стандартизируйте предикторы, чтобы иметь нулевое среднее и единичное стандартное отклонение перед применением NCA. Можно стандартизировать предикторы, используя 'Standardize',true
аргумент пары "имя-значение" в вызове fscnca
или fsrnca
.
Обычно необходимо выбрать значение параметра регуляризации путем вычисления точности рандомизированного классификатора NCA или регрессионной модели на независимом тестовом наборе. Если вы используете перекрестную валидацию вместо одного тестового набора, выберите значение, которое минимизирует средние потери через сгибы перекрестной валидации. Для примеров смотрите Tune Regularization Parameter, чтобы обнаружить функции, используя NCA для классификации и Tune Regularization Parameter в NCA для регрессии.
[1] Yang, W., K. Wang, W. Zuo. «Компонент соседства Выбора признаков для высоко-размерных Данных». Журнал компьютеров. Том 7, № 1, январь 2012 года.
FeatureSelectionNCAClassification
| FeatureSelectionNCARegression
| fscnca
| fsrnca