主要内容

导出回归模型预测新数据

将模型导出到工作区

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

请注意

最终的模型回归学习器输出总是使用完整的数据集进行训练。您使用的验证方案只影响应用程序计算验证指标的方式。您可以使用验证指标和各种可视化结果的图来为您的回归问题选择最佳模型。

下面是将模型导出到MATLAB的步骤®工作区:

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

  2. 在这方面回归的学习者标签,在出口部分,单击其中一个导出选项:

    • 要包含用于训练模型的数据,请单击出口模式并选择出口模式

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

    • 若要排除培训数据,请单击出口模式并选择出口紧凑的模型.此选项导出模型,并尽可能删除不必要的数据。对于某些模型,这是一个不包含训练数据的紧凑对象,但您仍然可以使用它对新数据进行预测。

  3. 在“导出模型”对话框中,选中导出变量的名称,并根据需要编辑它。然后,单击好的.导出模型的默认名称,trainedModel,每次导出时递增,以避免重写模型(例如,trainedModel1).

    新变量(例如,trainedModel)出现在您的工作区中。

    应用程序在命令窗口中显示关于导出模型的信息。阅读本文,学习如何利用新数据进行预测。

对新数据进行预测

当你从Regression Learner中导出一个模型到工作区,或者运行应用程序生成的代码后,你会得到一个trainedModel您可以使用新数据进行预测的结构。该结构包含模型对象和用于预测的函数。该结构使您可以对包含主成分分析(PCA)的模型进行预测。

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

    yfit = trainedModel.predictFcn (T)
    在哪里trainedModel是导出变量的名称。

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

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

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

    输出yfit包含对每个数据点的预测。

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

    trainedModel。HowToPredict

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

产生MATLAB用新数据训练模型的代码

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

生成MATLAB代码:

  • 在庞大的数据集上进行训练。探索应用程序中训练数据子集的模型,然后生成代码以在更大的数据集上训练选定的模型。

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

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

  • 修改代码以进行进一步分析,例如设置应用程序中不能更改的选项。

  • 重复你对不同数据的分析和自动化训练。

生成代码并使用它来训练带有新数据的模型:

  1. 在应用程序中,从模型窗格,选择要生成代码的模型。

  2. 在这方面回归的学习者标签,在出口部分,点击生成函数

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

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

    复制生成的代码的第一行,排除了单词功能,并编辑trainingData输入参数以反映培训数据或新数据的变量名称。同样,编辑Respolatedata.输入参数(如果适用)。

    例如,重新训练一个回归模型cartable数据集,输入:

    [trainedModel, validationRMSE] = trainRegressionModel (cartable)

    生成的代码返回atrainedModel包含与您在从回归学习者导出到工作区时创建的结构相同字段的结构。

如果您想用新数据自动训练相同的模型,或者学习如何以编程方式训练模型,请检查生成的代码。代码告诉你如何:

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

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

  • 执行交叉验证。

  • 计算统计数据。

  • 计算验证预测和分数。

请注意

如果您从一个训练有素的可优化模型生成MATLAB代码,生成的代码不包括优化过程。

生成C代码的预测

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

模型类型 基本模型对象
线性回归 LinearModel或者CompactLinearModel
决策树 RegressionTree或者compactregressiontree.
金宝app支持矢量机器 RegressionSVM或者CompactRegressionSVM
高斯过程回归 RegressionGP或者CompactRegressionGP
合奏 RegressionEnsemblecompactregressionensemble, 或者回归释迦缩短

C代码需要:

  • MATLAB编码器™执照

  • 合适的模型

  1. 例如,在Regression Learner中训练树模型,然后将模型导出到工作空间。

    在导出的结构中找到底层回归模型对象。检查结构的字段以查找模型对象,例如,S.regressiontree.,在那里年代是您的结构的名称。

    底层模型对象取决于您是否导出了紧凑模型。模型对象可以是RegressionTree或者compactregressiontree.目的。

  2. 使用功能saveLearnerForCoder为代码生成准备模型:saveLearnerForCoder (Mdl文件名).例如:

    Savelarnerforcoder(S.regressiontree,“myTree”

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

    功能yfit = predictY (X)%#codegen.使用树模型预测响应% PREDICTY使用X中的测量值文件mytree.mat中的%和树模型。然后%回报预测响应在yfit。CompactMdl = loadLearnerForCoder (“myTree”);yfit =预测(CompactMdl X);结束
  4. 从函数生成一个MEX函数。例如:

    Codegen.预测..M.arg游戏{数据}
    %#codegen.编译指令表明MATLAB代码用于代码生成。要确保MEX函数可以使用相同的输入,请使用arg游戏选择。指定数据作为仅包含用于训练模型的预测列的矩阵。

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

    yfit = predictY_mex(数据);

如果你在应用程序中使用特征选择或PCA特征转换,那么你需要采取额外的步骤。如果您使用手动特性选择,请在X.的X参数是您功能的输入。

如果在应用程序中使用PCA,请使用导出结构的PCA字段中的信息考虑此转换。只要您导入应用程序或将矩阵导入应用程序,无论是否进入应用程序X以相同顺序包含矩阵列。在生成代码之前,遵循以下步骤:

  1. 保存训练后的回归结构的PCACenters和pcacoeffents字段,年代修改文件时,使用以下命令:

    保存(“pcaInfo.mat”“结构”“年代”“PCACenters”'pcacoeffices');

  2. 在函数文件中,包括执行PCA转换的附加行。创建一个函数来加载保存的模型,执行PCA,并对新数据进行预测。例如:

    功能yfit = predictY (X)%#codegen.使用树模型预测响应% PREDICTY使用X中的测量值mytree.mat中的%和树模型.mat。%然后返回YFIT中的预测响应。%如果在应用程序中使用了手动功能选择,请确保x%只包含模型中包含的列。CompactMdl = loadLearnerForCoder (“myTree”);pcaInfo = coder.load (“pcaInfo.mat”“PCACenters”'pcacoeffices');PCACenters = pcaInfo.PCACenters;PCACoefficients = pcaInfo.PCACoefficients;%进行PCA变换pcaTransformedX = bsxfun (@minus X, PCACenters) * PCACoefficients;yfit =预测(CompactMdl pcaTransformedX);结束

有关C代码生成工作流和限制的更多信息,请参见代码生成.对于例子,见saveLearnerForCoderloadlearnerforcoder

使用MATLAB编译器部署预测

将模型从回归学习者导出到工作区后,您可以使用它部署MATLAB编译器™

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

  • 保存trainedModel结构在.mat文件中。

    节省mymodel.trainedModel
  • 编写要编译的代码。此代码必须加载经过训练的模型并使用它进行预测。它还必须有一个pragma,这样编译器就会识别出Statistics和Machine Learning Toolbox™代码在编译的应用程序中是需要的。此语用可以是回归学习者中使用的任何模型训练函数(例如,fitrtree).

    功能ypred = mypredict(tbl)% #函数fitrtree加载('mymodel.mat');ypred = trainedModel.predictFcn(台);结束
  • 编译为独立的应用程序。

    MCC.-M.mypredict.m

导出用于部署的模型到MATLAB生产服务器

在回归学习者中培训模型后,您可以将模型导出以进行部署MATLAB生产服务器™(需要MATLAB编译器SDK™).

  • 选择训练有素的模型模型窗格。在这方面回归的学习者标签,在出口部分,点击出口模式并选择导出部署模型

  • 在“为模型部署选择项目文件”对话框中,选择项目文件的位置和名称。

  • 自动生成的预测函数..根据需要对规范进行归档、检查和修改。

  • 使用Production Server Compiler应用程序打包你的模型和预测函数。您可以模拟模型部署到MATLAB生产服务器通过单击测试客户端按钮在测试部分的编译器选项卡,然后通过单击“包装代码”按钮在部分。

例如,看到将回归学习器中训练的模型部署到MATLAB生产服务器.有关更多信息,请参阅为MATLAB生产服务器创建可部署归档(MATLAB生产服务器)

另请参阅

功能

课堂

相关话题