Класс: FeatureSelectionNCARegression
Переоборудуйте модель анализа компонента окружения (NCA) для регрессии
mdlrefit = refit(mdl,Name,Value)
переоборудует модель mdlrefit = refit(mdl,Name,Value)mdl, с измененными параметрами, заданными одним или несколькими аргументами пары Name,Value.
mdl — Аналитическая модель компонента окружения для регрессииFeatureSelectionNCARegressionАналитическая модель компонента окружения или классификация, заданная как объект FeatureSelectionNCARegression.
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
'FitMethod' — Метод для подбора кривой моделиmdl.FitMethod (значение по умолчанию) | 'exact' | 'none' | 'average'Метод для подбора кривой модели, заданной как пара, разделенная запятой, состоящая из 'FitMethod' и одно из следующих.
'exact' — Выполняет подбор кривой с помощью всех данных.
'none' Никакой подбор кривой. Используйте эту опцию, чтобы оценить ошибку обобщения модели NCA с помощью начальных весов функции, предоставленных в вызове fsrnca.
'average' — Функция делит данные на разделы (подмножества), соответствует каждому разделу с помощью метода exact и возвращает среднее значение весов функции. Можно задать количество разделов с помощью аргумента пары "имя-значение" NumPartitions.
Пример: 'FitMethod','none'
\lambda Параметр регуляризацииmdl.Lambda (значение по умолчанию) | неотрицательное скалярное значениеПараметр регуляризации, заданный как пара, разделенная запятой, состоящая из 'Lambda' и неотрицательного скалярного значения.
Для наблюдений n лучшее значение Lambda, которое минимизирует ошибку обобщения модели NCA, как ожидают, будет кратным 1/n
Пример: 'Lambda',0.01
Типы данных: double | single
'Solver' — Тип решателяmdl.Solver (значение по умолчанию) | 'lbfgs' | 'sgd' | 'minibatch-lbfgs'Тип решателя для оценки весов функции, заданных как пара, разделенная запятой, состоящая из 'Solver' и одно из следующих.
'lbfgs' — Ограниченная память BFGS (Бройден Флетчер Голдфарб Шэнно) алгоритм (алгоритм LBFGS)
'sgd' — Стохастический спуск градиента
'minibatch-lbfgs' — Стохастический спуск градиента с алгоритмом LBFGS применился к мини-пакетам
Пример: 'solver','minibatch-lbfgs'
'InitialFeatureWeights' — Начальные веса функцииmdl.InitialFeatureWeights (значение по умолчанию) | p-by-1 вектор действительных значений положительной скалярной величиныНачальные веса функции, заданные как пара, разделенная запятой, состоящая из 'InitialFeatureWeights' и p-by-1 вектор действительных значений положительной скалярной величины.
Типы данных: double | single
'Verbose' — Индикатор для уровня многословияmdl.Verbose (значение по умолчанию) | 0 | 1 |> 1Индикатор для уровня многословия для отображения сводных данных сходимости, заданного как пара, разделенная запятой, состоящая из 'Verbose' и одно из следующих.
0 — Никакие сводные данные сходимости
1 — сводные данные Сходимости включая номер итерации, норму градиента и значение целевой функции.
> 1 — Больше информации о сходимости в зависимости от алгоритма подбора
При использовании решателя 'minibatch-lbfgs' и уровень многословия> 1, информация о сходимости включает журнал итерации от промежуточных мини-пакетных подгонок LBFGS.
Пример: 'Verbose',2
Типы данных: double | single
'GradientTolerance' — Относительный допуск сходимостиmdl.GradientTolerance (значение по умолчанию) | положительное действительное скалярное значениеОтносительный допуск сходимости на норме градиента для решателя lbfgs, заданный как пара, разделенная запятой, состоящая из 'GradientTolerance' и положительного действительного скалярного значения.
Пример: 'GradientTolerance',0.00001
Типы данных: double | single
'InitialLearningRate' — Начальный темп обучения для решателя sgdmdl.InitialLearningRate (значение по умолчанию) | положительное действительное скалярное значениеНачальный темп обучения для решателя sgd, заданный как пара, разделенная запятой, состоящая из 'InitialLearningRate' и значения положительной скалярной величины.
При использовании решателя вводят 'sgd', затухания темпа обучения по итерациям начиная со значения, заданного для 'InitialLearningRate'.
Пример: 'InitialLearningRate',0.8
Типы данных: double | single
'PassLimit' — Максимальное количество передач для решателя 'sgd'mdl.PassLimit (значение по умолчанию) | положительное целочисленное значение Максимальное количество передач для решателя 'sgd' (стохастический спуск градиента), заданный как пара, разделенная запятой, состоящая из 'PassLimit' и положительного целого числа. Каждая передача процессы наблюдения size(mdl.X,1).
Пример: 'PassLimit',10
Типы данных: double | single
'IterationLimit' — Максимальное количество итерацийmdl.IterationLimit (значение по умолчанию) | положительное целочисленное значениеМаксимальное количество итераций, заданных как пара, разделенная запятой, состоящая из 'IterationLimit' и положительного целого числа.
Пример: 'IterationLimit',250
Типы данных: double | single
mdlrefit — Аналитическая модель компонента окружения для регрессииFeatureSelectionNCARegressionАналитическая модель компонента окружения или классификация, возвращенная как объект 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
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.