在交互式在回归学习者应用程序中创建回归模型后,您可以将最佳模型导出到工作区。然后,您可以使用该培训的模型来使用新数据进行预测。
注
最终模型回归学习者出口始终使用完整数据集进行培训。您使用的验证方案仅影响应用程序计算验证度量的方式。您可以使用验证度量和各种绘图可视化结果,以便为您的回归问题选择最佳模型。
以下是将模型导出到MATLAB的步骤®工作空间:
在应用程序中,选择要导出的模型楷模窗格。
上回归学习者标签,在出口节中,单击其中一个导出选项:
要包括用于培训模型的数据,请选择出口模式.
您将训练模型导出到工作区作为包含回归模型对象的结构。
要排除培训数据,请选择出口紧凑型号.此选项可在可能的情况下将模型导出使用不必要的数据。对于某些型号,这是一个不包括培训数据的紧凑型对象,但您仍然可以使用它来对新数据进行预测。
在“导出模型”对话框中,检查导出变量的名称,如果需要,可对其进行编辑。然后,单击行.导出模型的默认名称,训练模型
,每次导出时递增以避免覆盖模型(例如,训练显示器1
)。
新变量(例如,训练模型
)显示在您的工作区中。
该应用程序显示有关命令窗口中导出的模型的信息。阅读消息以了解如何使用新数据进行预测。
从回归学习器将模型导出到工作区后,或运行应用程序生成的代码后,您将获得训练模型
可用于使用新数据进行预测的结构。该结构包含一个模型对象和一个预测函数。该结构使您能够对包含主成分分析(PCA)的模型进行预测。
使用导出的模型对新数据进行预测,T
:
yfit=训练模型预测fcn(T)
训练模型
是导出变量的名称。提供数据T
具有与应用程序(表或矩阵)中使用的培训数据相同的格式和数据类型。
如果您提供了一个表,那么请确保它包含与培训数据相同的预测值名称。这个预测
忽略表中的其他变量。可变格式和类型必须与原始培训数据匹配。
如果提供矩阵,它必须包含与训练数据相同的预测列或行,顺序和格式相同。不要包含响应变量、未在应用程序中导入的任何变量或其他未使用的变量。
输出伊菲特
包含每个数据点的预测。
检查导出结构的字段。要获得预测帮助,请输入:
培训模型。如何预测
您还可以从导出的结构中提取模型对象以进行进一步分析。如果在应用程序中使用诸如PCA等的功能转换,则必须通过使用结构的PCA字段中的信息来考虑此转换。
在回归学习器应用程序中以交互方式创建回归模型后,可以为最佳模型生成MATLAB代码。然后,您可以使用代码使用新数据训练模型。
生成matlab代码:
在巨大的数据集上训练。探索在数据子集上培训的应用程序中的模型,然后在更大的数据集上生成要培训所选模型的代码。
为培训模型创建脚本,而无需了解不同功能的语法。
检查代码以了解如何以编程方式培训模型。
修改代码以进行进一步的分析,例如要设置您无法在应用程序中更改的选项。
对不同的数据重复分析,并使培训自动化。
要生成代码并使用它培训具有新数据的模型:
在应用中,来自楷模窗格中,选择要为其生成代码的模型。
上回归学习者标签,在出口部分,单击生成函数.
该应用程序从您的会话生成代码,并在MATLAB编辑器中显示该文件。该文件包括预测器和响应,模型训练方法和验证方法。保存文件。
要重新训练模型,请使用原始数据或新数据作为输入参数从命令行调用函数。新数据必须与原始数据具有相同的形状。
复制生成代码的第一行,不包括单词功能
,并编辑TrainingData.
输入参数以反映训练数据或新数据的变量名。同样,编辑响应数据
输入参数(如果适用)。
例如,重新培训培训的回归模型可携式
数据集,输入:
[TroundModel,ValidationRmse] = TrainRegressionModel(Cartable)
生成的代码返回a训练模型
当您将来自回归学习者导出到工作区时,包含与您创建的结构相同的字段的结构。
如果要自动培训与新数据相同的模型,或者学习如何编程方式培训模型,请检查生成的代码。代码向您展示如何:
将数据处理成正确的形状。
训练模型并指定所有模型选项。
执行交叉验证。
计算统计数据。
计算验证预测和分数。
注
如果从经过训练的可优化模型生成MATLAB代码,则生成的代码不包括优化过程。
如果您使用回归学习者培训此表中的其中一个模型,则可以生成用于预测的C代码。
模型类型 | 底层模型对象 |
---|---|
线性回归 | linearmodel. 要么紧凑线性模型 |
决策树 | 回归植物 要么Compactregressiontree. |
金宝app支持矢量机器 | 回归vm. 要么compactregressionsvm. |
高斯过程回归 | regressiongp. 要么紧回归 |
合奏 | 回归套 ,压缩回归套 或回归释迦缩短 |
C代码需要:
MATLAB编码器™执照
适当的模型
例如,在回归学习器中训练树模型,然后将模型导出到工作区。
在导出的结构中找到底层回归模型对象。检查结构的字段以查找模型对象,例如,回归树
, 在哪里S
是你结构的名称。
基础模型对象取决于是否导出了精简模型。模型对象可以是回归植物
要么Compactregressiontree.
目的。
使用功能Savelarnerforcoder.
要为代码生成准备模型,请执行以下操作:saveLearnerForCoder(Mdl,文件名)
.例如:
SavelAlnerForcoder(S.regressionTree,'mytree')
创建一个函数,用于加载保存的模型并对新数据进行预测。例如:
功能YFIT =预测(x)%#编码基因%预测使用树模型预测响应%预测使用x中的测量值mytree.mat中的%和树模型。%返回YFIT中的预测响应。CompactMDL = LoadLearnerForCoder('mytree'); yfit=预测(压缩MDL,X);结尾
从函数生成一个MEX函数。例如:
编码基因预测..M.-args{数据}
%#编码基因
编译指令表示MATLAB代码用于代码生成。为确保MEX功能可以使用相同的输入,请将工作区中的数据指定为使用该函数的参数-args
选项。指定数据
作为仅包含用于训练模型的预测列的矩阵。使用MEX函数进行预测。例如:
Yfit = predicty_mex(数据);
如果您在应用程序中使用了特征选择或PCA特征转换,则需要执行其他步骤。如果使用手动要素选择,请在中提供相同的列X
.这个X
参数是函数的输入。
如果您在应用程序中使用PCA,请使用导出结构的PCA字段中的信息考虑此转换。无论您将表格还是矩阵导入应用程序,都无关紧要X
以相同的顺序包含矩阵列。在生成代码之前,请按照下列步骤操作:
保存培训的回归结构的PCaCenters和PCACoeffices字段,S
,使用以下命令文件:
节省(“pcaInfo.mat”,'--truct','S',“PCACenters”,'pcacoeffices');
在函数文件中,包括其他行以执行PCA转换。创建一个函数,用于加载保存的模型、执行PCA并对新数据进行预测。例如:
功能YFIT =预测(x)%#编码基因%预测使用树模型预测响应%预测使用x中的测量值%和文件mytree.mat中的树模型。%,然后返回Yfit中的预测响应。%如果在应用程序中使用了手动功能选择,请确保x%仅包含模型中包含的列。CompactMDL = LoadLearnerForCoder('mytree');pcainfo = coder.load(“pcaInfo.mat”,“PCACenters”,'pcacoeffices');PCACEders = pcainfo.pcacenters;PCACoefficients = PCAINFO.PCACOEFFICERSERS;%执行PCA转换pcaTransformedX=bsxfun(@减号,X,PCACenters)*pcacefficients;yfit=预测(CompactMdl,pcaTransformedX);结尾
有关C代码生成工作流程和限制的更多信息,请参阅代码生成.对于例子,见Savelarnerforcoder.
和loadLearnerForCoder
.
将模型从回归学习器导出到工作区后,可以使用Matlab Compiler™.
假设您根据指令将培训的模型导出到MATLAB工作区将模型导出到工作空间,姓名为训练模型
.要部署预测,请按照下列步骤操作。
保存训练模型
.mat文件中的结构。
节省我的模型训练模型
编写要编译的代码。此代码必须加载培训的模型并使用它来进行预测。它还必须具有Pragma,因此编译器认识到编译应用程序中需要统计和机器学习工具箱™代码。此Pragma可以是工具箱中的任何功能。
功能ypred = mypredict(tbl)%#函数fitrtree装载('mymodel.mat'); ypred=训练模型预测FCN(待定);结尾
作为独立应用程序编译。
MCC.-M.mypredict.m
紧凑线性模型
|压缩回归套
|紧回归
|compactregressionneuralnetwork
|compactregressionsvm.
|Compactregressiontree.
|linearmodel.
|回归套
|regressiongp.
|回归神经网络
|回归vm.
|回归植物