主要内容

このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

RegressionEnsemble预测ブロックの使用による応答の予測

この例では,最適なハイパーパラメーターでアンサンブルモデルの学習を行い,RegressionEnsemble预测ブロックをS金宝appimulink®の応答予測に使用する方法を示します。このブロックは,観測値(予測子データ)を受け入れて,学習済みのアンサンブル回帰モデルを使用することにより,その観測値の予測された応答を返します。

最適なハパパラメタでの回帰モデルの学習

carbigデ,タセットを読み込みます。このデータセットには,1970年代と1980年代初期に製造された自動車の測定値が格納されています。

负载carbig
名称大小字节分类属性加速度406x1 3248双气缸406x1 3248双排量406x1 3248双马力406x1 3248双MPG 406x1 3248双Mfg 406x13 10556 char型号406x36 29232 char Model_Year 406x1 3248双原产地406x7 5684 char重量406x1 3248双cyl4 406x5 4060 char org 406x7 5684 char当406x5 4060 char

起源はカテゴリカル変数です。RegressionEnsemble预测ブロックのモデルの学習を行う場合,カテゴリカル予測子をモデルに含めるには,関数dummyvarを使用してカテゴリカル予測子を前処理しなければなりません。名前と値の引数“CategoricalPredictors”は使用できません。起源にいてダミ変数を作成します。

c_Origin = categorical(cellstr(Origin));d_Origin = dummyvar(c_Origin);

c_Originの各カテゴリに対応するダミ,変数がdummyvarで作成されます。c_Originのカテゴリの数とd_Originのダミ,変数の数を調べます。

独特的(cellstr(起源))
ans =7 x1细胞{“英格兰”}{“法国”}{“德国”}{“意大利”}{‘日本’}{“瑞典”}{'美国'}
大小(d_Origin)
ans =1×2406年7

起源の各カテゴリに対応するダミ,変数がdummyvarで作成されます。

6の数値予測子変数と起源の7のダミ変数を格納する行列を作成します。また,応答変数のベクトルを作成します。

X =[加速度,气缸,排量,马力,型号,年份,重量,d_Origin];Y = mpg;

XおよびYと次のオプションを使用してアンサンブルの学習を行います。

  • 最適なハパパラメタでアンサンブルの学習を行うために,“OptimizeHyperparameters”“汽车”に指定します。“汽车”オプションは,fitrensemble“方法”“NumLearningCycles”,および“LearnRate”(適用可能な手法)と木学習器の“MinLeafSize”にいて最適な値を探します。

  • 再現性を得るために,乱数シ,ドを設定し,“expected-improvement-plus”の獲得関数を使用します。また,ランダムフォレストアルゴリズムの再現性を得るため,木学習器の“复制”真正的に指定します。

rng (“默认”) t = templateTree(“复制”,真正的);ensMdl = fitrensemble(X,Y,“学习者”t...“OptimizeHyperparameters”“汽车”...“HyperparameterOptimizationOptions”...结构(“AcquisitionFunctionName”“expected-improvement-plus”))
|===================================================================================================================================| | Iter | Eval |目的:| |目的BestSoFar | BestSoFar | |方法NumLearningC - | LearnRate | MinLeafSize | | | |结果日志(1 +损失)运行时| |(观察)| (estim) | |永昌龙  | | | |===================================================================================================================================| | 最好1 | | 2.7403 | 13.821 | 2.7403 | 2.7403 |袋| 184 | - | 69 | | 2 |接受| 4.1317 | 1.0334 | 2.7403 | 2.8143 | 10袋| | | 176 | | 3 |的| 2.1687 | 16.645 | 2.1687 | 2.1689 | 118 | |包- | 2 | | 4 |接受| 2.2747 | 1.7129 | 2.1687 | 2.1688 | LSBoost 24 | 0.37779 | 7 | | | 5 |的| 2.1421 | 3.2933 | 2.1421 | 2.1422 |袋| 75 | - | 1 | | 6 |最好| 2.1365 | 20.198 | 2.1365 | 2.1365 |袋| 500 | - | 1 | | | 7日接受| 2.4302 | 1.7456 | 2.1365 | 2.1365 | LSBoost 37 | 0.94779 | 71 | | | |接受8 | 2.1813 | 25.601 | 2.1365 | 2.1365 | LSBoost | 497 | 0.023582 | 1 | | | 9日接受| 6.1992 | 4.1473 | 2.1365 | 2.1363 | LSBoost | 91 | 0.0012439 | 1 | | 10 |接受| 2.2119 |20.485 | 2.1365 | 2.1363 | LSBoost | 497 | 0.087441 | 11 | | | 11日接受| 4.7782 | 0.74953 | 2.1365 | 2.1366 | LSBoost 15 | 0.055744 | 1 | | | | 12日接受| 2.3093 | 20.807 | 2.1365 | 2.1366 | LSBoost | 493 | 0.39665 | 1 | | | 13日接受| 4.1304 | 8.1178 | 2.1365 | 2.1366 | LSBoost | 198 | 0.33031 | 201 | | | 14日接受| 2.595 | 1.0931 | 2.1365 | 2.1367 | LSBoost | 16 | 0.99848 | 1 | | 15 |接受| 2.6643 | 1.4957 | 2.1365 | 2.1363 | LSBoost 25 | | 0.97637 | 5 | | | 16日接受| 2.2388 |0.61673 | 2.1365 | 2.1363 | LSBoost | 11 | 0.42205 | 1 | | | 17日接受| 4.1304 | 1.8096 | 2.1365 | 2.1789 | LSBoost 19 | 0.79808 | 202 | | | | 18日接受| 2.3399 | 3.2656 | 2.1365 | 2.1363 | LSBoost | 71 | 0.44856 | 1 | | | 19日接受| 2.7734 | 5.0548 | 2.1365 | 2.1394 | LSBoost | 107 | 0.020776 | 2 | | 20 |接受| 2.3204 | 16.78 | 2.1365 | 2.136 |袋| 463 | - | | 16|===================================================================================================================================| | Iter | Eval |目的:| |目的BestSoFar | BestSoFar | |方法NumLearningC - | LearnRate | MinLeafSize | | | |结果日志(1 +损失)运行时| |(观察)| (estim) | |永昌龙  | | | |===================================================================================================================================| | 21 |接受| 2.2005 | 19.304 | 2.1365 | 2.137 | LSBoost | 464 | 0.10107 | | | | 22日接受| 2.479 | 2.7531 | 2.1365 | 2.136 | LSBoost 40 | | 0.93931 | 26 | | | 23日接受| 4.4432 | 2.7932 | 2.1365| 2.1366 | LSBoost 16 | 0.094719 | 189 | | | | 24日接受| 2.2531 | 21.828 | 2.1365 | 2.137 | LSBoost | 497 | 0.32798 | 5 | | | 25日接受| 2.158 | 17.369 | 2.1365 | 2.1366 | LSBoost | 433 | 0.015137 | 1 | | | 26日接受| 2.6254 | 19.04 | 2.1365 | 2.1369 | LSBoost | 467 | 0.94779 | 50 | | | 27日接受| 2.5612 | 0.71083 | 2.1365 | 2.1369 | LSBoost | 12 | 0.19061 | 17 | | | 28日接受| 2.256 | 0.79677 | 2.1365 | 2.1366 | LSBoost 10 | | 0.37427 | 2 | | | 29日接受| 2.2065 | 22.474 | 2.1365 |2.1366 | LSBoost | 499 | 0.018238 | 5 | | 30 | Accept | 2.2539 | 0.4891 | 2.1365 | 2.1369 | Bag | 10 | - | 7 |

图中包含一个轴对象。标题为Min objective vs. Number of function的axis对象包含2个类型为line的对象。这些对象代表最小观测目标,估计最小目标。

__________________________________________________________ 优化完成。最大目标达到30个。总函数评估:30总运行时间:315.3716秒总目标函数评估时间:276.0311最佳观测可行点:Method NumLearningCycles LearnRate MinLeafSize ______ _________________ _________ ___________ Bag 500 NaN 1观测目标函数值= 2.1365估计目标函数值= 2.1369函数评估时间= 20.1982最佳估计可行点(根据模型):方法NumLearningCycles LearnRate MinLeafSize ______ _________________ _________ ___________ Bag 500 NaN 1估计目标函数值= 2.1369估计函数评估时间= 19.7275
ensMdl = RegressionBaggedEnsemble ResponseName: 'Y' CategoricalPredictors: [] ResponseTransform: 'none' NumObservations: 398 HyperparameterOptimizationResults: [1x1 BayesianOptimization] NumTrained: 500 Method: 'Bag' LearnerNames: {'Tree'} reasonforterminate: '完成所要求的训练周期数后正常终止。'FitInfo: [] FitInfoDescription: 'None'正则化:[]FResample: 1替换:1 UseObsForLearner: [398x500 logical]属性,方法

fitrensembleは、ランダムフォレストアルゴリズム(“包”)が最適な手法であると特定し,RegressionBaggedEnsembleオブジェクトを返します。

金宝appSimulinkモデルの作成

この例では,RegressionEnsemble预测ブロックを含むS金宝appimulinkモデルslexCarDataRegressionEnsemblePredictExample.slxが用意されています。この節の説明に従って,この仿金宝app真软件モデルを開くことも,新しいモデルを作成することもできます。

金宝appSimulinkモデルslexCarDataRegressionEnsemblePredictExample.slxを開きます。

SimMdlName =“slexCarDataRegressionEnsemblePredictExample”;open_system (SimMdlName)

slexCarDataRegressionEnsemblePredictExampleのコ,ルバック関数PreLoadFcnには,標本データの読み込み,最適なハイパーパラメーターを使用したモデルの学習,および仿金宝app真软件モデルの入力信号の作成を行うコードが含まれています。金宝appSimulinkモデルを開くと,Simulinkモデルを読み込む前に,ソフトウェアがPreLoadFcnのコ,ドを実行します。コ,ルバック関数を表示するには,[モデル化]タブの[設定]セクションで,[モデル設定]をクリックし,[モデルプロパティ]を選択します。次に,[コ,ルバック]タブで,[モデルのコ,ルバック]ペ▪▪ンのコ▪▪ルバック関数PreLoadFcnを選択します。

新しいS金宝appimulinkモデルを作成するには,[空のモデル]テンプレ,トを開き,RegressionEnsemble Predictブロックを追加します。轮廓尺寸ブロックと外港ブロックを追加して,それらをRegressionEnsemble预测ブロックに接続します。

RegressionEnsemble预测ブロックをダブルクリックして,[ブロックパラメーター]ダイアログボックスを開きます。[选择训练过的机器学习模型]パラメ,タ,をensMdlとして指定します。これは,学習済みのモデルを含むワ,クスペ,ス変数の名前です。[更新]ボタンをクリックします。ダ@ @アログボックスの[训练过的机器学习模型]に,モデルensMdlの学習に使用されるオプションが表示されます。

RegressionEnsemble预测ブロックには13個の予測子の値を含む観測値が必要です。导入ブロックをダブルクリックし,[信号属性]タブで[端子の次元]を13に設定します。

金宝appSimulinkモデルの構造体配列の形式で,入力信号を作成します。構造体配列には,次のフィ,ルドが含まれていなければなりません。

  • 时间-観測値がモデルに入力された時点。方向は予測子デ,タ内の観測値に対応しなければなりません。したがって,この例の場合は时间が列ベクトルでなければなりません。

  • 信号- - - - - -フィ,ルドとフィ,ルドが含まれている,入力デ,タを説明する1行1列の構造体配列。は予測子デ,タの行列,は予測子変数の個数です。

carsmallデ,タセットから,slexCarDataRegressionEnsemblePredictExampleモデルに適切な構造体配列を作成します。carsmall起源分类デ,タ型配列c_Origin_smallに変換する際は,c_Originc_Origin_smallに同じ数のカテゴリが同じ順序で含まれるように类别(c_Origin)を使用します。

负载carsmallc_Origin_small = categorical(cellstr(Origin),categories(c_Origin));d_Origin_small = dummyvar(c_Origin_small);testX =[加速度,气缸,排量,马力,型号年,重量,d_Origin_small];testX = rmmissing(testX);carsmallInput。时间= (0:size(testX,1)-1)'; carsmallInput.signals(1).values = testX; carsmallInput.signals(1).dimensions = size(testX,2);

ワクスペスから信号デタをンポトするには,次を実行します。

  • [コンフィギュレションパラメタ]ダアログボックスを開く。[モデル化]タブで,[モデル設定]をクリック。

  • [デタのンポト/エクスポト]ペereplicationンで[入力]チェックボックスをオンにし,隣のテキストボックスにcarsmallInputと入力。

  • [ソルバ]ペereplicationンの[シミュレ,ション時間]で,[終了時間]carsmallInput.time(结束)に設定。[ソルバ,の選択]で,[タ电子邮箱プ]固定步に,[ソルバ]离散(无连续状态)に設定。

詳細は,シミュレ,ションのための信号デ,タの読み込み(金宝app模型)を参照してください。

モデルをシミュレ,トします。

sim (SimMdlName);

轮廓尺寸ブロックでは,観測値を検出すると,その観測値をRegressionTree预测ブロックに送ります。シミュレションデタンスペクタ(金宝app模型)を使用して,输出端口ブロックのログデ,タを表示できます。

参考

関連するトピック