Конфигуратор кодера для регрессионной модели поддерживающей векторной машины (SVM)
A RegressionSVMCoderConfigurer объект является конфигуратором кодера регрессионной модели SVM (RegressionSVM или CompactRegressionSVM).
Конфигуратор кодера предлагает удобные функции для настройки параметров генерации кода, генерации кода C/C + + и обновления параметров модели в сгенерированном коде.
Настройте параметры генерации кода и укажите атрибуты кодера для параметров модели SVM с помощью свойств объекта.
Создание кода C/C + + для predict и update функции регрессионной модели SVM с использованием generateCode. Для создания кода C/C + + требуется Coder™ MATLAB ®.
Обновление параметров модели в сгенерированном коде C/C + + без необходимости регенерации кода. Эта функция уменьшает усилия, необходимые для регенерации, повторного развертывания и восстановления кода C/C + + при переподготовке модели SVM с новыми данными или настройками. Перед обновлением параметров модели используйтеvalidatedUpdateInputs для проверки и извлечения обновляемых параметров модели.
На этой блок-схеме показан рабочий процесс создания кода с использованием конфигуратора кодера.

Примечания по использованию генерации кода и ограничения регрессионной модели SVM см. в разделах Создание кода (Code Generation) CompactRegressionSVM, predict, и update.
После обучения модели регрессии SVM с использованием fitrsvm, создайте конфигуратор кодера для модели с помощью learnerCoderConfigurer. Используйте свойства конфигуратора кодера, чтобы указать атрибуты кодера predict и update аргументы. Затем используйте generateCode для создания кода C/C + + на основе указанных атрибутов кодера.
predict АргументыСвойства, перечисленные в этом разделе, определяют атрибуты кодера predict аргументы функции в сгенерированном коде.
X - Атрибуты кодера данных предиктораLearnerCoderInput объектАтрибуты кодера данных предиктора для передачи в сгенерированный код C/C + + для predict функция регрессионной модели SVM, указанная как LearnerCoderInput объект.
При создании конфигуратора кодера с помощью learnerCoderConfigurer функция, входной аргумент X определяет значения по умолчанию для LearnerCoderInput атрибуты кодера:
SizeVector - Значением по умолчанию является размер массива входных данных. X.
VariableDimensions - Это значение равно [0 0](по умолчанию) или [1 0].
[0 0] указывает, что размер массива фиксирован, как указано в SizeVector.
[1 0] указывает, что массив содержит строки переменного размера и столбцы фиксированного размера. В этом случае первое значение SizeVector - верхняя граница для количества строк и второе значение SizeVector - количество столбцов.
DataType - Это значение равно single или double. Тип данных по умолчанию зависит от типа входных данных X.
Tunability - Это значение должно быть true, означающее, что predict в сгенерированном коде C/C + + всегда содержит данные предиктора в качестве входных данных.
Можно изменить атрибуты кодера с помощью точечной нотации. Например, чтобы создать код C/C + +, который принимает данные предиктора с 100 наблюдениями трех переменных предиктора, укажите эти атрибуты кодера X для конфигуратора кодера configurer:
configurer.X.SizeVector = [100 3];
configurer.X.DataType = 'double';
configurer.X.VariableDimensions = [0 0];[0 0] указывает, что первый и второй размеры X (количество наблюдений и количество переменных предиктора соответственно) имеют фиксированные размеры.Чтобы позволить сгенерированному коду C/C + + принимать данные предиктора с до 100 наблюдениями, укажите эти атрибуты кодера X:
configurer.X.SizeVector = [100 3];
configurer.X.DataType = 'double';
configurer.X.VariableDimensions = [1 0];[1 0] указывает, что первое измерение X (количество наблюдений) имеет переменный размер и второе измерение X (количество переменных предиктора) имеет фиксированный размер. Указанное количество наблюдений, 100 в этом примере, становится максимально допустимым количеством наблюдений в сгенерированном коде C/C + +. Чтобы разрешить любое количество наблюдений, укажите границу какInf.
NumOutputs - Количество выходов в predictКоличество выходных аргументов, возвращаемых из сгенерированного кода C/C + + для predict функция регрессионной модели SVM, заданная как 1. predict прибыль yfit (прогнозируемые отклики) в сгенерированном коде C/C + +.
NumOutputs свойство эквивалентно '-nargout' параметр компилятора codegen (Кодер MATLAB). Этот параметр определяет количество выходных аргументов в функции начального значения генерации кода. Функция объекта generateCode генерирует две функции точки входа -predict.m и update.m для predict и update функции регрессионной модели SVM, соответственно, и генерирует код C/C + + для двух функций точки входа. Указанное значение для NumOutputs свойство соответствует количеству выходных аргументов в функции точки входа predict.m.
Типы данных: single | double
update АргументыСвойства, перечисленные в этом разделе, определяют атрибуты кодера update аргументы функции в сгенерированном коде. update функция принимает обученную модель и новые параметры модели в качестве входных аргументов и возвращает обновленную версию модели, содержащую новые параметры. Чтобы включить обновление параметров в сгенерированном коде, перед созданием кода необходимо указать атрибуты кодера параметров. Использовать LearnerCoderInput для указания атрибутов кодера каждого параметра. Значения атрибутов по умолчанию основаны на параметрах модели во входном аргументе Mdl из learnerCoderConfigurer.
Alpha - Атрибуты кодера коэффициентов двойной задачиLearnerCoderInput объектАтрибуты кодера коэффициентов двойной задачи (Alpha регрессионной модели SVM), указанной как LearnerCoderInput объект.
Значения атрибутов по умолчанию для LearnerCoderInput объекты основаны на входном аргументе Mdl из learnerCoderConfigurer:
SizeVector - Значение по умолчанию: [s,1], где s - количество векторов поддержки в Mdl.
VariableDimensions - Это значение равно [0 0](по умолчанию) или [1 0].
[0 0] указывает, что размер массива фиксирован, как указано в SizeVector.
[1 0] указывает, что массив содержит строки переменного размера и столбцы фиксированного размера. В этом случае первое значение SizeVector - верхняя граница для количества строк и второе значение SizeVector - количество столбцов.
DataType - Это значение равно 'single' или 'double'. Тип данных по умолчанию согласуется с типом данных обучения, которые используются для обучения. Mdl.
Tunability - При обучении модели с линейной функцией ядра и отбрасывании векторов поддержки с помощью discardSupportVectors, это значение должно быть false. В противном случае это значение должно быть true.
Beta - Атрибуты кодера первичных линейных проблемных коэффициентовLearnerCoderInput объектАтрибуты кодера основных линейных проблемных коэффициентов (Beta регрессионной модели SVM), указанной как LearnerCoderInput объект.
Значения атрибутов по умолчанию для LearnerCoderInput объекты основаны на входном аргументе Mdl из learnerCoderConfigurer:
SizeVector - Это значение должно быть [p 1], где p - количество предикторов в Mdl.
VariableDimensions - Это значение должно быть [0 0], указывающее, что размер массива фиксирован, как указано в SizeVector.
DataType - Это значение равно 'single' или 'double'. Тип данных по умолчанию согласуется с типом данных обучения, которые используются для обучения. Mdl.
Tunability - При обучении модели с линейной функцией ядра и отбрасывании векторов поддержки с помощью discardSupportVectors, это значение должно быть true. В противном случае это значение должно быть false.
Bias - Атрибуты кодера термина смещенияLearnerCoderInput объектАтрибуты кодера термина смещения (Bias регрессионной модели SVM), указанной как LearnerCoderInput объект.
Значения атрибутов по умолчанию для LearnerCoderInput объекты основаны на входном аргументе Mdl из learnerCoderConfigurer:
SizeVector - Это значение должно быть [1 1].
VariableDimensions - Это значение должно быть [0 0], указывающее, что размер массива фиксирован, как указано в SizeVector.
DataType - Это значение равно 'single' или 'double'. Тип данных по умолчанию согласуется с типом данных обучения, которые используются для обучения. Mdl.
Tunability - Это значение должно быть true.
Mu - Кодировочные характеристики предикторных средствLearnerCoderInput объектАтрибуты кодера средства предсказания (Mu регрессионной модели SVM), указанной как LearnerCoderInput объект.
Значения атрибутов по умолчанию для LearnerCoderInput объекты основаны на входном аргументе Mdl из learnerCoderConfigurer:
SizeVector - Если вы тренируетесь Mdl использование стандартизированных данных предиктора путем указания , это значение должно быть 'Standardize',true[1,p], где p - количество предикторов в Mdl. В противном случае это значение должно быть [0,0].
VariableDimensions - Это значение должно быть [0 0], указывающее, что размер массива фиксирован, как указано в SizeVector.
DataType - Это значение равно 'single' или 'double'. Тип данных по умолчанию согласуется с типом данных обучения, которые используются для обучения. Mdl.
Tunability - Если вы тренируетесь Mdl использование стандартизированных данных предиктора путем указания , значением по умолчанию является 'Standardize',truetrue. В противном случае это значение должно быть false.
Scale - Атрибуты кодера параметра масштаба ядраLearnerCoderInput объектАтрибуты кодера параметра масштаба ядра (KernelParameters.Scale регрессионной модели SVM), указанной как LearnerCoderInput объект.
Значения атрибутов по умолчанию для LearnerCoderInput объекты основаны на входном аргументе Mdl из learnerCoderConfigurer:
SizeVector - Это значение должно быть [1 1].
VariableDimensions - Это значение должно быть [0 0], указывающее, что размер массива фиксирован, как указано в SizeVector.
DataType - Это значение равно 'single' или 'double'. Тип данных по умолчанию согласуется с типом данных обучения, которые используются для обучения. Mdl.
Tunability - Значение по умолчанию: true.
Sigma - Характеристики кодера стандартных отклонений предиктораLearnerCoderInput объектАтрибуты кодера стандартных отклонений предиктора (Sigma регрессионной модели SVM), указанной как LearnerCoderInput объект.
Значения атрибутов по умолчанию для LearnerCoderInput объекты основаны на входном аргументе Mdl из learnerCoderConfigurer:
SizeVector - Если вы тренируетесь Mdl использование стандартизированных данных предиктора путем указания , это значение должно быть 'Standardize',true[1,p], где p - количество предикторов в Mdl. В противном случае это значение должно быть [0,0].
VariableDimensions - Это значение должно быть [0 0], указывающее, что размер массива фиксирован, как указано в SizeVector.
DataType - Это значение равно 'single' или 'double'. Тип данных по умолчанию согласуется с типом данных обучения, которые используются для обучения. Mdl.
Tunability - Если вы тренируетесь Mdl использование стандартизированных данных предиктора путем указания , значением по умолчанию является 'Standardize',truetrue. В противном случае это значение должно быть false.
SupportVectors - Атрибуты кодера векторов поддержкиLearnerCoderInput объектАтрибуты кодера векторов поддержки (SupportVectors регрессионной модели SVM), указанной как LearnerCoderInput объект.
Значения атрибутов по умолчанию для LearnerCoderInput объекты основаны на входном аргументе Mdl из learnerCoderConfigurer:
SizeVector - Значение по умолчанию: [s,p], где s - количество векторов поддержки, и p - количество предикторов в Mdl.
VariableDimensions - Это значение равно [0 0](по умолчанию) или [1 0].
[0 0] указывает, что размер массива фиксирован, как указано в SizeVector.
[1 0] указывает, что массив содержит строки переменного размера и столбцы фиксированного размера. В этом случае первое значение SizeVector - верхняя граница для количества строк и второе значение SizeVector - количество столбцов.
DataType - Это значение равно 'single' или 'double'. Тип данных по умолчанию согласуется с типом данных обучения, которые используются для обучения. Mdl.
Tunability - При обучении модели с линейной функцией ядра и отбрасывании векторов поддержки с помощью discardSupportVectors, это значение должно быть false. В противном случае это значение должно быть true.
OutputFileName - Имя файла сформированного кода C/C + +'RegressionSVMModel' (по умолчанию) | символьный векторИмя файла сгенерированного кода C/C + +, заданного как символьный вектор.
Функция объекта generateCode из RegressionSVMCoderConfigurer создает код C/C + + с использованием этого имени файла.
Имя файла не должно содержать пробелов, поскольку они могут привести к сбоям при создании кода в определенных конфигурациях операционной системы. Кроме того, имя должно быть допустимым именем функции MATLAB.
После создания конфигуратора кодера configurer, можно указать имя файла с помощью точечной нотации.
configurer.OutputFileName = 'myModel';Типы данных: char
Verbose - Уровень детализацииtrue (логический 1) (по умолчанию) | false (логический 0)Уровень детализации, указанный как true (логический 1) или false (логический 0). Уровень детализации управляет отображением уведомлений в командной строке.
| Стоимость | Описание |
|---|---|
true (логический 1) | Программа отображает уведомления, когда изменения атрибутов кодера параметра приводят к изменениям других зависимых параметров. |
false (логический 0) | Программа не отображает уведомления. |
Чтобы включить обновление параметров модели машинного обучения в сгенерированном коде, необходимо настроить атрибуты кодера параметров перед созданием кода. Атрибуты кодера параметров зависят друг от друга, поэтому программное обеспечение сохраняет зависимости как ограничения конфигурации. При изменении атрибутов кодера параметра с помощью конфигуратора кодера и необходимости последующих изменений других зависимых параметров в соответствии с ограничениями конфигурации программа изменяет атрибуты кодера зависимых параметров. Уровень детализации определяет, отображает ли программное обеспечение сообщения уведомления для этих последующих изменений.
После создания конфигуратора кодера configurer, можно изменить уровень детализации с помощью точечной нотации.
configurer.Verbose = false;
Типы данных: logical
Чтобы настроить рабочий процесс создания кода, используйте generateFiles функции и следующих трех свойств с codegen (Кодер MATLAB), вместо использования generateCode функция.
После генерации двух файлов функций начального уровня (predict.m и update.m) с помощью generateFiles можно изменить эти файлы в соответствии с рабочим процессом создания кода. Например, можно изменить predict.m для включения предварительной обработки данных или можно добавить эти функции точки входа в другой проект создания кода. Затем можно создать код C/C + + с помощью codegen (Кодер MATLAB) и codegen аргументы, подходящие для измененных функций точки входа или проекта создания кода. Используйте три свойства, описанные в этом разделе, в качестве начальной точки для установки codegen аргументы.
CodeGenerationArguments — codegen аргументыЭто свойство доступно только для чтения.
codegen Аргументы (MATLAB Coder), указанные как массив ячеек.
Это свойство позволяет настроить рабочий процесс создания кода. Используйте generateCode если не требуется настраивать рабочий процесс.
Вместо использования generateCode с конфигуратором кодера configurer, код C/C + + можно создать следующим образом:
generateFiles(configurer)
cgArgs = configurer.CodeGenerationArguments;
codegen(cgArgs{:})cgArgs соответственно перед вызовом codegen.
При изменении других свойств configurer, программное обеспечение обновляет CodeGenerationArguments соответственно собственности.
Типы данных: cell
PredictInputs - Входной аргумент predictcoder.PrimitiveType объектЭто свойство доступно только для чтения.
Входной аргумент функции точки входа predict.m для генерации кода, заданного как массив ячеек coder.PrimitiveType (Кодер MATLAB). coder.PrimitiveType объект включает в себя атрибуты кодера данных предиктора, хранящихся в X собственность.
При изменении атрибутов кодера данных предиктора программное обеспечение обновляет coder.PrimitiveType соответственно возражают.
coder.PrimitiveType объект в PredictInputs эквивалентно configurer.CodeGenerationArguments{6} для конфигуратора кодера configurer.
Типы данных: cell
UpdateInputs - Список настраиваемых входных аргументов updatecoder.PrimitiveType объектыЭто свойство доступно только для чтения.
Список настраиваемых входных аргументов функции точки входа update.m для генерации кода, определяемого как массив ячеек структуры, включающий coder.PrimitiveType (Кодер MATLAB) объекты. Каждый coder.PrimitiveType объект включает в себя атрибуты кодера настраиваемого параметра модели машинного обучения.
При изменении атрибутов кодера параметра модели с помощью свойств конфигуратора кодера (update Arguments properties), затем программное обеспечение обновляет соответствующий coder.PrimitiveType соответственно возражают. При указании Tunability атрибут параметра модели машинного обучения как false, то программное обеспечение удаляет соответствующий coder.PrimitiveType объект из UpdateInputs список.
Структура в UpdateInputs эквивалентно configurer.CodeGenerationArguments{3} для конфигуратора кодера configurer.
Типы данных: cell
generateCode | Создание кода C/C + + с помощью конфигуратора кодера |
generateFiles | Создание файлов MATLAB для создания кода с помощью конфигуратора кодера |
validatedUpdateInputs | Проверка и извлечение параметров модели машинного обучения для обновления |
В этом примере используются:
Обучение модели машинного обучения, а затем создание кода для predict и update функции модели с помощью конфигуратора кодера.
Загрузить carsmall набор данных и тренировка регрессионной модели машины опорных векторов (SVM).
load carsmall
X = [Horsepower,Weight];
Y = MPG;
Mdl = fitrsvm(X,Y);Mdl является RegressionSVM объект.
Создание конфигуратора кодера для RegressionSVM модель с использованием learnerCoderConfigurer. Укажите данные предиктора X. learnerCoderConfigurer функция использует вход X для конфигурирования атрибутов кодера predict ввод функции.
configurer = learnerCoderConfigurer(Mdl,X)
configurer =
RegressionSVMCoderConfigurer with properties:
Update Inputs:
Alpha: [1x1 LearnerCoderInput]
SupportVectors: [1x1 LearnerCoderInput]
Scale: [1x1 LearnerCoderInput]
Bias: [1x1 LearnerCoderInput]
Predict Inputs:
X: [1x1 LearnerCoderInput]
Code Generation Parameters:
NumOutputs: 1
OutputFileName: 'RegressionSVMModel'
Properties, Methods
configurer является RegressionSVMCoderConfigurer объект, который является конфигуратором кодера RegressionSVM объект.
Для создания кода C/C + + необходимо иметь доступ к компилятору C/C + +, который настроен правильно. MATLAB Coder находит и использует поддерживаемый установленный компилятор. Вы можете использоватьmex -setup для просмотра и изменения компилятора по умолчанию. Дополнительные сведения см. в разделе Изменение компилятора по умолчанию.
Создание кода для predict и update функции регрессионной модели SVM (Mdl) с настройками по умолчанию.
generateCode(configurer)
generateCode creates these files in output folder: 'initialize.m', 'predict.m', 'update.m', 'RegressionSVMModel.mat' Code generation successful.
generateCode функция выполняет следующие действия:
Создание файлов MATLAB, необходимых для создания кода, включая две функции точки входа predict.m и update.m для predict и update функции Mdlсоответственно.
Создание функции MEX с именем RegressionSVMModel для двух функций точки входа.
Создайте код для функции MEX в codegen\mex\RegressionSVMModel папка.
Скопируйте функцию MEX в текущую папку.
Отображение содержимого predict.m, update.m, и initialize.m с помощью type функция.
type predict.mfunction varargout = predict(X,varargin) %#codegen
% Autogenerated by MATLAB, 23-Apr-2021 12:43:25
[varargout{1:nargout}] = initialize('predict',X,varargin{:});
end
type update.mfunction update(varargin) %#codegen
% Autogenerated by MATLAB, 23-Apr-2021 12:43:25
initialize('update',varargin{:});
end
type initialize.mfunction [varargout] = initialize(command,varargin) %#codegen
% Autogenerated by MATLAB, 23-Apr-2021 12:43:25
coder.inline('always')
persistent model
if isempty(model)
model = loadLearnerForCoder('RegressionSVMModel.mat');
end
switch(command)
case 'update'
% Update struct fields: Alpha
% SupportVectors
% Scale
% Bias
model = update(model,varargin{:});
case 'predict'
% Predict Inputs: X
X = varargin{1};
if nargin == 2
[varargout{1:nargout}] = predict(model,X);
else
PVPairs = cell(1,nargin-2);
for i = 1:nargin-2
PVPairs{1,i} = varargin{i+1};
end
[varargout{1:nargout}] = predict(model,X,PVPairs{:});
end
end
end
В этом примере используются:
Обучение модели вспомогательного векторного устройства (SVM) с использованием частичного набора данных и создание конфигуратора кодера для модели. Используйте свойства конфигуратора кодера для указания атрибутов кодера параметров модели SVM. Используйте функцию объекта конфигуратора кодера для генерации кода C, который предсказывает ответы для новых данных предиктора. Затем переобучите модель, используя весь набор данных, и обновите параметры в сгенерированном коде без регенерации кода.
Модель поезда
Загрузить carsmall набор данных и обучение модели регрессии SVM с использованием первых 50 наблюдений.
load carsmall
X = [Horsepower,Weight];
Y = MPG;
Mdl = fitrsvm(X(1:50,:),Y(1:50));Mdl является RegressionSVM объект.
Создать конфигуратор кодера
Создание конфигуратора кодера для RegressionSVM модель с использованием learnerCoderConfigurer. Укажите данные предиктора X. learnerCoderConfigurer функция использует вход X для конфигурирования атрибутов кодера predict ввод функции.
configurer = learnerCoderConfigurer(Mdl,X(1:50,:));
configurer является RegressionSVMCoderConfigurer объект, который является конфигуратором кодера RegressionSVM объект.
Определение атрибутов кодера параметров
Укажите атрибуты кодера параметров модели регрессии SVM, чтобы можно было обновить параметры в сгенерированном коде после переподготовки модели. В этом примере указываются атрибуты кодера данных предиктора, которые требуется передать сгенерированному коду, и атрибуты кодера векторов поддержки регрессионной модели SVM.
Сначала укажите атрибуты кодера X чтобы сгенерированный код принял любое количество наблюдений. Изменение SizeVector и VariableDimensions атрибуты. SizeVector атрибут указывает верхнюю границу размера данных предиктора и VariableDimensions атрибут указывает, имеет ли каждое измерение данных предиктора переменный размер или фиксированный размер.
configurer.X.SizeVector = [Inf 2]; configurer.X.VariableDimensions = [true false];
Размер первого измерения - это количество наблюдений. В этом случае код указывает, что верхняя граница размера равна Inf и размер является переменным, что означает, что X может иметь любое количество наблюдений. Эта спецификация удобна, если не известно количество наблюдений при создании кода.
Размер второго измерения - это количество переменных предиктора. Это значение должно быть фиксированным для модели машинного обучения. X содержит два предиктора, поэтому значение SizeVector атрибут должен быть два и значение VariableDimensions атрибут должен быть false.
При переподготовке модели SVM с использованием новых данных или различных настроек количество векторов поддержки может варьироваться. Поэтому укажите атрибуты кодера SupportVectors для обновления векторов поддержки в сгенерированном коде.
configurer.SupportVectors.SizeVector = [250 2];
SizeVector attribute for Alpha has been modified to satisfy configuration constraints.
configurer.SupportVectors.VariableDimensions = [true false];
VariableDimensions attribute for Alpha has been modified to satisfy configuration constraints.
При изменении атрибутов кодера SupportVectors, то программное обеспечение изменяет атрибуты кодера Alpha для удовлетворения ограничений конфигурации. Если изменение атрибутов кодера одного параметра требует последующих изменений других зависимых параметров для удовлетворения ограничений конфигурации, то программное обеспечение изменяет атрибуты кодера зависимых параметров.
Создать код
Для создания кода C/C + + необходимо иметь доступ к компилятору C/C + +, который настроен правильно. MATLAB Coder находит и использует поддерживаемый установленный компилятор. Вы можете использоватьmex -setup для просмотра и изменения компилятора по умолчанию. Дополнительные сведения см. в разделе Изменение компилятора по умолчанию.
Использовать generateCode для создания кода для predict и update функции регрессионной модели SVM (Mdl) с настройками по умолчанию.
generateCode(configurer)
generateCode creates these files in output folder: 'initialize.m', 'predict.m', 'update.m', 'RegressionSVMModel.mat' Code generation successful.
generateCode создает файлы MATLAB, необходимые для создания кода, включая две функции точки входа predict.m и update.m для predict и update функции Mdlсоответственно. Тогда generateCode создает функцию MEX с именем RegressionSVMModel для двух функций начального уровня в codegen\mex\RegressionSVMModel и копирует функцию MEX в текущую папку.
Проверить созданный код
Передайте некоторые данные предиктора, чтобы проверить, predict функция Mdl и predict функция в функции MEX возвращает те же предсказанные отклики. Чтобы вызвать функцию точки входа в функции MEX, которая имеет более одной точки входа, укажите имя функции в качестве первого входного аргумента.
yfit = predict(Mdl,X);
yfit_mex = RegressionSVMModel('predict',X);yfit_mex может включать разницы округления по сравнению с yfit. В этом случае сравните yfit и yfit_mex, допуская небольшой допуск.
find(abs(yfit-yfit_mex) > 1e-6)
ans = 0x1 empty double column vector
Сравнение подтверждает, что yfit и yfit_mex равны в пределах допуска 1e–6.
Переподготовка модели и обновление параметров в сгенерированном коде
Переподготовка модели с использованием всего набора данных.
retrainedMdl = fitrsvm(X,Y);
Извлечение параметров для обновления с помощью validatedUpdateInputs. Эта функция обнаруживает измененные параметры модели в retrainedMdl и проверяет, удовлетворяют ли измененные значения параметров атрибутам кодера параметров.
params = validatedUpdateInputs(configurer,retrainedMdl);
Обновите параметры в созданном коде.
RegressionSVMModel('update',params)Проверить созданный код
Сравните выходные данные predict функция retrainedMdl и predict в обновленной функции MEX.
yfit = predict(retrainedMdl,X);
yfit_mex = RegressionSVMModel('predict',X);
find(abs(yfit-yfit_mex) > 1e-6)ans = 0x1 empty double column vector
Сравнение подтверждает, что yfit и yfit_mex равны в пределах допуска 1e-6.
LearnerCoderInput ОбъектКонфигуратор кодера использует LearnerCoderInput объект для указания атрибутов кодера predict и update входные аргументы.
A LearnerCoderInput имеет следующие атрибуты для указания свойств массива входных аргументов в сгенерированном коде.
| Имя атрибута | Описание |
|---|---|
SizeVector | Размер массива, если соответствующий Верхняя граница размера массива, если соответствующий |
VariableDimensions | Индикатор, указывающий, имеет ли каждое измерение массива переменный размер или фиксированный размер, указанный как
|
DataType | Тип данных массива |
Tunability | Индикатор, указывающий,
При указании других значений атрибутов |
После создания конфигуратора кодера можно изменить атрибуты кодера с помощью точечной нотации. Например, укажите атрибуты кодера коэффициентов Alpha конфигуратора кодера configurer следующим образом:
configurer.Alpha.SizeVector = [100 1];
configurer.Alpha.VariableDimensions = [1 0];
configurer.Alpha.DataType = 'double';Verbose) как true (по умолчанию), то программа отображает уведомления при изменении атрибутов кодера параметра модели машинного обучения и изменении атрибутов кодера других зависимых параметров.CompactRegressionSVM | learnerCoderConfigurer | predict | RegressionSVM | update
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.