主要内容

代码生成逻辑回归模型在分类学习者训练

这个例子展示了如何使用分类学习者训练逻辑回归模型,然后生成C代码标签使用导出的分类预测模型。

加载示例数据

示例数据并导入数据装载到分类学习者应用。

加载病人数据集。指定预测数据X组成的p预测和响应变量Y

负载病人X =(年龄舒张压高收缩压体重);p =大小(X, 2);Y =性别;

应用程序选项卡上,单击显示更多在右边的箭头应用程序部分显示画廊,并选择分类学习者。在分类学习者选项卡,文件部分中,选择新会话>从工作区

新会话从工作区对话框,下数据集变量中,选择X从工作空间变量的列表。下响应,单击从工作空间选项按钮,然后选择Y从列表中。接受默认的验证方案和继续,点击开始会议。默认的验证选项是5倍交叉验证,防止过度拟合。

默认情况下,数据的分类学习者创建了一个散点图。

训练逻辑回归模型

火车一个逻辑回归模型在分类学习者应用。

分类学习者选项卡,模型部分,单击显示更多箭头显示分类器的画廊。下逻辑回归分类器,单击逻辑回归模型。点击火车都并选择选择火车火车部分。应用列车模型并显示其交叉验证准确性分数准确性(验证)

模型导出到工作空间

导出模型的MATLAB®工作区并将其保存使用saveLearnerForCoder

出口部分中,选择出口模式>出口紧凑模式。在对话框中,指定trainedLogisticRegressionModel模型名称,然后单击好吧

结构trainedLogisticRegressionModel出现在MATLAB工作区。这个领域GeneralizedLinearModeltrainedLogisticRegressionModel包含了紧凑的模型。

注意:如果你与所有支持文件运行这个例子,您可以加载金宝apptrainedLogisticRegressionModel.mat文件在命令行而不是出口模式。的trainedLogisticRegressionModel使用前面的步骤中创建的结构。

负载(“trainedLogisticRegressionModel.mat”)

在命令行,紧凑模型保存到文件命名myModel.mat在当前文件夹。

saveLearnerForCoder (trainedLogisticRegressionModel.GeneralizedLinearModel“myModel”)

此外,保存的名称成功,失败,和失踪的训练模型的类。

一会= {trainedLogisticRegressionModel.SuccessClass,trainedLogisticRegressionModel.FailureClass trainedLogisticRegressionModel.MissingClass};保存(“ModelParameters.mat”,“类名”);

为预测生成C代码

定义预测的入口点函数,函数通过使用生成代码codegen

在当前文件夹中,定义一个函数命名classifyX.m做以下几点:

  • 接受一个数字矩阵(X)观察包含相同的预测变量的使用训练逻辑回归模型

  • 加载分类模型myModel.mat

  • 使用该模型计算预测概率

  • 将预测概率指标,1表示成功,2表示失败,3表示缺失值

  • 加载的类名ModelParameters.mat

  • 收益预测,索引标签的类名

函数标签= classifyX (X)% # codegen% CLASSIFYX使用逻辑回归模型进行分类在X % CLASSIFYX分类测量% myModel.mat使用逻辑回归模型的文件,%然后返回类标签的标签。n =大小(X, 1);标签= coder.nullcopy(细胞(n, 1));CompactMdl = loadLearnerForCoder (“myModel”);概率=预测(CompactMdl X);指数= ~ isnan(概率)。*((概率< 0.5)+ 1)+ isnan(概率)* 3;classInfo = coder.load (“ModelParameters”);一会= classInfo.classNames;i = 1: n标签{我}{指数(i)} =类名;结束结束

注意:如果你创建一个逻辑回归模型在分类学习者使用特征选择或主成分分析(PCA),你必须包括额外的代码入口点函数。例如显示这些额外步骤,明白了代码生成和分类学习者应用

生成一个墨西哥人功能classifyX.m。创建一个矩阵数据对于代码生成使用coder.typeof。指定的行数数据是任意的,但是呢数据必须有p列,p预测的数量被用来训练逻辑回归模型。使用arg游戏选项来指定数据作为参数。

data =编码器。typeof (X, [Inf p], [1 0]);codegenclassifyX.marg游戏数据
代码生成成功。

codegen墨西哥人文件生成classifyX_mex.mex64在当前文件夹。文件扩展名取决于你的平台。

验证墨西哥人函数返回预期的标签。随机画15观测X

rng (“默认”)%的再现性testX = datasample (X, 15);

通过使用分类的观察predictFcn功能分类模型训练分类学习者。

testLabels = trainedLogisticRegressionModel.predictFcn (testX);

通过使用生成的墨西哥人功能分类的观察classifyX_mex

testLabelsMEX = classifyX_mex (testX);

比较组预测。isequal返回逻辑1(真正的)testLabelstestLabelsMEX是相等的。

isequal (testLabels testLabelsMEX)
ans =逻辑1

predictFcn和墨西哥人功能classifyX_mex返回相同的值。

另请参阅

||(MATLAB编码器)|(MATLAB编码器)||

相关的话题