主要内容

部署模型训练分类学习者MATLAB生产服务器

这个例子展示了如何训练模型分类学习者和出口部署MATLAB®生产服务器™。这个流程需要MATLAB编译器SDK™

选择训练模式部署

  1. 在命令窗口中,加载病人数据集,创建一个表中的变量数据集的一个子集。每一行patientTbl对应于一个病人,每一列对应一个诊断变量。

    负载病人patientTbl =表(年龄、舒张压、性别、身高、SelfAssessedHealthStatus、收缩压、体重、吸烟);

  2. 转换SelfAssessedHealthStatus变量顺序分类预测。

    patientTbl。SelfAssessedHealthStatus =分类(patientTbl.SelfAssessedHealthStatus,(“穷”,“公平”,“好”,“优秀”),“顺序”,真正的);

  3. 从命令窗口,打开分类学习者应用。填充新会话参数与预测数据对话框patientTbl和响应变量吸烟者

    classificationLearner (patientTbl“抽烟”)
    默认的验证选项是5倍交叉验证,防止过度拟合。对于这个示例,不要修改默认的验证设置。

  4. 接受选择的新会话参数对话框,继续,点击开始会议

  5. 培训所有预设的模型。在分类学习者选项卡,模型部分,单击箭头打开画廊。在开始组中,单击所有。在火车部分中,点击火车都并选择火车都。应用列车所有预设的模型,以及默认好树模型,并显示的模型模型窗格。

    请注意

    • 如果你有并行计算工具箱™,那么应用程序的使用并行默认按钮进行切换。你点击后火车都并选择火车都选择火车应用程序打开一个平行的工人。在这段时间里,你不能与软件交互。池打开后,可以继续与应用程序交互,同时并行模型火车。

    • 如果你没有并行计算工具箱,然后应用程序了使用背景培训复选框的火车都菜单默认选中。你选择一个选项来训练模型后,应用程序打开一个背景池。池打开后,可以继续与应用程序交互,同时在后台模型火车。

    这个应用程序显示一个混淆矩阵的第二好树模型(模型2.1)。蓝色值指示正确分类,红色值显示不正确的分类。的模型左边的面板显示了每个模型的验证的准确性。

  6. 基于验证的模型精度。在模型窗格中,打开排序列表并选择准确性(验证)。应用程序概述了标准最高的模型(或模型)验证精度。

  7. 选择模型模型窗格中精度最高的验证。

出口模式部署

  1. 导出部署到所选模型MATLAB生产服务器。在分类学习者选项卡上,单击出口,点击出口模式并选择出口模式部署

  2. 在选择项目文件模型部署对话框中,选择您的项目文件的位置和名称。对于这个示例,使用默认的项目名称ClassificationLearnerDeployedModel.prj。点击保存

    生产服务器编译器打开的软件应用程序和自动生成predictFunction.m文件。

    编译器标签的生产服务器编译器应用,导出功能部分包含的文件modelInformation.mpredictFunction.m。一节你所需的额外文件存档包括文件processInputData.mTrainedClassificationModel.mat

  3. 更新文件中的代码processInputData.mpredictFunction.m包括执行预处理步骤之前进口数据分类学习者。打开processInputData.m文件从ClassificationLearnerDeployedModel_resources文件夹,然后更改代码的转换SelfAssessedHealthStatus变量顺序分类预测。

    函数processedData = processInputData T (T)。SelfAssessedHealthStatus= categorical(T.SelfAssessedHealthStatus,(“穷”,“公平”,“好”,“优秀”),“顺序”,真正的);processedData = T;结束

  4. predictFunction.m文件,取消注释以下行代码,这样predictFunction函数调用的processInputData函数。

    processedData = processInputData (T);T = processedData;

  5. 编辑predictFunction.m代码的函数返回两个输出,标签分数,而不是单一的输出结果。更新的函数签名的第一行代码。

    函数(标签、分数)= predictFunction(变长度输入宗量)
    然后,更新结果= model.predictFcn (T);行代码包括两个输出参数。
    (标签、分数)= model.predictFcn (T);

    也更新注释掉的描述predictFunction功能包括新的输出参数的描述。标签包含标签返回的训练模型,预测分数包含预测分数返回的训练模式。

  6. 关闭文件predictFunction.mprocessInputData.m

(可选)模拟模型部署

包装之前部署到您的代码MATLAB生产服务器,你可以使用MATLAB模拟模型部署客户端。完成这个过程需要打开另一个实例的MATLAB。为例,展示了如何使用一个示例Java®客户端将数据发送到一个MATLAB函数部署在服务器上,看到的评估使用Java客户机部署的机器学习模型(MATLAB生产服务器)

  1. 在生产服务器编译器应用程序,单击测试客户端按钮测试上节编译器选项卡。

  2. 测试选项卡,服务器操作部分,单击开始按钮。请注意地址中列出服务器地址在这个例子中是窗格http://localhost: 9910 / DeployedClassificationModel

  3. MATLAB的打开一个新实例。

    在新的MATLAB实例,生产服务器编译器应用程序自动打开。关闭这个应用程序的实例。

  4. 在新的MATLAB实例的命令窗口,负荷预测和响应数据。确保数据具有相同的格式作为训练数据分类学习者使用。

    负载病人patientTbl =表(年龄、舒张压、性别、身高、SelfAssessedHealthStatus、收缩压、体重、吸烟);patientTbl。SelfAssessedHealthStatus =分类(patientTbl.SelfAssessedHealthStatus,(“穷”,“公平”,“好”,“优秀”),“顺序”,真正的);

  5. 准备发送的数据MATLAB生产服务器

    你必须分类变量和表转换为细胞数组和结构,分别在发送之前MATLAB生产服务器。因为SelfAssessedHealthStatus是分类变量和patientTbl是一个表,过程输入数据发送前进一步。

    inputTbl = patientTbl;columnNames = patientTbl.Properties.VariableNames;i = 1:长度(columnNames)如果iscategorical (patientTbl。(columnNames{我}))inputTbl。(columnNames{我})= cellstr (patientTbl。(columnNames{我}));结束结束inputData = table2struct (inputTbl);

  6. 把输入数据MATLAB生产服务器。使用服务器地址显示在生产服务器编译器应用程序。

    jsonData = mps.json.encoderequest ({inputData},“Nargout”2);URL =“http://localhost: 9910 / DeployedClassificationModel / predictFunction”;选择= weboptions (“MediaType”,“application / json”,“超时”,30);响应= webwrite (URL、jsonData选项);

    在最初的MATLAB实例中,打开生产服务器编译器程序,MATLAB执行请求窗格下测试选项卡显示一个成功的请求服务器和MATLAB端之间。

  7. 在新的MATLAB实例的命令窗口,提取标签和分数的预测响应变量。检查预测的值是正确的。

    标签= response.lhs {1};成绩= response.lhs {2};

  8. 在最初的MATLAB实例中,在生产服务器编译器应用程序,点击停止服务器操作上节测试选项卡。在关闭部分中,点击关闭测试

包代码

  1. 使用生产服务器编译器应用程序打包您的模型和预测功能。在编译器选项卡,部分,单击按钮。

  2. 在包的对话框,确认选择打开流程完成时输出文件夹被选中。

    部署过程完成后,检查生成的输出。

    • for_redistribution——文件夹包含DeployedClassificationModel.ctf文件

    • for_testing——文件夹包含所需的原始生成的文件创建安装程序

    • PackagingLog.html,生成的日志文件MATLAB编译器SDK

相关的话题