Кодер configurer модели дерева выбора из двух альтернатив для регрессии
RegressionTreeCoderConfigurer
объект является кодером configurer модели дерева выбора из двух альтернатив для регрессии (RegressionTree
или CompactRegressionTree
).
Кодер configurer предлагает удобные функции, чтобы сконфигурировать опции генерации кода, сгенерировать код C/C++ и обновить параметры модели в сгенерированном коде.
Сконфигурируйте опции генерации кода и задайте атрибуты кодера для древовидных параметров модели при помощи свойств объектов.
Сгенерируйте код C/C++ для predict
и update
функции модели дерева регрессии при помощи generateCode
. Генерация кода C/C++ требует MATLAB® Coder™.
Обновите параметры модели в сгенерированном коде C/C++, не имея необходимость регенерировать код. Эта функция уменьшает усилие, требуемое регенерировать, повторно развернуть, и повторно проверить код C/C++, когда вы переобучаете древовидную модель с новыми данными или настройками. Прежде, чем обновить параметры модели, используйте validatedUpdateInputs
подтверждать и извлекать параметры модели, чтобы обновиться.
Эта блок-схема показывает рабочий процесс генерации кода с помощью кодера configurer.
Для указаний и ограничений по применению генерации кода модели дерева регрессии смотрите разделы Генерации кода CompactRegressionTree
, predict
, и update
.
После обучения модель дерева регрессии при помощи fitrtree
, создайте кодер configurer для модели при помощи learnerCoderConfigurer
. Используйте свойства кодера configurer, чтобы задать атрибуты кодера predict
и update
аргументы. Затем используйте generateCode
сгенерировать код C/C++ на основе заданных атрибутов кодера.
predict
АргументыСвойства, перечисленные в этом разделе, задают атрибуты кодера predict
аргументы функции в сгенерированном коде.
X
— Атрибуты кодера данных о предиктореLearnerCoderInput
объектАтрибуты кодера данных о предикторе, чтобы передать сгенерированному коду C/C++ для predict
функция модели дерева регрессии, заданной как LearnerCoderInput
объект.
Когда вы создаете кодер configurer при помощи 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
:
configurer.X.SizeVector = [100 3];
configurer.X.DataType = 'double';
configurer.X.VariableDimensions = [0 0];
указывает что первые и вторые измерения X
(количество наблюдений и количество переменных предикторов, соответственно), имеют фиксированные размеры.Чтобы позволить сгенерированному коду C/C++ принимать данные о предикторе максимум с 100 наблюдениями, задайте эти атрибуты кодера X
:
configurer.X.SizeVector = [100 3];
configurer.X.DataType = 'double';
configurer.X.VariableDimensions = [1 0];
указывает что первая размерность X
(количество наблюдений), имеет переменный размер и второе измерение X
(количество переменных предикторов), имеет фиксированный размер. Конкретное количество наблюдений, 100 в этом примере, становится максимальным позволенным количеством наблюдений в сгенерированном коде C/C++. Чтобы позволить любое количество наблюдений, задайте связанное как Inf
.
NumOutputs
— Количество выходных параметров в predict
Количество выходных аргументов, чтобы возвратиться из сгенерированного кода C/C++ для predict
функция модели дерева регрессии, заданной как 1 или 2.
Выходные аргументы predict
Yfit
(предсказанные ответы) и node
(числа узла для прогнозов), в том порядке. predict
на сгенерированном C/C++ код возвращает первый n
выходные параметры predict
функция, где n
NumOutputs
значение.
После создания кодера configurer configurer
, можно задать количество выходных параметров при помощи записи через точку.
configurer.NumOutputs = 2;
NumOutputs
свойство эквивалентно '-nargout'
параметр компилятора codegen
. Эта опция задает количество выходных аргументов в функции точки входа генерации кода. Объектный функциональный generateCode
генерирует две функции точки входа — predict.m
и update.m
для predict
и update
функции модели дерева регрессии, соответственно — и генерируют код C/C++ для двух функций точки входа. Заданное значение для NumOutputs
свойство соответствует количеству выходных аргументов в функции точки входа predict.m
.
Типы данных: double
update
АргументыСвойства, перечисленные в этом разделе, задают атрибуты кодера update
аргументы функции в сгенерированном коде. update
функционируйте берет обученные и новые параметры модели модели в качестве входных параметров и возвращает обновленную версию модели, которая содержит новые параметры. Чтобы позволить обновить параметры в сгенерированном коде, необходимо задать атрибуты кодера параметров прежде, чем сгенерировать код. Используйте LearnerCoderInput
объект задать атрибуты кодера каждого параметра. Значения атрибута по умолчанию основаны на параметрах модели во входном параметре Mdl
из learnerCoderConfigurer
.
Children
— Атрибуты кодера дочерних узлов для каждого узлаLearnerCoderInput
объектАтрибуты кодера дочерних узлов для каждого узла в дереве (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
объектАтрибуты кодера точки разделения для каждого узла в дереве (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
объектАтрибуты кодера предиктора сокращения индексируют для каждого узла в дереве (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
объектАтрибуты кодера среднего значения ответа для каждого узла в дереве (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
для этих свойств.
OutputFileName
— Имя файла сгенерированного кода C/C++'RegressionTreeModel'
(значение по умолчанию) | вектор символовИмя файла сгенерированного кода C/C++, заданного как вектор символов.
Объектный функциональный generateCode
из RegressionTreeCoderConfigurer
генерирует код C/C++ с помощью этого имени файла.
Имя файла не должно содержать пробелы, потому что они могут привести к отказам генерации кода в определенных настройках операционной системы. Кроме того, имя должно быть допустимым именем функции MATLAB.
После создания кодера configurer configurer
, можно задать имя файла при помощи записи через точку.
configurer.OutputFileName = 'myModel';
Типы данных: char
Verbose
— Уровень многословияtrue
(логическая единица) (значение по умолчанию) | false
(логический ноль)Уровень многословия, заданный как true
(логическая единица) или false
(логический ноль). Контроль уровня многословия отображение уведомлений в командной строке.
Значение | Описание |
---|---|
true (логическая единица) | Программное обеспечение отображает уведомления, когда ваши изменения в атрибутах кодера параметра приводят к изменениям для других зависимых параметров. |
false (логический ноль) | Программное обеспечение не отображает уведомления. |
Чтобы позволить обновить параметры модели машинного обучения в сгенерированном коде, необходимо сконфигурировать атрибуты кодера параметров прежде, чем сгенерировать код. Атрибуты кодера параметров зависят друг от друга, таким образом, программное обеспечение хранит зависимости как ограничения настройки. Если вы изменяете атрибуты кодера параметра при помощи кодера configurer, и модификация требует, чтобы последующие изменения к другим зависимым параметрам удовлетворили ограничениям настройки, то программное обеспечение изменяет атрибуты кодера зависимых параметров. Уровень многословия определяет, отображает ли программное обеспечение уведомления для этих последующих изменений.
После создания кодера configurer configurer
, можно изменить уровень многословия при помощи записи через точку.
configurer.Verbose = false;
Типы данных: логический
Чтобы настроить рабочий процесс генерации кода, используйте generateFiles
функционируйте и следующие три свойства с codegen
, вместо того, чтобы использовать generateCode
функция.
После генерации двух файлов функции точки входа (predict.m
и update.m
) при помощи generateFiles
функция, можно изменить эти файлы согласно рабочему процессу генерации кода. Например, можно изменить predict.m
файл, чтобы включать предварительную обработку данных, или можно добавить эти функции точки входа в другой проект генерации кода. Затем можно сгенерировать код C/C++ при помощи codegen
функционируйте и codegen
аргументы, подходящие для модифицированных функций точки входа или проекта генерации кода. Используйте эти три свойства, описанные в этом разделе как начальная точка, чтобы установить codegen
аргументы.
CodeGenerationArguments
— codegen
аргументыЭто свойство доступно только для чтения.
codegen
аргументы, заданные как массив ячеек.
Это свойство позволяет вам настроить рабочий процесс генерации кода. Используйте generateCode
функционируйте, если вы не должны настраивать свой рабочий процесс.
Вместо того, чтобы использовать generateCode
с кодером configurer configurer
, можно сгенерировать код C/C++ можно следующим образом:
generateFiles(configurer) cgArgs = configurer.CodeGenerationArguments; codegen(cgArgs{:})
cgArgs
соответственно прежде, чем вызвать codegen
.
Если вы изменяете другие свойства configurer
, обновления программного обеспечения CodeGenerationArguments
свойство соответственно.
Типы данных: cell
PredictInputs
— Входной параметр predict
coder.PrimitiveType
объектЭто свойство доступно только для чтения.
Входной параметр точки входа функционирует predict.m
для генерации кода, заданной как массив ячеек coder.PrimitiveType
объект. coder.PrimitiveType
объект включает атрибуты кодера данных о предикторе, хранимых в X
свойство.
Если вы изменяете атрибуты кодера данных о предикторе, то обновления программного обеспечения coder.PrimitiveType
возразите соответственно.
coder.PrimitiveType
объект в PredictInputs
эквивалентно configurer.CodeGenerationArguments{6}
для кодера configurer configurer
.
Типы данных: cell
UpdateInputs
— Список настраиваемых входных параметров update
coder.PrimitiveType
объектыЭто свойство доступно только для чтения.
Список настраиваемых входных параметров точки входа функционирует update.m
для генерации кода, заданной как массив ячеек структуры включая coder.PrimitiveType
объекты. Каждый coder.PrimitiveType
объект включает атрибуты кодера настраиваемого параметра модели машинного обучения.
Если вы изменяете атрибуты кодера параметра модели при помощи кодера configurer свойства (update
Свойства аргументов), затем обновления программного обеспечения соответствующий coder.PrimitiveType
возразите соответственно. Если вы задаете Tunability
атрибут параметра модели машинного обучения как false
, затем программное обеспечение удаляет соответствующий coder.PrimitiveType
объект от UpdateInputs
список.
Структура в UpdateInputs
эквивалентно configurer.CodeGenerationArguments{3}
для кодера configurer configurer
.
Типы данных: cell
generateCode | Сгенерируйте код C/C++ с помощью кодера configurer |
generateFiles | Сгенерируйте файлы MATLAB для генерации кода, использующей кодер configurer |
validatedUpdateInputs | Подтвердите и извлеките параметры модели машинного обучения, чтобы обновиться |
Обучите модель машинного обучения, и затем сгенерируйте код для predict
и update
функции модели при помощи кодера configurer.
Загрузите carbig
набор данных, который содержит автомобильные данные и обучает модель дерева регрессии.
load carbig
X = [Displacement Horsepower Weight];
Y = MPG;
Mdl = fitrtree(X,Y);
Mdl
RegressionTree
объект.
Создайте кодер configurer для RegressionTree
модель при помощи learnerCoderConfigurer
. Задайте данные о предикторе X
. learnerCoderConfigurer
функционируйте использует вход X
сконфигурировать атрибуты кодера predict
входной параметр функции.
configurer = learnerCoderConfigurer(Mdl,X)
configurer = RegressionTreeCoderConfigurer with properties: Update Inputs: Children: [1×1 LearnerCoderInput] NodeMean: [1×1 LearnerCoderInput] CutPoint: [1×1 LearnerCoderInput] CutPredictorIndex: [1×1 LearnerCoderInput] Predict Inputs: X: [1×1 LearnerCoderInput] Code Generation Parameters: NumOutputs: 1 OutputFileName: 'RegressionTreeModel' Properties, Methods
configurer
RegressionTreeCoderConfigurer
объект, который является кодером configurer RegressionTree
объект.
Чтобы сгенерировать код C/C++, у вас должен быть доступ к компилятору C/C++, который сконфигурирован правильно. MATLAB Coder определяет местоположение и использует поддерживаемый, установленный компилятор. Можно использовать mex
-setup
просмотреть и изменить компилятор по умолчанию. Для получения дополнительной информации см. Компилятор Значения по умолчанию Изменения (MATLAB).
Сгенерируйте код для predict
и update
функции модели дерева регрессии (Mdl
) с настройками по умолчанию.
generateCode(configurer)
generateCode creates these files in output folder: 'initialize.m', 'predict.m', 'update.m', 'RegressionTreeModel.mat'
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, 15-May-2019 14:42:10 [varargout{1:nargout}] = initialize('predict',X,varargin{:}); end
type update.m
function update(varargin) %#codegen % Autogenerated by MATLAB, 15-May-2019 14:42:10 initialize('update',varargin{:}); end
type initialize.m
function [varargout] = initialize(command,varargin) %#codegen % Autogenerated by MATLAB, 15-May-2019 14:42:10 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
Обучите дерево регрессии использование частичного набора данных и создайте кодер configurer для модели. Используйте свойства кодера configurer, чтобы задать атрибуты кодера параметров модели. Используйте объектную функцию кодера configurer, чтобы сгенерировать код С, который предсказывает ответы для новых данных о предикторе. Затем переобучите модель с помощью целого набора данных и параметров обновления в сгенерированном коде, не регенерируя код.
Обучите модель
Загрузите 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
объект.
Создайте кодер Конфигурера
Создайте кодер configurer для RegressionTree
модель при помощи learnerCoderConfigurer
. Задайте данные о предикторе XTrain
. learnerCoderConfigurer
функционируйте использует вход XTrain
сконфигурировать атрибуты кодера predict
входной параметр функции. Кроме того, определите номер выходных параметров к 2 так, чтобы сгенерированный код возвратил предсказанные ответы и числа узла для прогнозов.
configurer = learnerCoderConfigurer(Mdl,XTrain,'NumOutputs',2);
configurer
RegressionTreeCoderConfigurer
объект, который является кодером configurer RegressionTree
объект.
Задайте атрибуты кодера параметров
Задайте атрибуты кодера параметров модели дерева регрессии так, чтобы можно было обновить параметры в сгенерированном коде после переквалификации модели.
Задайте атрибуты кодера X
свойство configurer
так, чтобы сгенерированный код принял любое количество наблюдений. Измените SizeVector
и VariableDimensions
атрибуты. SizeVector
атрибут задает верхнюю границу размера данных предиктора и VariableDimensions
атрибут задает, имеет ли каждая размерность данных о предикторе переменный размер или фиксированный размер.
configurer.X.SizeVector = [Inf 3]; configurer.X.VariableDimensions
ans = 1×2 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 = 1×2 logical array
1 0
Сгенерируйте код
Чтобы сгенерировать код C/C++, у вас должен быть доступ к компилятору C/C++, который сконфигурирован правильно. MATLAB Coder определяет местоположение и использует поддерживаемый, установленный компилятор. Можно использовать mex
-setup
просмотреть и изменить компилятор по умолчанию. Для получения дополнительной информации см. Компилятор Значения по умолчанию Изменения (MATLAB).
Сгенерируйте код для predict
и update
функции модели дерева регрессии (Mdl
).
generateCode(configurer)
generateCode creates these files in output folder: 'initialize.m', 'predict.m', 'update.m', 'RegressionTreeModel.mat'
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
возвращает логическую единицу (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
Сравнение подтверждает, что предсказанные ответы и числа узла равны.
LearnerCoderInput
ОбъектКодер configurer использует LearnerCoderInput
объект задать атрибуты кодера predict
и update
входные параметры.
LearnerCoderInput
объект имеет следующие атрибуты, чтобы задать свойства массива входного параметра в сгенерированном коде.
Название атрибута | Описание |
---|---|
SizeVector | Размер массивов, если соответствующий Верхняя граница размера массивов, если соответствующий |
VariableDimensions | Индикатор, задающий, имеет ли каждая размерность массива переменный размер или фиксированный размер, заданный как
|
DataType | Тип данных массива |
Tunability | Индикатор, задающий, действительно ли
Если вы задаете другие значения атрибута когда |
После создания кодера configurer, можно изменить атрибуты кодера при помощи записи через точку. Например, задайте атрибуты кодера CutPoint
свойство кодера configurer configurer
:
configurer.CutPoint.SizeVector = [40 1]; configurer.CutPoint.VariableDimensions = [1 0];
Verbose
) как true
(значение по умолчанию), затем программное обеспечение отображает уведомления, когда вы изменяете атрибуты кодера параметра модели машинного обучения, и модификация изменяет атрибуты кодера других зависимых параметров.CompactRegressionTree
| RegressionTree
| learnerCoderConfigurer
| predict
| update
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.