ремонт

Класс: FeatureSelectionNCARegression

Переоборудуйте модель анализа компонента окружения (NCA) для регрессии

Синтаксис

mdlrefit = refit(mdl,Name,Value)

Описание

mdlrefit = refit(mdl,Name,Value) переоборудует модель mdl, с измененными параметрами, заданными одним или несколькими аргументами пары Name,Value.

Входные параметры

развернуть все

Аналитическая модель компонента окружения или классификация, заданная как объект FeatureSelectionNCARegression.

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Подбор кривой опциям

развернуть все

Метод для подбора кривой модели, заданной как пара, разделенная запятой, состоящая из 'FitMethod' и одно из следующих.

  • 'exact' — Выполняет подбор кривой с помощью всех данных.

  • 'none' Никакой подбор кривой. Используйте эту опцию, чтобы оценить ошибку обобщения модели NCA с помощью начальных весов функции, предоставленных в вызове fsrnca.

  • 'average' — Функция делит данные на разделы (подмножества), соответствует каждому разделу с помощью метода exact и возвращает среднее значение весов функции. Можно задать количество разделов с помощью аргумента пары "имя-значение" NumPartitions.

Пример: 'FitMethod','none'

Параметр регуляризации, заданный как пара, разделенная запятой, состоящая из 'Lambda' и неотрицательного скалярного значения.

Для наблюдений n лучшее значение Lambda, которое минимизирует ошибку обобщения модели NCA, как ожидают, будет кратным 1/n

Пример: 'Lambda',0.01

Типы данных: double | single

Тип решателя для оценки весов функции, заданных как пара, разделенная запятой, состоящая из 'Solver' и одно из следующих.

  • 'lbfgs' — Ограниченная память BFGS (Бройден Флетчер Голдфарб Шэнно) алгоритм (алгоритм LBFGS)

  • 'sgd' — Стохастический спуск градиента

  • 'minibatch-lbfgs' — Стохастический спуск градиента с алгоритмом LBFGS применился к мини-пакетам

Пример: 'solver','minibatch-lbfgs'

Начальные веса функции, заданные как пара, разделенная запятой, состоящая из 'InitialFeatureWeights' и p-by-1 вектор действительных значений положительной скалярной величины.

Типы данных: double | single

Индикатор для уровня многословия для отображения сводных данных сходимости, заданного как пара, разделенная запятой, состоящая из 'Verbose' и одно из следующих.

  • 0 — Никакие сводные данные сходимости

  • 1 — сводные данные Сходимости включая номер итерации, норму градиента и значение целевой функции.

  • > 1 — Больше информации о сходимости в зависимости от алгоритма подбора

    При использовании решателя 'minibatch-lbfgs' и уровень многословия> 1, информация о сходимости включает журнал итерации от промежуточных мини-пакетных подгонок LBFGS.

Пример: 'Verbose',2

Типы данных: double | single

LBFGS или мини-пакетные опции LBFGS

развернуть все

Относительный допуск сходимости на норме градиента для решателя lbfgs, заданный как пара, разделенная запятой, состоящая из 'GradientTolerance' и положительного действительного скалярного значения.

Пример: 'GradientTolerance',0.00001

Типы данных: double | single

SGD или мини-пакетные опции LBFGS

развернуть все

Начальный темп обучения для решателя sgd, заданный как пара, разделенная запятой, состоящая из 'InitialLearningRate' и значения положительной скалярной величины.

При использовании решателя вводят 'sgd', затухания темпа обучения по итерациям начиная со значения, заданного для 'InitialLearningRate'.

Пример: 'InitialLearningRate',0.8

Типы данных: double | single

Максимальное количество передач для решателя 'sgd' (стохастический спуск градиента), заданный как пара, разделенная запятой, состоящая из 'PassLimit' и положительного целого числа. Каждая передача процессы наблюдения size(mdl.X,1).

Пример: 'PassLimit',10

Типы данных: double | single

SGD или LBFGS или мини-пакетные опции LBFGS

развернуть все

Максимальное количество итераций, заданных как пара, разделенная запятой, состоящая из 'IterationLimit' и положительного целого числа.

Пример: 'IterationLimit',250

Типы данных: double | single

Выходные аргументы

развернуть все

Аналитическая модель компонента окружения или классификация, возвращенная как объект FeatureSelectionNCARegression. Можно или сохранить результаты как новую модель или обновить существующую модель как mdl = refit(mdl,Name,Value).

Примеры

развернуть все

Загрузите выборочные данные.

load(fullfile(matlabroot,'examples','stats','robotarm.mat'))

robotarm (pumadyn32nm) набор данных создается с помощью средства моделирования манипулятора с 7 168 обучением и 1 024 тестовыми наблюдениями с 32 функциями [1], [2]. Это - предварительно обработанная версия исходного набора данных. Данные предварительно обрабатываются путем вычитания от подгонки линейной регрессии, сопровождаемой нормализацией всех функций к модульному отклонению.

Вычислите ошибку обобщения без выбора функции.

nca = fsrnca(Xtrain,ytrain,'FitMethod','none','Standardize',1);
L = loss(nca,Xtest,ytest)
L = 0.9017

Теперь, переоборудуйте модель и вычислите потерю прогноза с выбором функции, с λ = 0 (никакой срок регуляризации) и выдерживают сравнение с предыдущим значением потерь, чтобы решить, что выбор функции кажется необходимым для этой проблемы. Для настроек, которые вы не изменяете, refit использует настройки первоначальной модели nca. Например, это использует веса функции, найденные в nca как начальные веса функции.

nca2 = refit(nca,'FitMethod','exact','Lambda',0);
L2 = loss(nca2,Xtest,ytest)
L2 = 0.1088

Уменьшение в потере предполагает, что выбор функции необходим.

Постройте веса функции.

figure()
plot(nca2.FeatureWeights,'ro')

Настройка параметра регуляризации обычно улучшает результаты. Предположим это после настройки λ с помощью перекрестной проверки в качестве в Параметре Регуляризации Мелодии в NCA для Регрессии, лучшего λ найденное значение 0.0035. Переоборудуйте nca модель с помощью этого λ значение и стохастическое происхождение градиента как решатель. Вычислите потерю прогноза.

nca3 = refit(nca2,'FitMethod','exact','Lambda',0.0035,...
          'Solver','sgd');
L3 = loss(nca3,Xtest,ytest)
L3 = 0.0573

Постройте веса функции.

figure()
plot(nca3.FeatureWeights,'ro')

После настройки параметра регуляризации потеря, уменьшенная еще больше и программное обеспечение, идентифицировала четыре из функций как релевантные.

Ссылки

[1] Расмуссен, C. E. Р. М. Нил, Г. Э. Хинтон, Д. ван Кэмпэнд, M. Повторно поклянитесь, З. Гэхрэмани, Р. Кастра, Р. Тибширэни. Руководство DELVE, 1996, http://mlg.eng.cam.ac.uk/pub/pdf/RasNeaHinetal96.pdf

[2] https://www.cs.toronto.edu/~delve/data/datasets.html

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

| | |

Введенный в R2017b