Класс: FeatureSelectionNCARegression
Переоборудуйте модель анализа компонента окружения (NCA) для регрессии
mdlrefit = refit(mdl,Name,Value)
переоборудует модель mdlrefit = refit(mdl,Name,Value)mdl, модифицированными параметрами, заданными одним или несколькими Name,Value парные аргументы.
mdl — Аналитическая модель компонента окружения для регрессииFeatureSelectionNCARegression объектАналитическая модель компонента окружения или классификация в виде FeatureSelectionNCARegression объект.
Задайте дополнительные разделенные запятой пары Name,Value аргументы. 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('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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.