exponenta event banner

RegressionTreeCoderConfigurer

Конфигуратор кодера двоичной модели дерева решений для регрессии

Описание

A RegressionTreeCoderConfigurer объект является конфигуратором кодера двоичной модели дерева решений для регрессии (RegressionTree или CompactRegressionTree).

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

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

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

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

На этой блок-схеме показан рабочий процесс создания кода с использованием конфигуратора кодера.

Примечания по использованию генерации кода и ограничения модели регрессионного дерева см. в разделах Создание кода (Code Generation) CompactRegressionTree, predict, и update.

Создание

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

Свойства

развернуть все

predict Аргументы

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

Атрибуты кодера данных предиктора для передачи в сгенерированный код C/C + + для predict функция модели регрессионного дерева, указанная как 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.

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

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

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

configurer.NumOutputs = 2;

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

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

update Аргументы

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

Атрибуты кодера дочерних узлов для каждого узла в дереве (Children модели регрессионного дерева), указанного как LearnerCoderInput объект.

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

  • SizeVector - Значение по умолчанию: [nd 2], где nd - количество узлов в Mdl.

  • VariableDimensions - Это значение равно [0 0](по умолчанию) или [1 0].

    • [0 0] указывает, что размер массива фиксирован, как указано в SizeVector.

    • [1 0] указывает, что массив содержит строки переменного размера и столбцы фиксированного размера. В этом случае первое значение SizeVector - верхняя граница для количества строк и второе значение SizeVector - количество столбцов.

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

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

При изменении первого размера SizeVector быть newnd, то программное обеспечение изменяет первый размер SizeVector атрибут должен быть newnd для свойств CutPoint, CutPredictorIndex, и NodeMean. Аналогично, при изменении первого размера VariableDimensions быть 1, то программное обеспечение изменяет первый размер VariableDimensions атрибут должен быть 1 для этих свойств.

Атрибуты кодера точки разрыва для каждого узла в дереве (CutPoint модели регрессионного дерева), указанного как LearnerCoderInput объект.

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

  • SizeVector - Значение по умолчанию: [nd 1], где nd - количество узлов в Mdl.

  • VariableDimensions - Это значение равно [0 0](по умолчанию) или [1 0].

    • [0 0] указывает, что размер массива фиксирован, как указано в SizeVector.

    • [1 0] указывает, что массив содержит строки переменного размера и столбцы фиксированного размера. В этом случае первое значение SizeVector - верхняя граница для количества строк и второе значение SizeVector - количество столбцов.

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

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

При изменении первого размера SizeVector быть newnd, то программное обеспечение изменяет первый размер SizeVector атрибут должен быть newnd для свойств Children, CutPredictorIndex, и NodeMean. Аналогично, при изменении первого размера VariableDimensions быть 1, то программное обеспечение изменяет первый размер VariableDimensions атрибут должен быть 1 для этих свойств.

Атрибуты кодера индекса предиктора среза для каждого узла в дереве (CutPredictorIndex модели регрессионного дерева), указанного как LearnerCoderInput объект.

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

  • SizeVector - Значение по умолчанию: [nd 1], где nd - количество узлов в Mdl.

  • VariableDimensions - Это значение равно [0 0](по умолчанию) или [1 0].

    • [0 0] указывает, что размер массива фиксирован, как указано в SizeVector.

    • [1 0] указывает, что массив содержит строки переменного размера и столбцы фиксированного размера. В этом случае первое значение SizeVector - верхняя граница для количества строк и второе значение SizeVector - количество столбцов.

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

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

При изменении первого размера SizeVector быть newnd, то программное обеспечение изменяет первый размер SizeVector атрибут должен быть newnd для свойств Children, CutPoint, и NodeMean. Аналогично, при изменении первого размера VariableDimensions быть 1, то программное обеспечение изменяет первый размер VariableDimensions атрибут должен быть 1 для этих свойств.

Атрибуты кодера среднего значения ответа для каждого узла в дереве (NodeMean модели регрессионного дерева), указанного как LearnerCoderInput объект.

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

  • SizeVector - Значение по умолчанию: [nd 1], где nd - количество узлов в Mdl.

  • VariableDimensions - Это значение равно [0 0](по умолчанию) или [1 0].

    • [0 0] указывает, что размер массива фиксирован, как указано в SizeVector.

    • [1 0] указывает, что массив содержит строки переменного размера и столбцы фиксированного размера. В этом случае первое значение SizeVector - верхняя граница для количества строк и второе значение SizeVector - количество столбцов.

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

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

При изменении первого размера SizeVector быть newnd, то программное обеспечение изменяет первый размер SizeVector атрибут должен быть newnd для свойств Children, CutPoint, и CutPredictorIndex. Аналогично, при изменении первого размера VariableDimensions быть 1, то программное обеспечение изменяет первый размер VariableDimensions атрибут должен быть 1 для этих свойств.

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

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

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

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

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

configurer.OutputFileName = 'myModel';

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

Уровень детализации, указанный как 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 аргументы.

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

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.PrimitiveType объект включает в себя атрибуты кодера данных предиктора, хранящихся в X собственность.

При изменении атрибутов кодера данных предиктора программное обеспечение обновляет coder.PrimitiveType соответственно возражают.

coder.PrimitiveType объект в PredictInputs эквивалентно configurer.CodeGenerationArguments{6} для конфигуратора кодера configurer.

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

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

Список настраиваемых входных аргументов функции точки входа 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 функции модели с помощью конфигуратора кодера.

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

load carbig
X = [Displacement Horsepower Weight];
Y = MPG;
Mdl = fitrtree(X,Y);

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

Создание конфигуратора кодера для RegressionTree модель с использованием learnerCoderConfigurer. Укажите данные предиктора X. learnerCoderConfigurer функция использует вход X для конфигурирования атрибутов кодера predict ввод функции.

configurer = learnerCoderConfigurer(Mdl,X)
configurer = 
  RegressionTreeCoderConfigurer with properties:

   Update Inputs:
             Children: [1x1 LearnerCoderInput]
             NodeMean: [1x1 LearnerCoderInput]
             CutPoint: [1x1 LearnerCoderInput]
    CutPredictorIndex: [1x1 LearnerCoderInput]

   Predict Inputs:
                    X: [1x1 LearnerCoderInput]

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


  Properties, Methods

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

Для создания кода 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', 'RegressionTreeModel.mat'
Code generation successful.

generateCode функция выполняет следующие действия:

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

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

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

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

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

type predict.m
function varargout = predict(X,varargin) %#codegen
% Autogenerated by MATLAB, 23-Apr-2021 12:43:46
[varargout{1:nargout}] = initialize('predict',X,varargin{:});
end
type update.m
function update(varargin) %#codegen
% Autogenerated by MATLAB, 23-Apr-2021 12:43:46
initialize('update',varargin{:});
end
type initialize.m
function [varargout] = initialize(command,varargin) %#codegen
% Autogenerated by MATLAB, 23-Apr-2021 12:43:46
coder.inline('always')
persistent model
if isempty(model)
    model = loadLearnerForCoder('RegressionTreeModel.mat');
end
switch(command)
    case 'update'
        % Update struct fields: Children
        %                       NodeMean
        %                       CutPoint
        %                       CutPredictorIndex
        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

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

Модель поезда

Загрузить carbig набор данных и обучение модели регрессионного дерева с использованием половины наблюдений.

load carbig
X = [Displacement Horsepower Weight];
Y = MPG;

rng('default') % For reproducibility
n = length(Y);
idxTrain = randsample(n,n/2);
XTrain = X(idxTrain,:);
YTrain = Y(idxTrain);

Mdl = fitrtree(XTrain,YTrain);

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

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

Создание конфигуратора кодера для RegressionTree модель с использованием learnerCoderConfigurer. Укажите данные предиктора XTrain. learnerCoderConfigurer функция использует вход XTrain для конфигурирования атрибутов кодера predict ввод функции. Кроме того, установите количество выходов равным 2, чтобы сгенерированный код возвращал предсказанные отклики и номера узлов для прогнозов.

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

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

Определение атрибутов кодера параметров

Укажите атрибуты кодера параметров модели дерева регрессии, чтобы можно было обновить параметры в сгенерированном коде после переподготовки модели.

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

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

   1   0

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

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

При переподготовке модели дерева с использованием новых данных или других настроек количество узлов в дереве может изменяться. Поэтому укажите первый размер SizeVector атрибут одного из этих свойств, чтобы можно было обновить количество узлов в сгенерированном коде: Children, CutPoint, CutPredictorIndex, или NodeMean. Затем программа автоматически изменяет другие свойства.

Например, задайте первое значение SizeVector атрибут NodeMean свойство для Inf. Программное обеспечение изменяет SizeVector и VariableDimensions атрибуты Children, CutPoint, и CutPredictorIndex для соответствия новой верхней границе по количеству узлов в дереве. Кроме того, первое значение VariableDimensions атрибут NodeMean изменения в 1.

configurer.NodeMean.SizeVector = [Inf 1];
SizeVector attribute for Children has been modified to satisfy configuration constraints.
SizeVector attribute for CutPoint has been modified to satisfy configuration constraints.
SizeVector attribute for CutPredictorIndex has been modified to satisfy configuration constraints.
VariableDimensions attribute for Children has been modified to satisfy configuration constraints.
VariableDimensions attribute for CutPoint has been modified to satisfy configuration constraints.
VariableDimensions attribute for CutPredictorIndex has been modified to satisfy configuration constraints.
configurer.NodeMean.VariableDimensions
ans = 1x2 logical array

   1   0

Создать код

Для создания кода 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', 'RegressionTreeModel.mat'
Code generation successful.

generateCode функция выполняет следующие действия:

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

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

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

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

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

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

[Yfit,node] = predict(Mdl,XTrain);
[Yfit_mex,node_mex] = RegressionTreeModel('predict',XTrain);

Выдержать сравнение Yfit кому Yfit_mex и node кому node_mex.

max(abs(Yfit-Yfit_mex),[],'all')
ans = 0
isequal(node,node_mex)
ans = logical
   1

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

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

Переподготовка модели и обновление параметров в сгенерированном коде

Переподготовка модели с использованием всего набора данных.

retrainedMdl = fitrtree(X,Y);

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

params = validatedUpdateInputs(configurer,retrainedMdl);

Обновите параметры в созданном коде.

RegressionTreeModel('update',params)

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

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

[Yfit,node] = predict(retrainedMdl,X);
[Yfit_mex,node_mex] = RegressionTreeModel('predict',X);

max(abs(Yfit-Yfit_mex),[],'all')
ans = 0
isequal(node,node_mex)
ans = logical
   1

Сравнение подтверждает, что прогнозируемые отклики и номера узлов равны.

Подробнее

развернуть все

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