refit

Класс: FeatureSelectionNCARegression

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

Синтаксис

mdlrefit = refit(mdl,Name,Value)

Описание

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

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

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

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

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

Задайте дополнительные разделенные запятой пары Name,Value аргументы. 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

Для просмотра документации необходимо авторизоваться на сайте