Анализ компонента окружения (NCA) является непараметрическим и встроенным методом для выбора функций с целью максимизации точности прогноза алгоритмов классификации и регрессии. Функции Statistics and Machine Learning Toolbox™ fscnca
и fsrnca
выполняют выбор функции NCA с регуляризацией, чтобы изучить веса функции для минимизации целевой функции, которая измеряет среднюю классификацию, "пропускают один" или потеря регрессии по данным тренировки.
Рассмотрите проблему классификации мультиклассов с набором обучающих данных, содержащим наблюдения n:
где характеристические векторы, метки класса, и c является количеством классов. Цель состоит в том, чтобы изучить классификатор это принимает характеристический вектор и делает прогноз для истинной метки из .
Рассмотрите рандомизированный классификатор что:
Случайным образом выбирает точку, , от как 'контрольная точка' для
Метки использование метки контрольной точки .
Эта схема подобна тому из классификатора на 1 нН, где контрольная точка выбрана, чтобы быть самым близким соседом новой точки . В NCA контрольная точка выбрана случайным образом и все точки в имейте некоторую вероятность того, чтобы быть выбранным как контрольная точка. Вероятность та точка выбран от как контрольная точка для выше если ближе к как измерено функцией расстояния , где
и веса функции. AssumeThat
где некоторое ядро или функция подобия, которая принимает большие значения когда является маленьким. Предположим, что это
как предложено в [1]. Контрольная точка для выбран из , так сумма поскольку весь j должен быть равен 1. Поэтому возможно записать
Теперь полагайте, что приложение "пропускает один" этого рандомизированного классификатора, то есть, предсказывая метку использование данных в , набор обучающих данных исключая точку . Вероятность та точка выбран как контрольная точка для
Средняя вероятность "пропускает один" правильной классификации, вероятность то, что рандомизированный классификатор правильно классифицирует наблюдение использование i .
где
Средняя вероятность "пропускает один" правильной классификации с помощью рандомизированного классификатора, может быть записан как
Правая сторона зависит от вектора веса . Цель анализа компонента окружения состоит в том, чтобы максимизировать относительно . fscnca
использует упорядоченную целевую функцию, как введено в [1].
где параметр регуляризации. Срок регуляризации управляет многими весами в к 0.
После выбора параметра ядра \in как 1, находя вектор веса может быть выражен как следующая проблема минимизации для данного .
где f (w) =-F (w) и f i (w) =-Fi (w).
Обратите внимание на то, что
и аргумент минимума не изменяется, если вы добавляете константу в целевую функцию. Поэтому можно переписать целевую функцию путем добавления постоянного 1.
где функция потерь задана как
Аргумент минимума является вектором веса, который минимизирует ошибку классификации. Можно задать пользовательскую функцию потерь с помощью аргумента пары "имя-значение" LossFunction
в вызове fscnca
.
Функция fsrnca
выполняет выбор функции NCA, измененный для регрессии. Учитывая наблюдения n
единственная разница от проблемы классификации то, что значения ответа непрерывны. В этом случае цель состоит в том, чтобы предсказать ответ учитывая набор обучающих данных .
Рассмотрите рандомизированную модель регрессии что:
Случайным образом выбирает точку () от как 'контрольная точка' для
Устанавливает значение ответа в равняйтесь значению ответа контрольной точки .
Снова, вероятность та точка выбран от как контрольная точка для
Теперь полагайте, что приложение "пропускает один" этой рандомизированной модели регрессии, то есть, предсказывая ответ для использование данных в , набор обучающих данных исключая точку . Вероятность та точка выбран как контрольная точка для
Пусть будьте значением ответа, которое рандомизированная модель регрессии предсказывает и будьте фактическим ответом для . И позвольте будьте функцией потерь, которая измеряет разногласие между и . Затем среднее значение
После добавления срока регуляризации целевая функция для минимизации:
Функция потерь по умолчанию поскольку NCA для регрессии является средним абсолютным отклонением, но можно задать другие функции потерь, включая пользовательскую, с помощью аргумента пары "имя-значение" LossFunction
в вызове fsrnca
.
Срок регуляризации выводит веса несоответствующих предикторов, чтобы обнулить. В целевых функциях для NCA для классификации или регрессии, существует только один параметр регуляризации для всех весов. Этот факт требует, чтобы значения весов были сопоставимы друг с другом. Когда характеристические векторы \in находятся в различных шкалах, этом результате силы в весах, которые находятся в различных шкалах и не значимы. Чтобы избежать этой ситуации, стандартизируйте предикторы, чтобы иметь нулевое среднее значение и модульное стандартное отклонение прежде, чем применить NCA. Можно стандартизировать предикторы с помощью аргумента пары "имя-значение" 'Standardize',true
в вызове fscnca
или fsrnca
.
Обычно необходимо выбрать значение параметра регуляризации путем вычисления точности рандомизированного классификатора NCA или модели регрессии на независимом наборе тестов. Если вы используете перекрестную проверку вместо одного набора тестов, выберите значение, которое минимизирует среднюю потерю через сгибы перекрестной проверки. Для примеров смотрите Параметр Регуляризации Мелодии, чтобы Обнаружить Функции Используя NCA для Параметра Регуляризации Классификации и Мелодии в NCA для Регрессии.
[1] Ян, W., К. Ван, В. Цзо. "Компонент окружения показывает выбор для высоко-размерных данных". Журнал компьютеров. Издание 7, номер 1, январь 2012.