主要内容

使用ClassificationEnsemble预测块预测类标签

这个例子展示了如何训练一个具有最优超参数的集成模型,然后使用ClassificationEnsemble预测在Simulink®中用于标签预测的块。金宝app该块接受一个观测(预测数据),并使用训练的分类集成模型返回观测的预测类标签和类得分。

最优超参数训练分类模型

加载信用评级数据集。该数据集包含客户id及其财务比率、行业标签和信用评级。确定样本量。

tbl=可读(“CreditRating_Historical.dat”);n =元素个数(台)
n = 31456

显示表的前三行。

头(资源描述,3)
ans =3×8表ID WC_TA RE_TA EBIT_TA MVE_BVTD S_TA行业评级  _____ _____ _____ _______ ________ _____ ________ ______ 62394 0.013 0.104 0.036 0.447 0.142 3{“BB”}48608 0.232 0.335 0.062 1.969 0.281 8 {A} 42444 0.311 0.367 0.074 1.935 0.366 1 {A}

资源描述。行业是一个行业标签的分类变量。当您训练ClassificationEnsemble Predict块的模型时,您必须使用dummyvar函数在模型中包含分类预测值。您不能使用“CategoricalPredictors”名称值参数。为创建虚拟变量资源描述。行业

d = dummyvar (tbl.Industry);

dummyvar的每个类别创建虚拟变量资源描述。行业.确定中类别的数量资源描述。行业以及虚拟变量的数量d

独特的(tbl.Industry) '
ans =1×1212 3 4 5 6 7 8 9 10 11 12
尺寸(d)
ans =1×23932年12

为预测变量创建一个数值矩阵,为响应变量创建一个单元格数组。

X=表2阵列(待定(:,2:6))d];Y=待定额定值;

X是一个数字矩阵,包含17个变量:5个财务比率和工业标签的12个虚拟变量。X不使用资源描述。ID因为这个变量对预测信用评级没有帮助。Y是字符向量的单元格数组,其中包含相应的信用评级。

假设您按顺序接收了数据,并且已经有了前3000个观测值,但还没有收到最后932个。将数据划分为当前和未来的样本。

prsntX = X (1:3000:);prsntY = Y (1:3000);ftrX = X(3001年:,);ftrY = Y(3001:结束);

使用所有当前可用的数据训练集合prsntXprsntY这些选项:

  • 指定“OptimizeHyperparameters”作为“汽车”训练具有最佳超参数的合奏“汽车”选项查找的最佳值“方法”“NumLearningCycles”“LearnRate”(适用方法)fitcensemble“MinLeafSize”树的学习者。

  • 为了重现性,设置随机种子并使用“预期改善加成”采集功能。此外,对于随机森林算法的再现性,请指定“复制”作为符合事实的树的学习者。

  • 属性指定类的顺序“类名”名称值参数。来自分数ClassificationEnsemble Predict块的端口具有相同的顺序。

rng(“默认”) t = templateTree(“复制”,对);ensMdl=fitcensemble(prsntX,prsntY,...“类名”,{“AAA”“AA”“一个”“BBB”“BB”“B”“CCC”},...“OptimizeHyperparameters”“汽车”“学习者”T...“HyperparameterOptimizationOptions”...结构(“AcquisitionFunctionName”“预期改善加成”))
|第二个月月第第1第1第第1第第1第第1第第1第第第第1第第第第第第第第第第第第第第第第第第第第1礼礼礼礼第第第第第第第第第第第第第第第第1礼第第第第第第第1礼第第第第1礼第第第第第第第第第1礼第第第第第第第第第第第第第第1礼第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第1礼第第第第第第第第第第第第第第第第第第第第第第1礼第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第1礼第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第| MinLeafSize | | | | | | |结果| |运行时|(已观察)|(估计)第三个月月月,第12个月月月,第12个月月月,第12个月月,第12个月月月月月月月月月第三个月月月第第第4第第第7列列列列列列列第第4列第四个月月月月月月月月月月的第四个月月月月月月月第列列列列列列第第第第第=========第第第第第第第=====================第第第第第第第第第第第第第第第=====================第第第第第第第第第第第====================================第第第第第第第第第第第第第第第第第=======================================第第第第第第第第第第第第第第第第第第第=============================================第第第第第第第第第第第第第第第124; 0.51133 | AdaBoostM2 | 429 | 0.082478 | 871 | 2 |最佳| 0.26133 | 18.827 | 0.26133 | 0.27463 | AdaBoostM2 | 492 | 0.19957 | 4 | 3 |接受| 0.85133 |0.76925 0 0.6 6 6 5 5 0.6 6 6 6 5 5 5 5 5 0 0.6 6 6 5 5 5 0 0 0.6 6 6 6 6 6 0 0 0.6 6 6 5 5 5 0 0 0 0 0.6 6 6 6 6 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 0.6 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 3 3 3 3 3 3 3 3 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.6 6 6 6 6 6 6 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3|接受| 0.28933 | 1.7101 | 0.26 | 0.2602 |包| 36 |-101 | 7 |最佳| 0.25667 | 1.3583 | 0.25667 | 0.25726 | AdaBoostM2 |0.244 5 12400 0.244 0.244 0.244 0.244 4 0.244 4 0.244 4 4 0.244 4 4 0.244 4 4 0 0 0.244 4 0 0 0.244 4 0 0 0.244 5 5 5 5 5 5 0 0 0 0 0 0.244 0 0 0 0 0 0.244 5 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 0 0 0 0 0 0 0 0 4 4 4 4 4 4 4 4 4 4 4 4 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 0 0 0 0 0 0 0\\\\12444 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 AdaBoostM2 | 33 | 0.99516 | 1 | 11 |接受| 0.25733 | 1.5294 | 0.244 | 0.2442 |包| 25 | 8 | 12 |接受| 0.74267 | 16.444 |0.244 0.244 0.244 0.244 0.244 4 0.244 4 0.244 0.244 0.244 0.244 0.244 0.244 0.244 0.244 0.244 0.244 4 0.244 4 0.244 4 4 4 0.244 4 4 4 0.244 4 4124四四四四\124四四四四四四四四四四四四\\\12444 4 4 4四四四四四四四四四四四四四四四四四四\\\\124;;;;;;;;;;;;;;;124周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四;13\\\|;| 0.71501 | 0.244 | 0.24557 | RUSBoost | 12 | 0.48085 | 6 | 16 |接受| 0.267 | 17.82 | 0.244 1246 | AdaBoostM2 | 484|0.0.0 0.0 0.0 0 0.28282818 1812400 0.0 0 0.0 0 0.24244 4 0.244 0.244 0.244 0 0.244 4 4 0.0 0 0 0.0 0 0 0 0.281812400 0 0 0 0 0 0.0 0 0 0.0 0 0 0 0.244 4 4 4 4 4 4 0 0.244 4 4 4 4 0 0 0 0 0 0 0 0 0.244 4 0 0 0 0 0 0 0 0 0 0 0124181812400 0 0 012400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0””””””””””””””””””””””””””””,”,”,”,”,”10 10 10 10 10 0.2424244 4 4 4 4 4”””””””””0 0 0 0| 473 |-|3 | 20 |接受| 0.259 | 19.187 | 0.244 | 0.24488 | AdaBoostM2 | 497 | 0.67001 | 19 ||第二个月月第第1第1第第1第第1第第1第第1第第第第1第第第第第第第第第第第第第第第第第第第第1礼礼礼礼第第第第第第第第第第第第第第第第1礼第第第第第第第1礼第第第第1礼第第第第第第第第第1礼第第第第第第第第第第第第第第1礼第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第1礼第第第第第第第第第第第第第第第第第第第第第第1礼第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第1礼第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第| MinLeafSize | | | | | | |结果| |运行时|(已观察)|(估计)第三方方第第第第二方第第第二方第第7 7第第7第第第7第第7第第第第第第二方第第===第第第第第第第第第第第第第二方第第=======================================第第第第第第第第4列列列列列列列列列第第第第第第第============第第第第第第第===========================第第第第第第第第第第第===========================第第第第第第第第第第第第第第第第第第==============================第第第第第第第第第第第第第第第第====================================第第第第第第第第第第第第第第第第第第第第第第第=================================第第第第第第第第第第第第第第第第0.24468 | RUSBoost | 386 | 0.91461 | 2 | 22 |接受| 0.245 | 32.172 | 0.244 | 0.2441 |包| 482 |-4 | 23 |接受| 0.244 | 33.117 | 0.244 |0.244 0.2412400 0.244 0.244 0.244 0.244 0.24 0 0.244 0.244 0.244 0.244 0.244 0 0.244 0 0.244 0 0.244 0 0 0.244 4 0 0 0 0.244 4 4 0 0 0.244 4 4 4 4 4124441244四四四四四四四四四\12444 4 4 4 4 4\12444 4 4 4四四四四四四四四四四四四四四\\\\12444 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4\|;1244四四四四四四四四四四四四)接受接受接受接受接受接受接受接受接受接受接受0 0 0 0 0.244 0 0 0 0.244 0 0 0.244 0 0.0.24371 | AdaBoostM2 | 12 | 0.87848 | 53 | 27 |接受| 0.263 | 0.52438 | 0.24371 | AdaBoostM2 | 11 | 0.6978 | 2 | 28 |接受0.2430 0 0.2430 0 0.244 4四四四四1242444 412444 41244四四四12444 4四四四12444 4 4 4四四四四四四四四0 0 0.2430 0 0.2430 0 0.244四四四0.244四四四四四0.244四四四四四四四四四\1244四四四四四四四四四四\1244四四四四四四四\124四四四四四四四\|;接受接受0 0 0 0 0 0 0 0 0 0 0 0.244 0 0 0 0 0.244四四四四四四四四四四四四0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.244四四四四四四四四四四四四四四四四四四四四四四四| 3|

__________________________________________________________ 优化完成。maxobjective达到30个。总函数计算:30总运行时间:488.5833秒总目标函数计算时间:464.2275最佳观测可行点:方法NumLearningCycles LearnRate MinLeafSize ______ _________________ _________ ___________ Bag 499 NaN 5观测目标函数值= 0.243估计目标函数值= 0.24342函数评估时间= 33.1343最佳估计可行点(根据模型):方法NumLearningCycles LearnRate MinLeafSize ______ _________________ _________ ___________ Bag 499 NaN 5估计目标函数值= 0.24342估计函数评估时间= 32.1002
ensMdl=ClassificationBaggedAssemble ResponseName:'Y'分类预测值:[]类名:{'AAA''AA''A''BBB''BB''B''CCC'}ScoreTransform:'none'NumObservations:3000超参数优化结果:[1×1 BayesianOptimization]NumTrained:499方法:'Bag'LearnerNames:{'Tree'}ReasonForTermination:'在完成请求的训练周期数后正常终止。'FitInfo:[]FitInfoDescription:'无'F示例:1替换:1 UseObsForLearner:[3000×499逻辑]属性、方法

fitcensemble返回一个ClassificationBaggedEnsemble对象,因为该函数找到随机森林算法(“包”)作为优化方法。

创建Simul金宝appink模型

这个例子提供了Simulink模型金宝appslexCreditRatingClassificationEnsemblePredictExample.slx,其中包括ClassificationEnsemble预测块。您可以打开Simulink模型或按本节所述创金宝app建新模型。

打开Simulin金宝appk模型slexCreditRatingClassificationEnsemblePredictExample.slx

SimMdlName =“SLEXCreditingClassificationnSemblePredictExample”;开放式系统(SimMdlName)

PreLoadFcn的回调函数slexCreditRatingClassificationEnsemblePredictExample包括加载样本数据、使用最优超参数训练模型以及为Simulink模型创建输入信号的代码。金宝app如果打开Simulink模型,软金宝app件就会运行代码PreLoadFcn加载Simulink模型之前。金宝app要查看回调函数,请在设置上节建模选项卡上,单击模型设置并选择模型属性.然后,在回调选项卡中,选择PreLoadFcn中的回调函数模型回调窗玻璃

要创建新的Simulink模型,金宝app请打开空白模型模板,并添加ClassificationEnsemble Predict块。添加import和Outport块,并将它们连接到ClassificationEnsemble Predict块。

双击ClassificationnSemble Predict块以打开“块参数”对话框。指定选择经过训练的机器学习模型参数,ensMdl,它是包含训练模型的工作空间变量的名称。单击刷新按钮。对话框显示用于训练模型的选项ensMdl训练有素的机器学习模型.选择添加预测类分数的输出端口复选框以添加第二个输出端口分数

ClassificationnSemble Predict块需要一个包含17个预测值的观察值。双击Input块,然后设置端口尺寸到17号信号属性选项卡。

以Simulink模型的结构阵列形式创建输入信号。结构数组必须包含以下字段:金宝app

  • 时间-观测数据进入模型的时间点。在本例中,持续时间包括从0到931的整数。方位必须与预测器数据中的观测值相对应。在这种情况下,时间必须是列向量。

  • 信号—描述输入数据并包含字段的1 × 1结构数组价值观尺寸,在那里价值观是预测数据的矩阵,和尺寸是预测变量的数量。

为将来的示例创建一个适当的结构数组。

creditRatingInput.time=(0:931)';积分输入信号(1)。值=ftrX;积分输入信号(1)。尺寸=尺寸(ftrX,2);

从工作区导入信号数据:

  • 打开“配置参数”对话框。在建模选项卡上,单击模型设置

  • 数据导入/导出窗格中,选择输入复选框,并输入creditRatingInput在相邻的文本框中。

  • 解算器窗格中,在模拟时间,设置停止时间creditRatingInput.time(结束).下解算器选择,设置类型固定步,并设置解算器离散(无连续状态)

有关详细信息,请参见用于模拟的负载信号数据(金宝app模型)

模拟模型。

sim(SimMdlName);

当import块检测到一个观察结果时,它将该观察结果导向ClassificationEnsemble Predict块。你可以使用仿真数据检查(金宝app模型)查看Outport块的记录数据。

另请参阅

相关话题