主要内容

导出回归模型以预测新数据

将模型导出到工作空间

在交互式在回归学习者应用程序中创建回归模型后,您可以将最佳模型导出到工作区。然后,您可以使用该培训的模型来使用新数据进行预测。

最终模型回归学习者出口始终使用完整数据集进行培训。您使用的验证方案仅影响应用程序计算验证度量的方式。您可以使用验证度量和各种绘图可视化结果,以便为您的回归问题选择最佳模型。

以下是将模型导出到MATLAB的步骤®工作空间:

  1. 在应用程序中,选择要导出的模型楷模窗格。

  2. 回归学习者标签,在出口节中,单击其中一个导出选项:

    • 要包括用于培训模型的数据,请选择出口模式.

      您将训练模型导出到工作区作为包含回归模型对象的结构。

    • 要排除培训数据,请选择出口紧凑型号.此选项可在可能的情况下将模型导出使用不必要的数据。对于某些型号,这是一个不包括培训数据的紧凑型对象,但您仍然可以使用它来对新数据进行预测。

  3. 在“导出模型”对话框中,检查导出变量的名称,如果需要,可对其进行编辑。然后,单击.导出模型的默认名称,训练模型,每次导出时递增以避免覆盖模型(例如,训练显示器1)。

    新变量(例如,训练模型)显示在您的工作区中。

    该应用程序显示有关命令窗口中导出的模型的信息。阅读消息以了解如何使用新数据进行预测。

预测新数据

从回归学习器将模型导出到工作区后,或运行应用程序生成的代码后,您将获得训练模型可用于使用新数据进行预测的结构。该结构包含一个模型对象和一个预测函数。该结构使您能够对包含主成分分析(PCA)的模型进行预测。

  1. 使用导出的模型对新数据进行预测,T:

    yfit=训练模型预测fcn(T)
    哪里训练模型是导出变量的名称。

    提供数据T具有与应用程序(表或矩阵)中使用的培训数据相同的格式和数据类型。

    • 如果您提供了一个表,那么请确保它包含与培训数据相同的预测值名称。这个预测忽略表中的其他变量。可变格式和类型必须与原始培训数据匹配。

    • 如果提供矩阵,它必须包含与训练数据相同的预测列或行,顺序和格式相同。不要包含响应变量、未在应用程序中导入的任何变量或其他未使用的变量。

    输出伊菲特包含每个数据点的预测。

  2. 检查导出结构的字段。要获得预测帮助,请输入:

    培训模型。如何预测

您还可以从导出的结构中提取模型对象以进行进一步分析。如果在应用程序中使用诸如PCA等的功能转换,则必须通过使用结构的PCA字段中的信息来考虑此转换。

生成马铃薯用新数据训练模型的代码

在回归学习器应用程序中以交互方式创建回归模型后,可以为最佳模型生成MATLAB代码。然后,您可以使用代码使用新数据训练模型。

生成matlab代码:

  • 在巨大的数据集上训练。探索在数据子集上培训的应用程序中的模型,然后在更大的数据集上生成要培训所选模型的代码。

  • 为培训模型创建脚本,而无需了解不同功能的语法。

  • 检查代码以了解如何以编程方式培训模型。

  • 修改代码以进行进一步的分析,例如要设置您无法在应用程序中更改的选项。

  • 对不同的数据重复分析,并使培训自动化。

要生成代码并使用它培训具有新数据的模型:

  1. 在应用中,来自楷模窗格中,选择要为其生成代码的模型。

  2. 回归学习者标签,在出口部分,单击生成函数.

    该应用程序从您的会话生成代码,并在MATLAB编辑器中显示该文件。该文件包括预测器和响应,模型训练方法和验证方法。保存文件。

  3. 要重新训练模型,请使用原始数据或新数据作为输入参数从命令行调用函数。新数据必须与原始数据具有相同的形状。

    复制生成代码的第一行,不包括单词功能,并编辑TrainingData.输入参数以反映训练数据或新数据的变量名。同样,编辑响应数据输入参数(如果适用)。

    例如,重新培训培训的回归模型可携式数据集,输入:

    [TroundModel,ValidationRmse] = TrainRegressionModel(Cartable)

    生成的代码返回a训练模型当您将来自回归学习者导出到工作区时,包含与您创建的结构相同的字段的结构。

如果要自动培训与新数据相同的模型,或者学习如何编程方式培训模型,请检查生成的代码。代码向您展示如何:

  • 将数据处理成正确的形状。

  • 训练模型并指定所有模型选项。

  • 执行交叉验证。

  • 计算统计数据。

  • 计算验证预测和分数。

如果从经过训练的可优化模型生成MATLAB代码,则生成的代码不包括优化过程。

生成用于预测的C代码

如果您使用回归学习者培训此表中的其中一个模型,则可以生成用于预测的C代码。

模型类型 底层模型对象
线性回归 linearmodel.要么紧凑线性模型
决策树 回归植物要么Compactregressiontree.
金宝app支持矢量机器 回归vm.要么compactregressionsvm.
高斯过程回归 regressiongp.要么紧回归
合奏 回归套,压缩回归套回归释迦缩短

C代码需要:

  • MATLAB编码器™执照

  • 适当的模型

  1. 例如,在回归学习器中训练树模型,然后将模型导出到工作区。

    在导出的结构中找到底层回归模型对象。检查结构的字段以查找模型对象,例如,回归树, 在哪里S是你结构的名称。

    基础模型对象取决于是否导出了精简模型。模型对象可以是回归植物要么Compactregressiontree.目的。

  2. 使用功能Savelarnerforcoder.要为代码生成准备模型,请执行以下操作:saveLearnerForCoder(Mdl,文件名).例如:

    SavelAlnerForcoder(S.regressionTree,'mytree')

  3. 创建一个函数,用于加载保存的模型并对新数据进行预测。例如:

    功能YFIT =预测(x)%#编码基因%预测使用树模型预测响应%预测使用x中的测量值mytree.mat中的%和树模型。%返回YFIT中的预测响应。CompactMDL = LoadLearnerForCoder('mytree'); yfit=预测(压缩MDL,X);结尾
  4. 从函数生成一个MEX函数。例如:

    编码基因预测..M.-args{数据}
    这个%#编码基因编译指令表示MATLAB代码用于代码生成。为确保MEX功能可以使用相同的输入,请将工作区中的数据指定为使用该函数的参数-args选项。指定数据作为仅包含用于训练模型的预测列的矩阵。

  5. 使用MEX函数进行预测。例如:

    Yfit = predicty_mex(数据);

如果您在应用程序中使用了特征选择或PCA特征转换,则需要执行其他步骤。如果使用手动要素选择,请在中提供相同的列X.这个X参数是函数的输入。

如果您在应用程序中使用PCA,请使用导出结构的PCA字段中的信息考虑此转换。无论您将表格还是矩阵导入应用程序,都无关紧要X以相同的顺序包含矩阵列。在生成代码之前,请按照下列步骤操作:

  1. 保存培训的回归结构的PCaCenters和PCACoeffices字段,S,使用以下命令文件:

    节省(“pcaInfo.mat”,'--truct','S',“PCACenters”,'pcacoeffices');

  2. 在函数文件中,包括其他行以执行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编译器部署预测

将模型从回归学习器导出到工作区后,可以使用Matlab Compiler™.

假设您根据指令将培训的模型导出到MATLAB工作区将模型导出到工作空间,姓名为训练模型.要部署预测,请按照下列步骤操作。

  • 保存训练模型.mat文件中的结构。

    节省我的模型训练模型
  • 编写要编译的代码。此代码必须加载培训的模型并使用它来进行预测。它还必须具有Pragma,因此编译器认识到编译应用程序中需要统计和机器学习工具箱™代码。此Pragma可以是工具箱中的任何功能。

    功能ypred = mypredict(tbl)%#函数fitrtree装载('mymodel.mat'); ypred=训练模型预测FCN(待定);结尾
  • 作为独立应用程序编译。

    MCC.-M.mypredict.m

另见

功能

班级

相关话题