主要内容

更新

更新模型参数代码生成

描述

生成的C / c++代码预测更新机器学习模型的功能通过使用编码器配置对象。创建这个对象使用learnerCoderConfigurer和它的目标函数generateCode。然后您可以使用更新函数来更新模型参数生成的代码,而不必重新生成代码。这个特性可以减少所需的努力再生,重新部署,reverify C / c++代码当你训练一个模型与新数据或设置。

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

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

例子

updatedMdl=更新(Mdl,参数个数)返回一个更新的版本Mdl包含新参数参数个数

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

例子

全部折叠

使用部分数据集训练支持向量机模型,并创建一个编码器的配置模型。使用编码器配置的属性来指定编码支持向量机模型参数的属性。使用编码器配置的目标函数来生成C代码,预测新的预测数据标签。然后再培训模型使用和更新整个数据集参数生成的代码没有重新生成代码。

火车模型

加载电离层数据集。这个数据集有34个预测因子和351二进制响应雷达回报,要么坏(“b”)或好(‘g’)。火车一个二进制SVM分类模型使用前50的观察。

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

Mdl是一个ClassificationSVM对象。

创建编码器配置

创建一个编码器的配置ClassificationSVM模型通过使用learnerCoderConfigurer。指定的预测数据X。的learnerCoderConfigurer函数使用的输入X配置的编码属性预测函数的输入。同时,设置输出的数量2,这样生成的代码返回预测标签和分数。

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

配置是一个ClassificationSVMCoderConfigurer对象,该对象是一个编码器的配置ClassificationSVM对象。

指定编码的属性参数

指定编码支持向量机分类模型参数的属性,这样您就可以更新培训后生成的代码模型中的参数。本例中指定的编码属性预测数据,你想通过生成的代码和编码器SVM模型的支持向量的属性。

首先,指定的编码属性X这样生成的代码接受任何数量的观察。修改SizeVectorVariableDimensions属性。的SizeVector属性指定的上界预测数据大小,和VariableDimensions属性指定每个维度的预测数据是否有一个变量大小或固定大小。

configurer.X。SizeVector= [Inf 34]; configurer.X.VariableDimensions = [true false];

第一个维度的大小是观测的数量。在这种情况下,代码指定大小的上限和大小是可变的,这意味着X可以拥有任意数量的观察。这个规范是方便如果你不知道观察当生成代码的数量。

第二个维度是大小的预测变量的数量。这个值必须为一个固定的机器学习模型。X包含34个预测因子,所以的价值SizeVector属性的值必须是34和VariableDimensions属性必须

如果你重新训练支持向量机模型使用新数据或不同的设置,支持向量的个数可以有所不同。因此,指定的编码属性SupportVectors这样你就可以更新支持向量生成的代码。

configurer.SupportVectors。SizeVector = 34 (250);
αSizeVector属性已被修改,以满足配置约束。SizeVector属性SupportVectorLabels已被修改,以满足配置约束。
configurer.SupportVectors。VariableDimensions= [true false];
αVariableDimensions属性已被修改,以满足配置约束。VariableDimensions属性SupportVectorLabels已被修改,以满足配置约束。

如果你修改的编码属性SupportVectors,那么软件修改的编码属性αSupportVectorLabels为了满足配置约束。如果编码器属性的修改一个参数需要对其他相关参数,以满足后续更改配置约束,那么软件更改的编码属性相关的参数。

生成代码

生成C / c++代码,您必须访问一个C / c++编译器配置正确。MATLAB编码器定位和使用支持,安装编译器。您可以使用墨西哥人设置查看和更改默认编译器。更多细节,请参阅改变默认的编译器

使用generateCode生成的代码预测更新函数的支持向量机分类模型(Mdl用默认设置)。

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

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

验证生成的代码

一些预测数据来验证是否通过预测的函数Mdl预测墨西哥人的函数返回相同的标签。在墨西哥人叫一个入口点函数有多个入口点函数,函数名指定为第一个输入参数。

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

比较标签label_mex通过使用isequal

label_mex isequal(标签)
ans =逻辑1

isequal返回逻辑1 (真正的如果所有的输入都是平等的。确认进行了比较预测的函数Mdl预测墨西哥人的函数返回相同的标签。

score_mex相比之下,可能包括舍入差异分数。在这种情况下,比较score_mex分数,允许一个小宽容。

找到(abs (score-score_mex) > 1 e-8)
ans = 0 x1空双列向量

比较证实,分数score_mex宽容是相等的1 e-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 (score-score_mex) > 1 e-8)
ans = 0 x1空双列向量

比较证实,标签labels_mex是相等的,分数在公差值相等。

火车一个纠错输出编码二进制学习者使用SVM (ECOC)模型,并创建一个编码器的配置模型。使用编码器配置的属性来指定编码器ECOC模型参数的属性。使用编码器配置的目标函数来生成C代码,预测新的预测数据标签。使用不同的设置,然后重新训练模型和更新参数生成的代码没有重新生成代码。

火车模型

加载费雪的虹膜数据集。

负载fisheririsX =量;Y =物种;

创建一个二进制学习者模板使用高斯核函数的SVM和标准化预测数据。

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

使用模板训练多级ECOC模型t

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

Mdl是一个ClassificationECOC对象。

创建编码器配置

创建一个编码器的配置ClassificationECOC模型通过使用learnerCoderConfigurer。指定的预测数据X。的learnerCoderConfigurer函数使用的输入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对象。显示器显示的可调输入参数预测更新:X,BinaryLearners,之前,成本

指定编码的属性参数

指定的编码属性预测参数(预测数据和参数名称-值对“解码”“BinaryLoss”),更新参数的SVM(支持向量学习者),这样您就可以使用这些参数作为输入参数预测更新在生成的代码。

首先,指定的编码属性X这样生成的代码接受任何数量的观察。修改SizeVectorVariableDimensions属性。的SizeVector属性指定的上界预测数据大小,和VariableDimensions属性指定每个维度的预测数据是否有一个变量大小或固定大小。

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

第一个维度的大小是观测的数量。在这种情况下,代码指定大小的上限和大小是可变的,这意味着X可以拥有任意数量的观察。这个规范是方便如果你不知道观察当生成代码的数量。

第二个维度是大小的预测变量的数量。这个值必须为一个固定的机器学习模型。X包含4预测,因此第二个值SizeVector属性必须是4,第二个值VariableDimensions属性必须

接下来,修改编码的属性BinaryLoss解码使用“BinaryLoss”“解码”名称-值对参数在生成的代码中。显示的编码属性BinaryLoss

configurer.BinaryLoss
ans = EnumeratedInput属性:价值:“枢纽”SelectedOption:“内置”BuiltInOptions: {1} x7细胞IsConstant: 1可调谐性:0

使用默认的值在生成的代码中,您必须指定的值在生成代码。指定价值的属性BinaryLoss作为“指数”

configurer.BinaryLoss。值=“指数”;configurer.BinaryLoss
ans = EnumeratedInput属性:价值:“指数”SelectedOption:“内置”BuiltInOptions: {1} x7细胞IsConstant: 1可调谐性:1

如果你修改属性值时可调谐性(逻辑0),软件设置可调谐性真正的(逻辑1)。

显示的编码属性解码

configurer.Decoding
ans = EnumeratedInput属性:价值:“lossweighted”SelectedOption:“内置”BuiltInOptions: {“lossweighted”“lossbased”} IsConstant: 1可调谐性:0

指定IsConstant的属性解码作为因此,您可以使用所有可用的值BuiltInOptions在生成的代码。

configurer.Decoding。IsConstant = false;configurer.Decoding
ans = EnumeratedInput属性:价值:[1 x1 LearnerCoderInput] SelectedOption:“非常数的”BuiltInOptions: {“lossweighted”“lossbased”} IsConstant: 0可调谐性:1

软件变更价值的属性解码到一个LearnerCoderInput对象,这样你可以同时使用“lossweighted”“lossbased”的价值“解码”。此外,软件设置SelectedOption“非常数的”可调谐性真正的

最后,修改编码的属性SupportVectorsBinaryLearners。显示的编码属性SupportVectors

configurer.BinaryLearners.SupportVectors
ans = LearnerCoderInput属性:SizeVector: [54 4] VariableDimensions:[1 0]数据类型:“双”可调谐性:1

的默认值VariableDimensions(真假)因为每个学习者都有不同数量的支持向量。如果你再培训ECOC模型使用新数据或不同的设置,支持向量的个数在SVM学习者可以有所不同。因此,提高支持向量的个数的上界。

configurer.BinaryLearners.SupportVectors。SizeVector = 150 [4];
αSizeVector属性已被修改,以满足配置约束。SizeVector属性SupportVectorLabels已被修改,以满足配置约束。

如果你修改的编码属性SupportVectors,那么软件修改的编码属性αSupportVectorLabels为了满足配置约束。如果编码器属性的修改一个参数需要对其他相关参数,以满足后续更改配置约束,那么软件更改的编码属性相关的参数。

显示编码器配置。

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

显示现在包括BinaryLoss解码

生成代码

生成C / c++代码,您必须访问一个C / c++编译器配置正确。MATLAB编码器定位和使用支持,安装编译器。您可以使用墨西哥人设置查看和更改默认编译器。更多细节,请参阅改变默认的编译器

生成的代码预测更新功能ECOC分类模型(Mdl)。

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

generateCode函数完成这些操作:

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

  • 创建一个墨西哥人函数命名ClassificationECOCModel两个入口点函数。

  • 创建中的墨西哥人功能的代码codegen \墨西哥人\ ClassificationECOCModel文件夹中。

  • 墨西哥人功能复制到当前文件夹。

验证生成的代码

一些预测数据来验证是否通过预测的函数Mdl预测墨西哥人的函数返回相同的标签。在墨西哥人叫一个入口点函数有多个入口点函数,函数名指定为第一个输入参数。因为你指定的“解码”作为一个可调输入参数通过改变IsConstant属性生成代码之前,您还需要指定调用墨西哥人的功能,尽管“lossweighted”的默认值吗“解码”

[标签,NegLoss] =预测(Mdl X,“BinaryLoss”,“指数”);[label_mex, NegLoss_mex] = ClassificationECOCModel (“预测”,X,“BinaryLoss”,“指数”,“解码”,“lossweighted”);

比较标签label_mex通过使用isequal

label_mex isequal(标签)
ans =逻辑1

isequal返回逻辑1 (真正的如果所有的输入都是平等的。确认进行了比较预测的函数Mdl预测墨西哥人的函数返回相同的标签。

NegLoss_mex可能包括舍入差异比较NegLoss。在这种情况下,比较NegLoss_mexNegLoss,允许一个小宽容。

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

比较证实,NegLossNegLoss_mex宽容是相等的1 e-8

重新培训模型和更新参数生成的代码

重新培训模型使用不同的设置。指定“KernelScale”作为“汽车”这样的软件使用启发式程序选择合适的比例因子。

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

提取参数更新使用validatedUpdateInputs。这个函数修正模型参数的检测retrainedMdl并验证修改后的参数值是否满足编码器的属性参数。

params = validatedUpdateInputs(配置、retrainedMdl);

在生成的代码更新参数。

ClassificationECOCModel (“更新”params)

验证生成的代码

比较的输出预测的函数retrainedMdl的输出预测功能更新的墨西哥人的功能。

[标签,NegLoss] =预测(retrainedMdl X,“BinaryLoss”,“指数”,“解码”,“lossbased”);[label_mex, NegLoss_mex] = ClassificationECOCModel (“预测”,X,“BinaryLoss”,“指数”,“解码”,“lossbased”);label_mex isequal(标签)
ans =逻辑1
找到(abs (NegLoss-NegLoss_mex) > 1 e-8)
ans = 0 x1空双列向量

比较证实,标签label_mex是相等的,NegLossNegLoss_mex宽容是相等的。

训练支持向量机(SVM)模型使用部分数据集和创建一个编码器的配置模型。使用编码器配置的属性来指定编码支持向量机模型参数的属性。使用编码器配置的目标函数来生成C代码,为新的预测数据预测的反应。然后再培训模型使用和更新整个数据集参数生成的代码没有重新生成代码。

火车模型

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

负载carsmallX =(功率、重量);Y = MPG;Mdl = fitrsvm (X (1:50:), Y (1:50));

Mdl是一个RegressionSVM对象。

创建编码器配置

创建一个编码器的配置RegressionSVM模型通过使用learnerCoderConfigurer。指定的预测数据X。的learnerCoderConfigurer函数使用的输入X配置的编码属性预测函数的输入。

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

配置是一个RegressionSVMCoderConfigurer对象,该对象是一个编码器的配置RegressionSVM对象。

指定编码的属性参数

指定的编码属性支持向量机回归模型参数,这样您就可以更新参数模型在培训后生成的代码。这个例子中指定的编码属性预测数据,你想通过生成的代码和支持向量机的编码器属性的支持向量回归模型。

首先,指定的编码属性X这样生成的代码接受任何数量的观察。修改SizeVectorVariableDimensions属性。的SizeVector属性指定的上界预测数据大小,和VariableDimensions属性指定每个维度的预测数据是否有一个变量大小或固定大小。

configurer.X。SizeVector= [Inf 2]; configurer.X.VariableDimensions = [true false];

第一个维度的大小是观测的数量。在这种情况下,代码指定大小的上限和大小是可变的,这意味着X可以拥有任意数量的观察。这个规范是方便如果你不知道观察当生成代码的数量。

第二个维度是大小的预测变量的数量。这个值必须为一个固定的机器学习模型。X包含两个预测因子,所以的价值SizeVector属性必须是两个和的值VariableDimensions属性必须

如果你重新训练支持向量机模型使用新数据或不同的设置,支持向量的个数可以有所不同。因此,指定的编码属性SupportVectors这样你就可以更新支持向量生成的代码。

configurer.SupportVectors。SizeVector = (250 2);
αSizeVector属性已被修改,以满足配置约束。
configurer.SupportVectors。VariableDimensions= [true false];
αVariableDimensions属性已被修改,以满足配置约束。

如果你修改的编码属性SupportVectors,那么软件修改的编码属性α为了满足配置约束。如果编码器属性的修改一个参数需要对其他相关参数,以满足后续更改配置约束,那么软件更改的编码属性相关的参数。

生成代码

生成C / c++代码,您必须访问一个C / c++编译器配置正确。MATLAB编码器定位和使用支持,安装编译器。您可以使用墨西哥人设置查看和更改默认编译器。更多细节,请参阅改变默认的编译器

使用generateCode生成的代码预测更新函数的支持向量机回归模型(Mdl用默认设置)。

generateCode(配置)
generateCode输出文件夹中创建这些文件:初始化。米”、“预测。米”、“更新。米”、“RegressionSVMModel。垫的代码生成成功。

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

验证生成的代码

一些预测数据来验证是否通过预测的函数Mdl预测墨西哥人的函数返回相同的预测反应。在墨西哥人叫一个入口点函数有多个入口点函数,函数名指定为第一个输入参数。

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

yfit_mex相比之下,可能包括舍入差异yfit。在这种情况下,比较yfityfit_mex,允许一个小宽容。

找到(abs (yfit-yfit_mex) > 1 e-6)
ans = 0 x1空双列向量

比较证实,yfityfit_mex宽容是相等的1 e-6

重新培训模型和更新参数生成的代码

使用整个数据集训练模型。

retrainedMdl = fitrsvm (X, Y);

提取参数更新使用validatedUpdateInputs。这个函数修正模型参数的检测retrainedMdl并验证修改后的参数值是否满足编码器的属性参数。

params = validatedUpdateInputs(配置、retrainedMdl);

在生成的代码更新参数。

RegressionSVMModel (“更新”params)

验证生成的代码

比较的输出预测的函数retrainedMdl预测功能更新的墨西哥人的功能。

yfit =预测(retrainedMdl X);yfit_mex = RegressionSVMModel (“预测”,X);找到(abs (yfit-yfit_mex) > 1 e-6)
ans = 0 x1空双列向量

比较证实,yfityfit_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模型通过使用learnerCoderConfigurer。指定的预测数据XTrain。的learnerCoderConfigurer函数使用的输入XTrain配置的编码属性预测函数的输入。同时,设置输出的数量2,这样生成的代码返回预测反应和节点数量预测。

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

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

指定编码的属性参数

指定的编码属性回归树模型参数,这样您就可以更新参数模型在培训后生成的代码。

指定的编码属性X的属性配置这样生成的代码接受任何数量的观察。修改SizeVectorVariableDimensions属性。的SizeVector属性指定的上界预测数据大小,和VariableDimensions属性指定每个维度的预测数据是否有一个变量大小或固定大小。

configurer.X。SizeVector= [Inf 3]; configurer.X.VariableDimensions
ans =1 x2逻辑阵列1 0

第一个维度的大小是观测的数量。设置的值SizeVector属性来导致软件更改的值VariableDimensions属性来1。换句话说,大小的上限和大小是可变的,这意味着可以拥有任意数量的观察的预测数据。这个规范是方便如果你不知道观察当生成代码的数量。

第二个维度是大小的预测变量的数量。这个值必须为一个固定的机器学习模型。因为预测数据包含3预测的价值SizeVector属性必须3和的值VariableDimensions属性必须0

如果你再培训使用新数据树模型或不同的设置,在树中节点的数目可以有所不同。因此,指定的第一个维度SizeVector这些属性的属性,这样您就可以更新的节点生成的代码:孩子们,割点,CutPredictorIndex,或NodeMean。然后软件自动修改其他属性。

例如,设置的第一个值SizeVector的属性NodeMean财产。软件修改SizeVectorVariableDimensions的属性孩子们,割点,CutPredictorIndex为了配合新的上限在树上的节点数量。此外,的第一个值VariableDimensions的属性NodeMean更改1

configurer.NodeMean。SizeVector= [Inf 1];
儿童SizeVector属性被修改以满足配置约束。SizeVector属性为割点已被修改,以满足配置约束。SizeVector属性CutPredictorIndex已被修改,以满足配置约束。儿童VariableDimensions属性被修改以满足配置约束。VariableDimensions属性为割点已被修改,以满足配置约束。VariableDimensions属性CutPredictorIndex已被修改,以满足配置约束。
configurer.NodeMean.VariableDimensions
ans =1 x2逻辑阵列1 0

生成代码

生成C / c++代码,您必须访问一个C / c++编译器配置正确。MATLAB编码器定位和使用支持,安装编译器。您可以使用墨西哥人设置查看和更改默认编译器。更多细节,请参阅改变默认的编译器

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

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

generateCode函数完成这些操作:

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

  • 创建一个墨西哥人函数命名RegressionTreeModel两个入口点函数。

  • 创建中的墨西哥人功能的代码codegen \墨西哥人\ RegressionTreeModel文件夹中。

  • 墨西哥人功能复制到当前文件夹。

验证生成的代码

一些预测数据来验证是否通过预测的函数Mdl预测墨西哥人的函数返回相同的预测反应。在墨西哥人叫一个入口点函数有多个入口点函数,函数名指定为第一个输入参数。

[Yfit、节点]=预测(Mdl XTrain);[Yfit_mex, node_mex] = RegressionTreeModel (“预测”,XTrain);

比较YfitYfit_mex节点node_mex

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

一般来说,Yfit_mex可能包括舍入差异比较Yfit。在这种情况下,对比确认YfitYfit_mex是相等的。

isequal返回逻辑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
node_mex isequal(节点)
ans =逻辑1

比较证实了预测反应和节点数量是相等的。

输入参数

全部折叠

机器学习模型,指定为一个模型对象,按照这个表支持的模型。

模型 模型对象
二叉决策树的多类分类 CompactClassificationTree
看到下面成了和二进制分类的支持向量机 CompactClassificationSVM
线性模型的二进制分类 ClassificationLinear
多类支持向量机模型和线性模型 CompactClassificationECOC
二叉决策树的回归 CompactRegressionTree
支持向量机(SVM)回归 CompactRegressionSVM
线性回归 RegressionLinear

的代码生成使用笔记和机器学习模型的局限性,看到模型对象的代码生成部分页面。

参数更新的机器学习模型,指定为一个结构,每个参数更新的领域。

创建参数个数通过使用validatedUpdateInputs函数。该函数检测修改重新训练模型中的参数,验证修改后的参数值是否满足编码器的属性参数,并返回参数更新作为一个结构。

参数的设置,您可以更新变化根据机器学习模型,如这个表所述。

模型 参数更新
二叉决策树的多类分类 孩子们,ClassProbability,成本,割点,CutPredictorIndex,之前
看到下面成了和二进制分类的支持向量机
  • 如果Mdl是看到下面成了一个支持向量机分类模型,然后呢参数个数不能包含成本之前

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

BinaryLearners,成本,之前

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

输出参数

全部折叠

更新的机器学习模型,作为一个模型对象返回的相同类型的对象Mdl。输出updatedMdl是一个更新版本的输入Mdl包含新参数参数个数

提示

算法

编码器的配置工作流Mdl输入参数的更新返回的是一个模型吗loadLearnerForCoder。这个模型,updatedMdl对象减少分类或回归模型预测所需主要包含属性。

扩展功能

版本历史

介绍了R2018b

Baidu
map