主要内容

更新

更新代码生成的模型参数

描述

生成C/ c++代码预测更新使用编码器配置器对象的机器学习模型的功能。使用创建此对象LearnerCoder配置器和它的目标函数generateCode. 这个n you can use the更新函数来更新生成的代码中的模型参数,而无需重新生成代码。当您使用新数据或设置重新训练模型时,该特性减少了重新生成、重新部署和重新验证C/ c++代码所需的工作。

此流程图显示了使用编码器配置器的代码生成工作流。使用更新对于突出的步骤。

如果不生成代码,则不需要使用更新函数。当你在MATLAB中重新训练一个模型®,则返回的模型已经包含修改后的参数。

例子

updatedmdl.=更新(Mdl参数个数的更新版本Mdl中包含新参数的参数个数

在重新培训一个模型后,使用validatedUpdateInputs函数检测重新训练的模型中修改的参数,并验证修改后的参数值是否满足参数的编码器属性。使用的输出validatedUpdateInputs,作为输入参数个数更新模型参数。

例子

全部折叠

使用部分数据集训练支持向量机模型,并为模型创建编码器配置器。使用编码器配置器的属性来指定支持向量机模型参数的编码器属性。使用编码器配置器的对象函数生成C代码,用于预测新的预测数据的标签。然后使用整个数据集重新训练模型,并在不重新生成代码的情况下更新生成代码中的参数。

火车模型

加载电离层数据集。该数据集有34个预测器和351个雷达返回的二进制响应,或坏(“b”)还是好(‘g’).使用前50个观测值训练二值支持向量机分类模型。

加载电离层Mdl=fitcsvm(X(1:50,:),Y(1:50));

Mdl是一个分类VM对象。

创建编码器配置

控件创建一个编码器配置器分类VM模型通过使用LearnerCoder配置器.指定预测器数据X. 这个LearnerCoder配置器功能使用输入X属性的编码器属性预测函数输入。另外,将输出数设置为2,以便生成的代码返回预测的标签和分数。

配置= learnerCoderConfigurer (Mdl X (1:50,:)“NumOutputs”2);

配置器是一个ClassificationSVMCoderConfigurer对象的编码配置器分类VM对象。

指定参数的编码器属性

指定SVM分类模型参数的编码器属性,以便在重新训练模型后更新生成代码中的参数。此示例指定要传递给生成代码的预测器数据的编码器属性,以及支持向量机模型的支持向量的编码器属性。金宝app

首先,指定编码器属性X这样生成的代码就可以接受任意数量的观察。修改秘诀杂色金属依赖项属性。这秘诀属性指定预测器数据大小的上限,而杂色金属依赖项属性指定预测器数据的每个维度是否具有可变大小或固定大小。

configuration . x . sizevector = [Inf 34];configurer.X.VariableDimensions = [true false];

第一个维度的大小是观测的次数。在本例中,代码指定大小的上限为Inf大小是可变的,也就是说X可以有任意数量的观察结果。如果您在生成代码时不知道观察的数量,那么这个规范很方便。

第二个维度的大小是预测变量的数量。对于机器学习模型,这个值必须是固定的。X包含34个预测器,因此秘诀属性的值必须为34杂色金属依赖项属性必须

如果使用新的数据或不同的设置重新训练SVM模型,支持向量的数量可能会有所不同。金宝app因此,指定的编码器属性金宝appSupportVectors这样您就可以更新生成代码中的支持向量。金宝app

configurati金宝appon . supportvectors . sizevector = [250 34];
Alpha的SizeVector属性已被修改以满足配置约束。修改了SupportVectorLabels的Si金宝appzeVector属性以满足配置约束。
configurer.金宝appsupportVectors.variabledimensions = [true false];
已修改Alpha的VariableDimensions属性以满足配置约束。修改了SupportVectorLabels的VariableDi金宝appmensions属性以满足配置约束。

如果修改的编码器属性金宝appSupportVectors,然后软件修改的编码器属性α金宝appSupportVectorLabels满足配置约束。如果一个参数的编码器属性的修改需要随后的改变对其他从属参数来满足配置约束,则软件改变了从属参数的编码器属性。

生成代码

要生成C/ c++代码,您必须访问配置正确的C/ c++编译器。MATLAB编码器定位并使用一个受支持的、安装的编译器。金宝app您可以使用墨西哥人设置查看和更改默认编译器。有关详细信息,请参见改变默认的编译器

使用generateCode为此生成代码预测更新SVM分类模型的函数(Mdl)使用默认设置。

generateCode(配置)
generateCode在输出文件夹中创建这些文件:米”、“预测。米”、“更新。米”、“ClassificationSVMModel。代码生成成功。

generateCode生成生成代码所需的MATLAB文件,包括两个入口点函数predict.mupdate.m对于预测更新的功能Mdl, 分别。然后generateCode创建一个名为分类模型对于两个入口点函数codegen \墨西哥人\ ClassificationSVMModel文件夹并将MEX函数复制到当前文件夹。

验证生成的代码

通过一些预测数据来验证是否预测的函数Mdl预测函数中返回相同的标签。要在具有多个入口点的MEX函数中调用入口点函数,请将函数名指定为第一个输入参数。

(标签,分数)=预测(Mdl X);[label_mex, score_mex] = ClassificationSVMModel (“预测”, X);

比较标签label_mex通过使用是平等的

label_mex isequal(标签)
ans =逻辑1

是平等的返回逻辑1(真正的)如果所有输入相等。比较证实了预测的函数Mdl预测函数中返回相同的标签。

得分_mex.可能包括舍入差异与分数.在这种情况下,比较得分_mex.分数,允许有一个小的公差。

查找(abs(分数-分数-平均值)>1e-8)
Ans = 0x1空双列向量

比较证实了分数得分_mex.在公差内是相等的吗1e–8

重新训练模型并更新生成代码中的参数

使用整个数据集重新培训模型。

retrainedMdl = fitcsvm (X, Y);

通过使用提取要更新的参数validatedUpdateInputs.此功能检测到修改的模型参数retrainedMdl并验证修改后的参数值是否满足参数的编码器属性。

params = validatedUpdateInputs(配置、retrainedMdl);

更新生成代码中的参数。

ClassificationSVMModel (“更新”params)

验证生成的代码

的输出比较预测的函数retrainedMdl预测函数。

(标签,分数)=预测(retrainedMdl X);[label_mex, score_mex] = ClassificationSVMModel (“预测”, X);label_mex isequal(标签)
ans =逻辑1
查找(abs(分数-分数-平均值)>1e-8)
Ans = 0x1空双列向量

比较证实了标签labels_mex是相等的,并且在容忍范围内得分值是相等的。

使用支持向量机二进制学习器训练纠错输出码(ECOC)模型,并为该模型创建编码器配置器。使用编码器配置器的属性来指定ECOC模型参数的编码器属性。使用编码器配置器的对象函数生成C代码,用于预测新的预测数据的标签。然后使用不同的设置重新训练模型,并在不重新生成代码的情况下更新生成代码中的参数。

火车模型

加载Fisher的虹膜数据集。

加载fisheririsX =量;Y =物种;

创建SVM二进制学习者模板以使用高斯内核功能并标准化预测器数据。

t = templateSVM (“KernelFunction”“高斯”“标准化”,真正的);

使用模板训练多牌ecoc模型T.

Mdl = fitcecoc (X, Y,'学习者't);

Mdl是一个ClassificationECOC对象。

创建编码器配置

控件创建一个编码器配置器ClassificationECOC模型通过使用LearnerCoder配置器.指定预测器数据X. 这个LearnerCoder配置器功能使用输入X属性的编码器属性预测函数的输入。此外,将输出的数量设置为2,以便生成的代码返回第一个输出预测函数,它是预测的标签和求反的平均二进制损失。

配置= learnerCoderConfigurer (Mdl X,“NumOutputs”, 2)
配置= ClassificationECOCCoderConfigurer属性:更新输入:BinaryLearners:之前[1 x1 ClassificationSVMCoderConfigurer]: [1 x1 LearnerCoderInput]成本:[1 x1 LearnerCoderInput]预测输入:X: [1 x1 LearnerCoderInput]代码生成参数:NumOutputs: 2 OutputFileName:“ClassificationECOCModel”属性,方法

配置器是一个ClassificationECOCCoderConfigurer对象的编码配置器ClassificationECOC对象。的可调参数预测更新XBinaryLearners之前,费用

指定参数的编码器属性

的编码器属性预测参数(预测器数据和名称-值对参数)'解码'“BinaryLoss”),更新参数(支持向量机学习器金宝app的支持向量),以便您可以使用这些参数作为的输入参数预测更新在生成的代码中。

首先,指定编码器属性X这样生成的代码就可以接受任意数量的观察。修改秘诀杂色金属依赖项属性。这秘诀属性指定预测器数据大小的上限,而杂色金属依赖项属性指定预测器数据的每个维度是否具有可变大小或固定大小。

[Inf 4];configurer.X.VariableDimensions = [true false];

第一个维度的大小是观测的次数。在本例中,代码指定大小的上限为Inf大小是可变的,也就是说X可以有任意数量的观察结果。如果您在生成代码时不知道观察的数量,那么这个规范很方便。

第二个维度的大小是预测变量的数量。对于机器学习模型,这个值必须是固定的。X包含4个预测值,因此秘诀属性必须为4,并且是杂色金属依赖项属性必须

接下来,修改的编码器属性二进制数解码使用“BinaryLoss”'解码'生成的代码中的名称-值对参数。的编码属性二进制数

configur.binaryloss.
ans = EnumeratedInput与属性:值:'hinge' SelectedOption: ' built ' BuiltInOptions: {1x7 cell} IsConstant: 1可调性:0

若要在生成的代码中使用非默认值,必须在生成代码之前指定该值。请指定价值的属性二进制数作为“指数”

configurer.BinaryLoss.Value =“指数”;configur.binaryloss.
ans = EnumeratedInput与属性:值:'指数' SelectedOption: '内置' BuiltInOptions: {1x7 cell} IsConstant: 1可调性:1

如果在以下情况下修改属性值:可调性(逻辑0),软件设置可调性真正的(逻辑1)。

的编码属性解码

configurer.decoding.
ans = EnumeratedInput与属性:值:' lossweights ' SelectedOption: ' built ' BuiltInOptions: {' lossweights ' ' losssbased '} IsConstant: 1可调性:0

指定IsConstant的属性解码作为这样您就可以使用所有可用值BuiltInOptions在生成的代码中。

configurer.Decoding.IsConstant = false;configurer.decoding.
ANS = eNumerateDupput使用属性:value:[1x1 LearnerCoderInput] SelectedOption:'不可置位'内置选项:{'lockwuighted''丢失备用'} iSononstant:0可调性:1

软件改变了价值的属性解码LearnerCoderInput对象使您可以使用两者“lossweighted”“lossbased的价值'解码'.此外,软件设置SelectedOption“非常数的”可调性真正的

最后,修改的编码器属性金宝appSupportVectorsBinaryLearners.的编码属性金宝appSupportVectors

configurer.BinaryLearners.金宝appSupportVectors
ans = LearnerCoderInput带有属性:SizeVector: [54 4] VariableDimensions: [1 0] DataType: 'double'可调性:1

的默认值杂色金属依赖项[真假]因为每个学习者都有不同数量的支持向量。金宝app如果您使用新的数据或不同的设置重新训练ECOC模型,SVM学习器中的支持向量的数量可能会有所不同。金宝app因此,增大支持向量数目的上界。金宝app

configurer.BinaryLearners.金宝appSupportVectors.SizeVector = [150 4];
Alpha的SizeVector属性已被修改以满足配置约束。修改了SupportVectorLabels的Si金宝appzeVector属性以满足配置约束。

如果修改的编码器属性金宝appSupportVectors,然后软件修改的编码器属性α金宝appSupportVectorLabels满足配置约束。如果一个参数的编码器属性的修改需要随后的改变对其他从属参数来满足配置约束,则软件改变了从属参数的编码器属性。

显示编码器配置器。

配置器
configurer = ClassificationCocoderConfigurer具有属性:更新输入:BinaryLearners:[1x1 scresisificsvmcoderConfigurer]之前:[1x1 LearnercoderInput]预测输入:x:[1x1 inumerateDute] Binaryloss:[1x1 enumerateInput]解码:[1x1 enumerateInput]代码生成参数:NUMOUTPUTS:2 OUTPUTFILENAME:'ClassificationCocModel'属性,方法

现在显示器包括二进制数解码

生成代码

要生成C/ c++代码,您必须访问配置正确的C/ c++编译器。MATLAB编码器定位并使用一个受支持的、安装的编译器。金宝app您可以使用墨西哥人设置查看和更改默认编译器。有关详细信息,请参见改变默认的编译器

为此生成代码预测更新ECOC分类模式的功能(Mdl).

generateCode(配置)
generateCode在输出文件夹中创建这些文件:米”、“预测。米”、“更新。米”、“ClassificationECOCModel。代码生成成功。

generateCode函数完成以下操作:

  • 生成MATLAB文件所需的生成代码,包括两个入口点函数predict.mupdate.m对于预测更新的功能Mdl, 分别。

  • 创建一个名为分类模型对于两个入口点函数。

  • 创建MEX函数的代码codegen \墨西哥人\ ClassificationECOCModel文件夹中。

  • 将MEX函数复制到当前文件夹。

验证生成的代码

通过一些预测数据来验证是否预测的函数Mdl预测函数中返回相同的标签。要在具有多个入口点的MEX函数中调用入口点函数,请将函数名指定为第一个输入参数。因为你指定的'解码'作为可调参数,通过更改IsConstant属性生成代码之前,还需要在调用MEX函数时指定它,即使“lossweighted”默认值是'解码'

[标签,dropsа] =预测(mdl,x,“BinaryLoss”“指数”); [label_-mex,NegLoss_-mex]=分类模型(“预测”,X,“BinaryLoss”“指数”'解码'“lossweighted”);

比较标签label_mex通过使用是平等的

label_mex isequal(标签)
ans =逻辑1

是平等的返回逻辑1(真正的)如果所有输入相等。比较证实了预测的函数Mdl预测函数中返回相同的标签。

NegLoss_mex可能包括舍入差异与NegLoss.在这种情况下,比较NegLoss_mexNegLoss,允许有一个小的公差。

找到(abs (NegLoss-NegLoss_mex) > 1 e-8)
Ans = 0x1空双列向量

比较证实了NegLossNegLoss_mex在公差内是相等的吗1e–8

重新训练模型并更新生成代码中的参数

使用不同的设置重新培训模型。指定“KernelScale”作为'汽车'因此,该软件采用启发式的方法选择合适的比例因子。

t_new = templateSVM (“KernelFunction”“高斯”“标准化”,真的,“KernelScale”'汽车'); 再培训DMDL=fitcecoc(X,Y,'学习者', t_new);

通过使用提取要更新的参数validatedUpdateInputs.此功能检测到修改的模型参数retrainedMdl并验证修改后的参数值是否满足参数的编码器属性。

params = validatedUpdateInputs(配置、retrainedMdl);

更新生成代码中的参数。

ClassificationECOCModel (“更新”params)

验证生成的代码

的输出比较预测的函数retrainedMdl的输出预测函数。

[标签,NegLoss] =预测(retrainedMdl X,“BinaryLoss”“指数”'解码'“lossbased”); [label_-mex,NegLoss_-mex]=分类模型(“预测”,X,“BinaryLoss”“指数”'解码'“lossbased”); isequal(标签,标签)
ans =逻辑1
找到(abs (NegLoss-NegLoss_mex) > 1 e-8)
Ans = 0x1空双列向量

比较证实了标签label_mex是相等的,NegLossNegLoss_mex在公差范围内是相等的。

使用部分数据集训金宝app练支持向量机(SVM)模型,并为模型创建编码器配置器。使用编码器配置器的属性来指定支持向量机模型参数的编码器属性。使用编码器配置器的对象函数来生成C代码,用于预测新的预测器数据的响应。然后使用整个数据集重新训练模型,并在不重新生成代码的情况下更新生成代码中的参数。

火车模型

加载carsmall数据集和训练支持向量机回归模型使用前50个观察。

加载carsmallx = [马力,重量];Y = MPG;mdl = fitrsvm(x(1:50,:),y(1:50));

Mdl是一个回归对象。

创建编码器配置

控件创建一个编码器配置器回归模型通过使用LearnerCoder配置器.指定预测器数据X. 这个LearnerCoder配置器功能使用输入X属性的编码器属性预测函数的输入。

配置= learnerCoderConfigurer (Mdl X (1:50,:));

配置器是一个RegressionSVMCoderConfigurer对象的编码配置器回归对象。

指定参数的编码器属性

指定支持向量机回归模型参数的编码器属性,以便您可以在重新训练模型后更新生成代码中的参数。此示例指定要传递给生成代码的预测器数据的编码器属性,以及支持向量机回归模型的支持向量的编码器属性。金宝app

首先,指定编码器属性X这样生成的代码就可以接受任意数量的观察。修改秘诀杂色金属依赖项属性。这秘诀属性指定预测器数据大小的上限,而杂色金属依赖项属性指定预测器数据的每个维度是否具有可变大小或固定大小。

configuration . x . sizevector = [Inf 2];configurer.X.VariableDimensions = [true false];

第一个维度的大小是观测的次数。在本例中,代码指定大小的上限为Inf大小是可变的,也就是说X可以有任意数量的观察结果。如果您在生成代码时不知道观察的数量,那么这个规范很方便。

第二个维度的大小是预测变量的数量。对于机器学习模型,这个值必须是固定的。X包含两个预测器,因此秘诀属性的值必须为2杂色金属依赖项属性必须

如果使用新的数据或不同的设置重新训练SVM模型,支持向量的数量可能会有所不同。金宝app因此,指定的编码器属性金宝appSupportVectors这样您就可以更新生成代码中的支持向量。金宝app

configurati金宝appon . supportvectors . sizevector = [250 2];
Alpha的SizeVector属性已被修改以满足配置约束。
configurer.金宝appsupportVectors.variabledimensions = [true false];
已修改Alpha的VariableDimensions属性以满足配置约束。

如果修改的编码器属性金宝appSupportVectors,然后软件修改的编码器属性α满足配置约束。如果一个参数的编码器属性的修改需要随后的改变对其他从属参数来满足配置约束,则软件改变了从属参数的编码器属性。

生成代码

要生成C/ c++代码,您必须访问配置正确的C/ c++编译器。MATLAB编码器定位并使用一个受支持的、安装的编译器。金宝app您可以使用墨西哥人设置查看和更改默认编译器。有关详细信息,请参见改变默认的编译器

使用generateCode为此生成代码预测更新SVM回归模型的功能(Mdl)使用默认设置。

generateCode(配置)
generateCode在输出文件夹中创建这些文件:“initialize.m”、“predict.m”、“update.m”、“RegressionSVMModel.mat”代码生成成功。

generateCode生成生成代码所需的MATLAB文件,包括两个入口点函数predict.mupdate.m对于预测更新的功能Mdl, 分别。然后generateCode创建一个名为RegressionSVMModel对于两个入口点函数codegen \墨西哥人\ RegressionSVMModel文件夹并将MEX函数复制到当前文件夹。

验证生成的代码

通过一些预测数据来验证是否预测的函数Mdl预测函数返回相同的预测响应。要在具有多个入口点的MEX函数中调用入口点函数,请将函数名指定为第一个输入参数。

yfit =预测(Mdl X);yfit_mex = RegressionSVMModel (“预测”, X);

yfit_mex可能包括舍入差异与YFIT..在这种情况下,比较YFIT.yfit_mex,允许有一个小的公差。

查找(ABS(YFIT-YFIT_MEX)> 1E-6)
Ans = 0x1空双列向量

比较证实了YFIT.yfit_mex在公差内是相等的吗1e–6

重新训练模型并更新生成代码中的参数

使用整个数据集重新培训模型。

retrainedMdl = fitrsvm (X, Y);

通过使用提取要更新的参数validatedUpdateInputs.此功能检测到修改的模型参数retrainedMdl并验证修改后的参数值是否满足参数的编码器属性。

params = validatedUpdateInputs(配置、retrainedMdl);

更新生成代码中的参数。

回归vmmodel(“更新”params)

验证生成的代码

的输出比较预测的函数retrainedMdl预测函数。

yfit =预测(retrainedMdl X);yfit_mex = RegressionSVMModel (“预测”, X);查找(ABS(YFIT-YFIT_MEX)> 1E-6)
Ans = 0x1空双列向量

比较证实了YFIT.yfit_mex在公差内是相等的吗1 e-6

使用部分数据集训练回归树,并为模型创建编码器配置器。使用编码器配置器的属性来指定模型参数的编码器属性。使用编码器配置器的对象函数来生成C代码,用于预测新的预测器数据的响应。然后使用整个数据集重新训练模型,并在不重新生成代码的情况下更新生成代码中的参数。

火车模型

加载carbig数据集,并使用一半的观察来培训回归树模型。

加载carbigX =[排量马力重量];Y = MPG;rng (“默认”%为了再现性n =长度(Y);idxTrain = randsample (n, n / 2);XTrain = X (idxTrain:);YTrain = Y (idxTrain);Mdl = fitrtree (XTrain YTrain);

Mdl是一个RegressionTree对象。

创建编码器配置

控件创建一个编码器配置器RegressionTree模型通过使用LearnerCoder配置器.指定预测器数据XTrain. 这个LearnerCoder配置器功能使用输入XTrain属性的编码器属性预测函数的输入。另外,将输出的数量设置为2,以便生成的代码返回预测的响应和预测的节点号。

配置= learnerCoderConfigurer (Mdl XTrain,“NumOutputs”2);

配置器是一个RegressionTreeCoderConfigurer对象的编码配置器RegressionTree对象。

指定参数的编码器属性

指定回归树模型参数的编码器属性,以便您可以在重新训练模型后更新生成代码中的参数。

属性的编码器属性X的属性配置器这样生成的代码就可以接受任意数量的观察。修改秘诀杂色金属依赖项属性。这秘诀属性指定预测器数据大小的上限,而杂色金属依赖项属性指定预测器数据的每个维度是否具有可变大小或固定大小。

configurer.x.sizevector = [INF 3];configur.x.variabledimensions
ans =1 x2逻辑阵列1 0.

第一个维度的大小是观测的次数。的值秘诀属性来Inf导致软件修改杂色金属依赖项属性来1.换句话说,大小的上限是Inf它的大小是可变的,这意味着预测数据可以有任意数量的观测数据。如果您在生成代码时不知道观察的数量,那么这个规范很方便。

第二个维度的大小是预测变量的数量。对于机器学习模型,这个值必须是固定的。由于预测器数据包含3个预测器,因此秘诀属性必须3.以及它的价值杂色金属依赖项属性必须0.

如果使用新的数据或不同的设置重新训练树模型,树中的节点数量可能会有所不同。因此,指定的第一个维度秘诀属性,以便更新生成的代码中的节点数量:孩子们割点CutPredictorIndex,或诺德米安. 然后,软件会自动修改其他属性。

例如,设置秘诀的属性诺德米安财产Inf. 这个software modifies the秘诀杂色金属依赖项的属性孩子们割点,CutPredictorIndex匹配树中节点数的新上限。此外杂色金属依赖项的属性诺德米安改变到1

[Inf 1];
修改了Children的sizeevector属性以满足配置约束。CutPoint的SizeVector属性已被修改以满足配置约束。CutPredictorIndex的SizeVector属性已被修改以满足配置约束。已修改Children的VariableDimensions属性以满足配置约束。已修改CutPoint的VariableDimensions属性以满足配置约束。已修改CutPredictorIndex的VariableDimensions属性以满足配置约束。
configur.nodemean.variabledimensions.
ans =1 x2逻辑阵列1 0.

生成代码

要生成C/ c++代码,您必须访问配置正确的C/ c++编译器。MATLAB编码器定位并使用一个受支持的、安装的编译器。金宝app您可以使用墨西哥人设置查看和更改默认编译器。有关详细信息,请参见改变默认的编译器

为此生成代码预测更新回归树模型的功能(Mdl).

generateCode(配置)
generateCode在输出文件夹中创建这些文件:米”、“预测。米”、“更新。米”、“RegressionTreeModel。代码生成成功。

generateCode函数完成以下操作:

  • 生成MATLAB文件所需的生成代码,包括两个入口点函数predict.mupdate.m对于预测更新的功能Mdl, 分别。

  • 创建一个名为RegressionTreeModel对于两个入口点函数。

  • 创建MEX函数的代码codegen \墨西哥人\ RegressionTreeModel文件夹中。

  • 将MEX函数复制到当前文件夹。

验证生成的代码

通过一些预测数据来验证是否预测的函数Mdl预测函数返回相同的预测响应。要在具有多个入口点的MEX函数中调用入口点函数,请将函数名指定为第一个输入参数。

[YFIT,Node] =预测(MDL,XTrain);[yfit_mex,node_mex] = regressiontreemodel(“预测”, XTrain);

比较YfitYfit_mex节点node_mex.

马克斯(abs (Yfit-Yfit_mex), [],“所有”
ans = 0
isequal(节点,node_mex)
ans =逻辑1

一般来说,Yfit_mex可能包括舍入差异与Yfit.在这种情况下,比较证实了YfitYfit_mex是相等的。

是平等的返回逻辑1(真正的)如果所有输入参数都是相等的。比较证实了预测的函数Mdl预测函数中返回相同的节点号。

重新训练模型并更新生成代码中的参数

使用整个数据集重新培训模型。

retrainedMdl = fitrtree (X, Y);

通过使用提取要更新的参数validatedUpdateInputs.此功能检测到修改的模型参数retrainedMdl并验证修改后的参数值是否满足参数的编码器属性。

params = validatedUpdateInputs(配置、retrainedMdl);

更新生成代码中的参数。

RegressionTreeModel(“更新”params)

验证生成的代码

比较来自的输出参数预测的函数retrainedMdl预测函数。

[Yfit、节点]=预测(retrainedMdl X);[yfit_mex,node_mex] = regressiontreemodel(“预测”, X);马克斯(abs (Yfit-Yfit_mex), [],“所有”
ans = 0
isequal(节点,node_mex)
ans =逻辑1

通过比较,确认了预测响应和节点数是相等的。

输入参数

全部折叠

机器学习模型,指定为模型对象,如所支持模型表所示。金宝app

模型 模型对象
用于多类分类的二叉决策树 CompactClassificationTree
单级和二进制分类的SVM CompactClassificationSVM
二进制分类的线性模型 ClassificationLinear
支持向量机的多分类模型和线性模型 CompactClassificeCoc.
二叉决策树的回归 CompactRegressionTree
金宝app支持向量机回归 CompactRegressionSVM
线性回归 RegressionLinear

有关机器学习模型的代码生成使用说明和限制,请参阅模型对象页面的代码生成部分。

机器学习模型中要更新的参数,指定为一个结构,每个参数都有一个字段要更新。

创建参数个数通过使用validatedUpdateInputs函数。此函数检测到Retrow Model中的修改参数,验证修改的参数值是否满足参数的编码器属性,并将参数返回为结构进行更新。

可以更新的参数集根据机器学习模型的不同而不同,如表中所述。

模型 参数更新
用于多类分类的二叉决策树 孩子们ClassProbability费用割点CutPredictorIndex之前
单级和二进制分类的SVM
  • 如果Mdl是一类SVM分类模型,那么参数个数不能包含费用之前

二进制分类的线性模型 β偏见费用之前
支持向量机的多分类模型和线性模型

BinaryLearners费用之前

二叉决策树的回归 孩子们割点CutPredictorIndex诺德米安
支持向量机回归
线性回归 β偏见

输出参数

全部折叠

更新的机器学习模型,作为与之相同类型的模型对象返回Mdl. 这个outputupdatedmdl.是输入的更新版本Mdl中包含新参数的参数个数

提示

算法

在编码器配置器工作流中,Mdl输入参数的更新是一个模特返回loadLearnerForCoder.这个模型和updatedmdl.对象是简化的分类或回归模型,主要包含预测所需的属性。

扩展功能

在R2018B中介绍