exponenta event banner

ремонт

Класс: Элемент Выбор NCARexression

Модель анализа соседства (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 (Broyden-Fletcher-Goldfarb-Shanno) (алгоритм 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('robotarm.mat')

robotarm (pumadyn32nm) набор данных создается с помощью имитатора руки робота с 7168 тренировками и 1024 тестовыми наблюдениями с 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')

Figure contains an axes. The axes contains an object of type line.

Настройка параметра регуляризации обычно улучшает результаты. Предположим, что после настройки λ с использованием перекрестной проверки, как в параметре регуляции настройки в 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')

Figure contains an axes. The axes contains an object of type line.

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

Ссылки

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

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

Представлен в R2016b