更新
更新模型参数代码生成
描述
生成的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
这样生成的代码接受任何数量的观察。修改SizeVector
和VariableDimensions
属性。的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.m
和update.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
是相等的,分数在公差值相等。
更新参数ECOC分类模型生成的代码
火车一个纠错输出编码二进制学习者使用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
这样生成的代码接受任何数量的观察。修改SizeVector
和VariableDimensions
属性。的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
来“非常数的”
和可调谐性
来真正的
。
最后,修改编码的属性SupportVectors
在BinaryLearners
。显示的编码属性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.m
和update.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_mex
来NegLoss
,允许一个小宽容。
找到(abs (NegLoss-NegLoss_mex) > 1 e-8)
ans = 0 x1空双列向量
比较证实,NegLoss
和NegLoss_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
是相等的,NegLoss
和NegLoss_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
这样生成的代码接受任何数量的观察。修改SizeVector
和VariableDimensions
属性。的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.m
和update.m
为预测
和更新
的功能Mdl
,分别。然后generateCode
创建一个墨西哥人函数命名RegressionSVMModel
的两个入口点函数codegen \墨西哥人\ RegressionSVMModel
文件夹,将墨西哥人功能复制到当前文件夹。
验证生成的代码
一些预测数据来验证是否通过预测
的函数Mdl
和预测
墨西哥人的函数返回相同的预测反应。在墨西哥人叫一个入口点函数有多个入口点函数,函数名指定为第一个输入参数。
yfit =预测(Mdl X);yfit_mex = RegressionSVMModel (“预测”,X);
yfit_mex
相比之下,可能包括舍入差异yfit
。在这种情况下,比较yfit
和yfit_mex
,允许一个小宽容。
找到(abs (yfit-yfit_mex) > 1 e-6)
ans = 0 x1空双列向量
比较证实,yfit
和yfit_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空双列向量
比较证实,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
模型通过使用learnerCoderConfigurer
。指定的预测数据XTrain
。的learnerCoderConfigurer
函数使用的输入XTrain
配置的编码属性预测
函数的输入。同时,设置输出的数量2,这样生成的代码返回预测反应和节点数量预测。
配置= learnerCoderConfigurer (Mdl XTrain,“NumOutputs”2);
配置
是一个RegressionTreeCoderConfigurer
对象,该对象是一个编码器的配置RegressionTree
对象。
指定编码的属性参数
指定的编码属性回归树模型参数,这样您就可以更新参数模型在培训后生成的代码。
指定的编码属性X
的属性配置
这样生成的代码接受任何数量的观察。修改SizeVector
和VariableDimensions
属性。的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
财产正
。软件修改SizeVector
和VariableDimensions
的属性孩子们
,割点
,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.m
和update.m
为预测
和更新
的功能Mdl
,分别。创建一个墨西哥人函数命名
RegressionTreeModel
两个入口点函数。创建中的墨西哥人功能的代码
codegen \墨西哥人\ RegressionTreeModel
文件夹中。墨西哥人功能复制到当前文件夹。
验证生成的代码
一些预测数据来验证是否通过预测
的函数Mdl
和预测
墨西哥人的函数返回相同的预测反应。在墨西哥人叫一个入口点函数有多个入口点函数,函数名指定为第一个输入参数。
[Yfit、节点]=预测(Mdl XTrain);[Yfit_mex, node_mex] = RegressionTreeModel (“预测”,XTrain);
比较Yfit
来Yfit_mex
和节点
来node_mex
。
马克斯(abs (Yfit-Yfit_mex), [],“所有”)
ans = 0
node_mex isequal(节点)
ans =逻辑1
一般来说,Yfit_mex
可能包括舍入差异比较Yfit
。在这种情况下,对比确认Yfit
和Yfit_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
比较证实了预测反应和节点数量是相等的。
输入参数
Mdl
- - - - - -机器学习模型
模型对象
机器学习模型,指定为一个模型对象,按照这个表支持的模型。
模型 | 模型对象 |
---|---|
二叉决策树的多类分类 | CompactClassificationTree |
看到下面成了和二进制分类的支持向量机 | CompactClassificationSVM |
线性模型的二进制分类 | ClassificationLinear |
多类支持向量机模型和线性模型 | CompactClassificationECOC |
二叉决策树的回归 | CompactRegressionTree |
支持向量机(SVM)回归 | CompactRegressionSVM |
线性回归 | RegressionLinear |
的代码生成使用笔记和机器学习模型的局限性,看到模型对象的代码生成部分页面。
参数个数
- - - - - -参数更新
结构
参数更新的机器学习模型,指定为一个结构,每个参数更新的领域。
创建参数个数
通过使用validatedUpdateInputs
函数。该函数检测修改重新训练模型中的参数,验证修改后的参数值是否满足编码器的属性参数,并返回参数更新作为一个结构。
参数的设置,您可以更新变化根据机器学习模型,如这个表所述。
模型 | 参数更新 |
---|---|
二叉决策树的多类分类 | 孩子们 ,ClassProbability ,成本 ,割点 ,CutPredictorIndex ,之前 |
看到下面成了和二进制分类的支持向量机 |
|
线性模型的二进制分类 | β ,偏见 ,成本 ,之前 |
多类支持向量机模型和线性模型 | |
二叉决策树的回归 | 孩子们 ,割点 ,CutPredictorIndex ,NodeMean |
支持向量机回归 |
|
线性回归 | β ,偏见 |
输出参数
提示
如果修改表中列出的任何名称-值对的参数重新培训一个模型时,您不能使用
更新
更新参数。你必须再次生成C / c++代码。模型 参数不支持更新 二叉决策树的多类分类 参数的 fitctree
- - - - - -“类名”
,“ScoreTransform”
看到下面成了和二进制分类的支持向量机 参数的 fitcsvm
- - - - - -“类名”
,“KernelFunction”
,“PolynomialOrder”
,“ScoreTransform”
,“标准化”
线性模型的二进制分类 参数的 fitclinear
- - - - - -“类名”
,“ScoreTransform”
多类支持向量机模型和线性模型 参数的
fitcecoc
- - - - - -“类名”
,“编码”
,“ScoreTransform”
如果你指定二进制学习者
fitcecoc
作为模板对象(见“学习者”
),然后为每一个二进制的学习者,你不能修改以下:参数的
templateSVM
- - - - - -“KernelFunction”
,“PolynomialOrder”
,“标准化”
参数的
templateLinear
- - - - - -“学习者”
(因为修改模型类型变化的分数变换二进制学习者)
二叉决策树的回归 参数的 fitrtree
- - - - - -“ResponseTransform”
支持向量机回归 参数的 fitrsvm
- - - - - -“KernelFunction”
,“PolynomialOrder”
,“ResponseTransform”
,“标准化”
线性回归 参数的 fitrlinear
- - - - - -“ResponseTransform”
在编码器配置工作流,你使用
generateCode
创建两个update.m
入口点函数和墨西哥人函数入口点函数。假设墨西哥人函数的名称myModel
,你叫更新
使用这种语法。myModel (“更新”params)
看到这个页面上描述的语法使用的入口点函数,显示的内容
update.m
和initialize.m
文件使用类型
函数。类型update.m类型initialize.m
例如,显示的内容
update.m
和initialize.m
文件,请参阅使用编码器配置生成代码。
算法
编码器的配置工作流Mdl
输入参数的更新
返回的是一个模型吗loadLearnerForCoder
。这个模型,updatedMdl
对象减少分类或回归模型预测所需主要包含属性。
扩展功能
C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。
使用笔记和限制:
创建一个编码器配置使用
learnerCoderConfigurer
然后生成代码预测
和更新
通过使用对象的功能generateCode
。代码生成使用笔记和机器学习模型的局限性
Mdl
,请参阅模型对象的代码生成部分页面。模型 模型对象 二叉决策树的多类分类 CompactClassificationTree
看到下面成了和二进制分类的支持向量机 CompactClassificationSVM
线性模型的二进制分类 ClassificationLinear
多类支持向量机模型和线性模型 CompactClassificationECOC
二叉决策树的回归 CompactRegressionTree
支持向量机(SVM)回归 CompactRegressionSVM
线性回归 RegressionLinear
有关更多信息,请参见介绍代码生成。
版本历史
介绍了R2018b
Abrir比如
这种版本modificada德埃斯特比如。害怕Desea abrir埃斯特比如con sus modificaciones吗?
第一de MATLAB
Ha事实clic en联合国围绕此时一个埃斯特第一de MATLAB:
Ejecute el第一introduciendolo en la ventana de第一de MATLAB。洛杉矶navegadores网络没有admiten第一de MATLAB。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。