ClassificationLinearCoderConfigurer

Конфигуратор кодера для линейной двоичной классификации высоко-размерных данных

Описание

A ClassificationLinearCoderConfigurer объект является конфигуратором кодера линейной классификационной модели (ClassificationLinear) используется для двоичной классификации высоко-размерных данных.

Конфигуратор кодера предлагает удобные функции, чтобы сконфигурировать опции генерации кода, сгенерировать код C/C + + и обновить параметры модели в сгенерированном коде.

  • Сконфигурируйте опции генерации кода и укажите атрибуты кодера параметров линейной модели при помощи свойств объекта.

  • Сгенерируйте код C/C + + для predict и update функции линейной модели классификации при помощи generateCode. Для генерации кода C/C + + требуется MATLAB® Coder™.

  • Обновите параметры модели в сгенерированном коде C/C + + без необходимости регенерировать код. Эта функция уменьшает усилия, необходимые для регенерации, переделывания и повторной проверки кода C/C + + при переобучении линейной модели с новыми данными или настройками. Перед обновлением параметров модели используйтеvalidatedUpdateInputs чтобы подтвердить и извлечь параметры модели для обновления.

Этот график потока показывает рабочий процесс генерации кода с помощью конфигуратора кодера.

Для указаний по применению генерации кода и ограничений линейной модели классификации смотрите разделы Генерации кода ClassificationLinear, predict, и update.

Создание

После настройки линейной классификационной модели при помощи fitclinear, создайте конфигуратор кодера для модели при помощи learnerCoderConfigurer. Используйте свойства конфигуратора кодера, чтобы задать атрибуты кодера predict и update аргументы. Затем используйте generateCode для генерации кода C/C + + на основе заданных атрибутов кодера.

Свойства

расширить все

predict Аргументы

Свойства, перечисленные в этом разделе, определяют атрибуты кодера predict аргументы функции в сгенерированном коде.

Атрибуты кодера данных предиктора, чтобы передать в сгенерированный код C/C + + для predict функция линейной классификационной модели, заданная как LearnerCoderInput объект.

Когда вы создаете конфигуратор кодера при помощи learnerCoderConfigurer function, the входного параметра X определяет значения по умолчанию для LearnerCoderInput атрибуты кодера:

  • SizeVector - Значение по умолчанию является размером массива входных X.

    • Если на Value атрибут ObservationsIn свойство для ClassificationLinearCoderConfigurer является 'rows', затем это SizeVector значение [n p], где n соответствует количеству наблюдений и p соответствует количеству предикторов.

    • Если на Value атрибут ObservationsIn свойство для ClassificationLinearCoderConfigurer является 'columns', затем это SizeVector значение [p n].

    Переключение элементов SizeVector (например, чтобы изменить [n p] на [p n]), измените Value атрибут ObservationsIn свойство для ClassificationLinearCoderConfigurer соответственно. Вы не можете изменить SizeVector значение непосредственно.

  • VariableDimensions - Значение по умолчанию [0 0], что указывает, что размер массива фиксирован, как указано в SizeVector.

    Можно задать это значение [1 0] если SizeVector значение [n p] или к [0 1] если это [p n], что указывает на то, что массив имеет строки переменного размера и столбцы фиксированного размера. Для примера, [1 0] задает, что первое значение SizeVector (n) - верхняя граница для количества строк и второе значение SizeVector (p) - количество столбцов.

  • 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.

Атрибуты кодера размерности наблюдения данных предиктора ('ObservationsIn' Аргумент пары "имя-значение" из predict), заданная как EnumeratedInput объект.

Когда вы создаете конфигуратор кодера при помощи learnerCoderConfigurer function, the 'ObservationsIn' аргумент пары "имя-значение" определяет значения по умолчанию EnumeratedInput атрибуты кодера:

  • Value - Значение по умолчанию является размерностью наблюдения данных предиктора, используемым при создании конфигуратора кодера, заданным как 'rows' или 'columns'. Если вы не задаете 'ObservationsIn' при создании конфигуратора кодера значение по умолчанию 'rows'.

  • SelectedOption - Это значение всегда 'Built-in'. Этот атрибут доступен только для чтения.

  • BuiltInOptions - Массив ячеек 'rows' и 'columns'. Этот атрибут доступен только для чтения.

  • IsConstant - Это значение должно быть true.

  • Tunability - Значение по умолчанию false если вы задаете 'ObservationsIn','rows' при создании конфигуратора кодера и true если вы задаете 'ObservationsIn','columns'. Если вы задаете Tunability на false, программное обеспечение устанавливает Value на 'rows'. Если вы задаете другие значения атрибутов при Tunability является false, программное обеспечение устанавливает Tunability на true.

Количество выходных аргументов, возвращаемых из сгенерированного кода C/C + + для predict функция линейной классификационной модели, заданная как 1 или 2.

Выходные аргументы predict являются Label (предсказанные метки классов) и Score (классификационные оценки), в том порядке. predict в сгенерированном коде C/C + + возвращается первое n выходы predict function, где n является NumOutputs значение.

После создания конфигуратора кодера configurerможно задать количество выходов при помощи записи через точку.

configurer.NumOutputs = 2;

The NumOutputs свойство эквивалентно '-nargout' опция компилятора codegen (MATLAB Coder). Эта опция задает количество выходных аргументов в функции точки входа генерации кода. Функция объекта generateCode генерирует две функции точки входа - predict.m и update.m для predict и update функции линейной классификационной модели, соответственно - и генерирует код C/C + + для двух функций точки входа. Заданное значение для NumOutputs свойство соответствует количеству выходных аргументов в функции точки входа predict.m.

Типы данных: double

update Аргументы

Свойства, перечисленные в этом разделе, определяют атрибуты кодера update аргументы функции в сгенерированном коде. update функция принимает обученную модель и новые параметры модели в качестве входных параметров и возвращает обновленную версию модели, которая содержит новые параметры. Чтобы включить обновление параметров в сгенерированном коде, необходимо перед генерацией кода задать атрибуты кодера параметров. Использование LearnerCoderInput объект для задания атрибутов кодера каждого параметра. Значения атрибутов по умолчанию основаны на параметрах модели в входной параметр Mdl из learnerCoderConfigurer.

Атрибуты кодера линейных коэффициентов предиктора (Beta линейной классификационной модели), заданной как LearnerCoderInput объект.

Значения атрибутов по умолчанию LearnerCoderInput Объекты основаны на входном параметре Mdl из learnerCoderConfigurer:

  • SizeVector - Это значение должно быть [p 1], где p количество предикторов в Mdl.

  • VariableDimensions - Это значение должно быть [0 0], что указывает, что размер массива фиксирован, как указано в SizeVector.

  • DataType - Это значение 'single' или 'double'. Тип данных по умолчанию соответствует типу данных обучающих данных, которые вы используете для обучения Mdl.

  • Tunability - Это значение должно быть true.

Атрибуты кодера термина смещения (Bias линейной классификационной модели), заданной как LearnerCoderInput объект.

Значения атрибутов по умолчанию LearnerCoderInput Объекты основаны на входном параметре Mdl из learnerCoderConfigurer:

  • SizeVector - Это значение должно быть [1 1].

  • VariableDimensions - Это значение должно быть [0 0], что указывает, что размер массива фиксирован, как указано в SizeVector.

  • DataType - Это значение 'single' или 'double'. Тип данных по умолчанию соответствует типу данных обучающих данных, которые вы используете для обучения Mdl.

  • Tunability - Это значение должно быть true.

Атрибуты кодера затрат на неправильную классификацию (Cost линейной классификационной модели), заданной как LearnerCoderInput объект.

Значения атрибутов по умолчанию LearnerCoderInput Объекты основаны на входном параметре Mdl из learnerCoderConfigurer:

  • SizeVector - Это значение должно быть [2 2].

  • VariableDimensions - Это значение должно быть [0 0], что указывает, что размер массива фиксирован, как указано в SizeVector.

  • DataType - Это значение 'single' или 'double'. Тип данных по умолчанию соответствует типу данных обучающих данных, которые вы используете для обучения Mdl.

  • Tunability - Значение по умолчанию true.

Атрибуты кодера априорных вероятностей (Prior линейной классификационной модели), заданной как LearnerCoderInput объект.

Значения атрибутов по умолчанию LearnerCoderInput Объекты основаны на входном параметре Mdl из learnerCoderConfigurer:

  • SizeVector - Это значение должно быть [1 2].

  • VariableDimensions - Это значение должно быть [0 0], что указывает, что размер массива фиксирован, как указано в SizeVector.

  • DataType - Это значение 'single' или 'double'. Тип данных по умолчанию соответствует типу данных обучающих данных, которые вы используете для обучения Mdl.

  • Tunability - Значение по умолчанию true.

Другие опции конфигуратора

Имя файла сгенерированного кода C/C + +, заданное как вектор символов.

Функция объекта generateCode от ClassificationLinearCoderConfigurer генерирует код C/C + + с использованием этого имени файла.

Имя файла не должно содержать пространства, поскольку они могут привести к отказам генерации кода в определенных строениях операционной системы. Кроме того, имя должно быть допустимым именем функции MATLAB.

После создания конфигуратора кодера configurerимя файла можно задать с помощью записи через точку.

configurer.OutputFileName = 'myModel';

Типы данных: char

Уровень подробностей, заданный как true (логический 1) или false (логический 0). Уровень подробностей управляет отображением уведомлений в командной строке.

ЗначениеОписание
true (логический 1)Программа отображает уведомления, когда изменения атрибутов кодера параметра приводят к изменениям для других зависимых параметров.
false (логический 0)Программа не отображает уведомления.

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

После создания конфигуратора кодера configurerможно изменить уровень подробностей при помощи записи через точку.

configurer.Verbose = false;

Типы данных: logical

Опции для индивидуальной настройки генерации кода

Чтобы настроить рабочий процесс генерации кода, используйте generateFiles функция и следующие три свойства с codegen (MATLAB Coder), вместо использования generateCode функция.

После генерации двух файлов функции точки входа (predict.m и update.m) при помощи generateFiles функция, вы можете изменять эти файлы в соответствии с вашим рабочим процессом генерации кода. Для примера можно изменить predict.m файл, включающий предварительную обработку данных, или можно добавить эти функции точки входа к другому проекту генерации кода. Затем можно сгенерировать код C/C + + при помощи codegen (MATLAB Coder) функцию и codegen аргументы, соответствующие измененным функциям точки входа или проекту генерации кода. Используйте три свойства, описанные в этом разделе, как начальная точка, чтобы задать codegen аргументы.

Это свойство доступно только для чтения.

codegen (MATLAB Coder) аргументы, заданные как массив ячеек.

Это свойство позволяет вам настроить рабочий процесс генерации кода. Используйте generateCode если вам не нужно настраивать рабочий процесс.

Вместо использования generateCode с помощью конфигуратора кодера configurer, можно сгенерировать код C/C + + следующим образом:

generateFiles(configurer)
cgArgs = configurer.CodeGenerationArguments;
codegen(cgArgs{:})
Если вы настраиваете рабочий процесс генерации кода, измените cgArgs соответственно перед вызовом codegen.

Если вы изменяете другие свойства configurerпрограммное обеспечение обновляет CodeGenerationArguments соответственно.

Типы данных: cell

Это свойство доступно только для чтения.

Список настраиваемых входных параметров функции точки входа predict.m для генерации кода, заданной как массив ячеек. Массив ячеек содержит другой массив ячеек, который включает coder.PrimitiveType (MATLAB Coder) объекты и coder.Constant (MATLAB Coder) объекты.

Если вы изменяете атрибуты кодера predict аргументы, затем программное обеспечение соответствующим образом обновляет соответствующие объекты. Если вы задаете Tunability атрибут как false, затем программное обеспечение удаляет соответствующие объекты из PredictInputs список.

Массив ячеек в PredictInputs эквивалентно configurer.CodeGenerationArguments{6} для конфигуратора кодера configurer.

Типы данных: cell

Это свойство доступно только для чтения.

Список настраиваемых входных параметров функции точки входа update.m для генерации кода, заданной как массив ячеек структуры, включающий coder.PrimitiveType (MATLAB Coder) объекты. Каждый coder.PrimitiveType объект включает атрибуты кодера настраиваемого параметра модели машинного обучения.

Если вы изменяете атрибуты кодера параметра модели с помощью свойств конфигуратора кодера (update Свойства аргументов), затем программное обеспечение обновляет соответствующий coder.PrimitiveType объект соответственно. Если вы задаете Tunability атрибут параметра модели машинного обучения как false, затем программное обеспечение удаляет соответствующие coder.PrimitiveType объект из UpdateInputs список.

Структура в UpdateInputs эквивалентно configurer.CodeGenerationArguments{3} для конфигуратора кодера configurer.

Типы данных: cell

Функции объекта

generateCodeСгенерируйте код C/C + + с помощью конфигуратора кодера
generateFilesСгенерируйте файлы MATLAB для генерации кода с помощью конфигуратора кодера
validatedUpdateInputsВалидация и экстракция параметров модели машинного обучения для обновления

Примеры

свернуть все

Обучите модель машинного обучения, а затем сгенерируйте код для predict и update функций модели при помощи конфигуратора кодера.

Загрузите ionosphere набор данных и train двоичной линейной модели классификации. Передайте транспонированную матрицу предиктора Xnew на fitclinear, и использовать 'ObservationsIn' аргумент пары "имя-значение", чтобы указать, что столбцы Xnew соответствуют наблюдениям.

load ionosphere
Xnew = X';
Mdl = fitclinear(Xnew,Y,'ObservationsIn','columns');

Mdl является ClassificationLinear объект.

Создайте конфигуратор кодера для ClassificationLinear моделировать при помощи learnerCoderConfigurer. Задайте данные предиктора Xnew, и использовать 'ObservationsIn' Аргумент пары "имя-значение", чтобы задать размерность наблюдения Xnew. The learnerCoderConfigurer функция использует эти входные параметры, чтобы сконфигурировать атрибуты кодера соответствующих входных параметров predict.

configurer = learnerCoderConfigurer(Mdl,Xnew,'ObservationsIn','columns')
configurer = 
  ClassificationLinearCoderConfigurer with properties:

   Update Inputs:
              Beta: [1x1 LearnerCoderInput]
              Bias: [1x1 LearnerCoderInput]
             Prior: [1x1 LearnerCoderInput]
              Cost: [1x1 LearnerCoderInput]

   Predict Inputs:
                 X: [1x1 LearnerCoderInput]
    ObservationsIn: [1x1 EnumeratedInput]

   Code Generation Parameters:
        NumOutputs: 1
    OutputFileName: 'ClassificationLinearModel'


  Properties, Methods

configurer является ClassificationLinearCoderConfigurer объект, который является конфигуратором кодера ClassificationLinear объект.

Чтобы сгенерировать код C/C + +, вы должны иметь доступ к компилятору C/C + +, который настроен правильно. MATLAB Coder находит и использует поддерживаемый, установленный компилятор. Можно использовать mex -setup чтобы просмотреть и изменить компилятор по умолчанию. Для получения дополнительной информации см. раздел «Изменение компилятора по умолчанию».

Сгенерируйте код для predict и update функции линейной классификационной модели (Mdl).

generateCode(configurer)
generateCode creates these files in output folder:
'initialize.m', 'predict.m', 'update.m', 'ClassificationLinearModel.mat'
Code generation successful.

The generateCode функция завершает следующие действия:

  • Сгенерируйте файлы MATLAB, необходимые для генерации кода, включая две функции точки входа predict.m и update.m для predict и update функции Mdl, соответственно.

  • Создайте MEX-функцию с именем ClassificationLinearModel для двух функций точки входа.

  • Создайте код для MEX-функции в codegen\mex\ClassificationLinearModel папка.

  • Скопируйте MEX-функцию в текущую папку.

Отображение содержимого predict.m, update.m, и initialize.m файлы при помощи type функция.

type predict.m
function varargout = predict(X,varargin) %#codegen
% Autogenerated by MATLAB, 23-Apr-2021 12:42:11
[varargout{1:nargout}] = initialize('predict',X,varargin{:});
end
type update.m
function update(varargin) %#codegen
% Autogenerated by MATLAB, 23-Apr-2021 12:42:11
initialize('update',varargin{:});
end
type initialize.m
function [varargout] = initialize(command,varargin) %#codegen
% Autogenerated by MATLAB, 23-Apr-2021 12:42:11
coder.inline('always')
persistent model
if isempty(model)
    model = loadLearnerForCoder('ClassificationLinearModel.mat');
end
switch(command)
    case 'update'
        % Update struct fields: Beta
        %                       Bias
        %                       Prior
        %                       Cost
        model = update(model,varargin{:});
    case 'predict'
        % Predict Inputs: X, ObservationsIn
        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

Обучите линейную модель классификации с помощью частичного набора данных и создайте конфигуратор кодера для модели. Используйте свойства конфигуратора кодера, чтобы задать атрибуты кодера параметров линейной модели. Используйте функцию объекта конфигуратора кодера, чтобы сгенерировать код С, который предсказывает метки для новых данных предиктора. Затем переобучите модель, используя весь набор данных, и обновите параметры в сгенерированном коде, не регенерируя код.

Обучите модель

Загрузите ionosphere набор данных. Этот набор данных имеет 34 предиктора и 351 двоичный ответ для радиолокационных возвратов, либо плохо ('b') или хорошо ('g'). Обучите двоичную линейную модель классификации, используя половину наблюдений. Транспонируйте данные предиктора и используйте 'ObservationsIn' аргумент пары "имя-значение", чтобы указать, что столбцы XTrain соответствуют наблюдениям.

load ionosphere

rng('default') % For reproducibility
n = length(Y);
c = cvpartition(Y,'HoldOut',0.5);
idxTrain = training(c,1);
XTrain = X(idxTrain,:)';
YTrain = Y(idxTrain);

Mdl = fitclinear(XTrain,YTrain,'ObservationsIn','columns');

Mdl является ClassificationLinear объект.

Создайте конфигуратор кодера

Создайте конфигуратор кодера для ClassificationLinear моделировать при помощи learnerCoderConfigurer. Задайте данные предиктора XTrain, и использовать 'ObservationsIn' Аргумент пары "имя-значение", чтобы задать размерность наблюдения XTrain. The learnerCoderConfigurer функция использует эти входные параметры, чтобы сконфигурировать атрибуты кодера соответствующих входных параметров predict. Кроме того, установите количество выходов 2, чтобы сгенерированный код возвращал предсказанные метки и счета.

configurer = learnerCoderConfigurer(Mdl,XTrain,'ObservationsIn','columns','NumOutputs',2);

configurer является ClassificationLinearCoderConfigurer объект, который является конфигуратором кодера ClassificationLinear объект.

Задайте атрибуты параметров кодера

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

Задайте атрибуты кодера X свойство configurer чтобы сгенерированный код принял любое количество наблюдений. Измените SizeVector и VariableDimensions атрибуты. The SizeVector атрибут задает верхнюю границу размера данных предиктора и VariableDimensions атрибут определяет, имеет ли каждую размерность данных предиктора переменный размер или фиксированный размер.

configurer.X.SizeVector = [34 Inf];
configurer.X.VariableDimensions
ans = 1x2 logical array

   0   1

Размер первой размерности является количеством переменных. Это значение должно быть фиксировано для модели машинного обучения. Поскольку данные предиктора содержат 34 предиктора, значение SizeVector атрибут должен быть 34, и значение VariableDimensions атрибут должен быть 0.

Размер второго измерения является количеством наблюдений. Установка значения SizeVector атрибут к Inf заставляет программное обеспечение изменять значение VariableDimensions атрибут к 1. Другими словами, верхняя граница размера Inf и размер переменен, что означает, что данные предиктора могут иметь любое количество наблюдений. Эта спецификация удобна, если вы не знаете количество наблюдений при генерации кода.

Порядок размерностей в SizeVector и VariableDimensions зависит от атрибутов кодера ObservationsIn.

configurer.ObservationsIn
ans = 
  EnumeratedInput with properties:

             Value: 'columns'
    SelectedOption: 'Built-in'
    BuiltInOptions: {'rows'  'columns'}
        IsConstant: 1
        Tunability: 1

Когда Value атрибут ObservationsIn свойство 'columns', первая размерность SizeVector и VariableDimensions атрибуты X соответствует количеству предикторов, а второе измерение соответствует количеству наблюдений. Когда Value атрибут ObservationsIn является 'rows', порядок размерностей переключен.

Сгенерируйте код

Чтобы сгенерировать код C/C + +, вы должны иметь доступ к компилятору C/C + +, который настроен правильно. MATLAB Coder находит и использует поддерживаемый, установленный компилятор. Можно использовать mex -setup чтобы просмотреть и изменить компилятор по умолчанию. Для получения дополнительной информации см. раздел «Изменение компилятора по умолчанию».

Сгенерируйте код для predict и update функции линейной классификационной модели (Mdl).

generateCode(configurer)
generateCode creates these files in output folder:
'initialize.m', 'predict.m', 'update.m', 'ClassificationLinearModel.mat'
Code generation successful.

The generateCode функция завершает следующие действия:

  • Сгенерируйте файлы MATLAB, необходимые для генерации кода, включая две функции точки входа predict.m и update.m для predict и update функции Mdl, соответственно.

  • Создайте MEX-функцию с именем ClassificationLinearModel для двух функций точки входа.

  • Создайте код для MEX-функции в codegen\mex\ClassificationLinearModel папка.

  • Скопируйте MEX-функцию в текущую папку.

Проверьте сгенерированный код

Передайте некоторые данные предиктора, чтобы проверить, predict ли функция Mdl и predict функция в MEX-функция возвращает те же метки. Чтобы вызвать функцию точки входа в MEX-функция, которая имеет более одной точки входа, укажите имя функции в качестве первого входного параметра.

[label,score] = predict(Mdl,XTrain,'ObservationsIn','columns');
[label_mex,score_mex] = ClassificationLinearModel('predict',XTrain,'ObservationsIn','columns');

Сравнение label и label_mex при помощи isequal.

isequal(label,label_mex)
ans = logical
   1

isequal возвращает логический 1 (true), если все входы равны. Сравнение подтверждает, что predict функция Mdl и predict функция в MEX-функция возвращает те же метки.

Сравнение score и score_mex.

max(abs(score-score_mex),[],'all')
ans = 0

В целом, score_mex могут включать круглые различия по сравнению с score. В этом случае сравнение подтверждает, что score и score_mex равны.

Переобучите модель и параметры обновления в сгенерированном коде

Переобучите модель, используя весь набор данных.

retrainedMdl = fitclinear(X',Y,'ObservationsIn','columns');

Извлечение параметров для обновления при помощи validatedUpdateInputs. Эта функция обнаруживает измененные параметры модели в retrainedMdl и подтверждает, удовлетворяют ли измененные значения параметров атрибутам кодера параметров.

params = validatedUpdateInputs(configurer,retrainedMdl);

Обновляйте параметры в сгенерированном коде.

ClassificationLinearModel('update',params)

Проверьте сгенерированный код

Сравните выходы predict функция retrainedMdl и predict функция в обновленной MEX-функции.

[label,score] = predict(retrainedMdl,X','ObservationsIn','columns');
[label_mex,score_mex] = ClassificationLinearModel('predict',X','ObservationsIn','columns');
isequal(label,label_mex)
ans = logical
   1

max(abs(score-score_mex),[],'all')
ans = 0

Сравнение подтверждает, что label и label_mex равны, и что значения баллов равны.

Подробнее о

расширить все

Введенный в R2019b