Simulink で予測を行うための分類モデルのエクスポート
分類学習器でモデルに学習させた後、モデルと学習データを Simulink® にエクスポートできます。その後、エクスポートした学習データまたは新しいデータを使用して Simulink でモデルによる予測を行うことができます。
次のモデル タイプについては、すべてのモデルをエクスポートできます。
判別分析
単純ベイズ分類器
サポート ベクター マシン
効率的に学習させた線形分類器
最近傍分類器
次のモデル タイプについては、エクスポートできるモデルに指定があります。
決定木 — 代理決定分岐を使用せずに学習させたすべてのモデル
ロジスティック回帰分類器 — バイナリ GLM ロジスティック回帰を除くすべてのモデル
アンサンブル分類器 — 部分空間判別と部分空間 KNN を除くすべてのモデル
カーネル近似 — マルチクラスのデータについて学習させたモデルを除くすべてのモデル
メモ
カテゴリカル予測子を含むモデルは Simulink にエクスポートできません。入力データにカテゴリカル データが含まれている場合は、アプリにインポートする前に、特徴選択を使用してカテゴリカル予測子を除外するか (分類学習器アプリの使用による特徴選択と特徴変換を参照)、符号化したバージョンのカテゴリカル データを用意する必要があります。MATLAB コマンド ラインで dummyvar を使用して、各カテゴリカル変数をダミー変数で構成される数値行列に変換します。その後、すべてのダミー変数行列とその他の数値予測子を連結します。詳細については、ダミー変数を参照してください。
モデルを Simulink にエクスポートするには、次を行います。
カテゴリカル予測子を含まないデータ セットを使用して、サポートされるモデルに分類学習器で学習させます。サポートされるすべてのモデルに学習させるには、[学習] タブの [モデル] セクションで [Simulink でサポートされているすべて] をクリックし、[すべてを学習] をクリックします。エクスポートするモデルを [モデル] ペインで選択します。
[学習] タブの [エクスポート] セクションで、[モデルのエクスポート] をクリックして [モデルを Simulink にエクスポート] を選択します。
[分類モデルを Simulink にエクスポート] ダイアログ ボックスで、モデルと入力データを MATLAB ワークスペースに保存するオプションをクリックします。モデルと入力データは Simulink モデル ワークスペースに保存することもできます。エクスポートする分類モデルの変数名、およびエクスポートする Simulink モデル入力データの変数名を必要に応じて編集します。以前にエクスポートしたモデルが上書きされないように、モデルの既定名
trainedModelとモデル入力の既定名inputDataは、エクスポートを行うたびにインクリメントされます (trainedModel1など)。Simulink モデルに予測クラス スコアの出力端子を表示するオプションを選択します。[エクスポート] をクリックします。
[Simulink モデルを名前を付けて保存] ダイアログ ボックスで、
.slxファイルの名前を必要に応じて編集し、[保存] をクリックします。MATLAB ワークスペースに保存するように指定した場合、学習済みモデルと入力データを含む.matファイルが同じディレクトリに作成されます。新しい変数 (
trainedModelとinputDataなど) が MATLAB ワークスペースに表示されます。Simulink が起動し、新しい Simulink モデルが作成されます。Simulink モデルのPreLoadFcnコールバック関数のコードが実行され、inputDataのデータが読み込まれます。その後、Simulink モデルが読み込まれます。Simulink のコールバック関数の詳細については、モデル コールバック (Simulink)を参照してください。
From Workspace (Simulink) ブロックは、エクスポートした分類モデルに対応するタイプの Predict ブロックに接続されます。たとえば、ガウス単純ベイズ モデルをエクスポートした場合、ブロックはClassificationNaiveBayes Predictブロックになります。効率的なロジスティック回帰や線形 SVM などの一部のモデルをエクスポートしたときに、データに 3 つ以上のクラスがあれば、ブロックはClassificationECOC Predictブロックになります。Predict ブロックをダブルクリックすると、データ型や追加オプションを指定できます。詳細については、対応する Predict ブロックのドキュメンテーション ページを参照してください。
分類学習器で特徴選択を使用するか PCA を有効にしてモデルに学習させた場合、From Workspace ブロックはモデル タイプのラベルが付いた Prediction サブシステム ブロックに接続されます。Prediction サブシステム ブロックをダブルクリックすると、Predict ブロック、
Feature Selectionサブシステム ブロック、およびDimensionality Reduction (PCA)サブシステム ブロックにアクセスできます。モデルは
inputDataの観測値を使用して予測を行うように構成されています。新しいデータを使用して予測を行うには、From Workspace ブロックをダブルクリックし、MATLAB 変数の名前かデータとして評価される式を入力します (詳細についてはFrom Workspace ブロックを使用したデータの読み込み (Simulink)を参照)。Simulink モデルを実行するには、[シミュレーション] タブで [実行] をクリックします。シミュレーション データ インスペクター (Simulink)を使用して、To Workspace (Simulink) ブロックのログ データを表示できます。
To Workspace ブロックは、Predict ブロックからの予測ラベルを MATLAB ワークスペース内の
outputPredictionsという名前の新しい変数に出力します。To Workspace ブロックをダブルクリックすると、ワークスペース変数の名前を必要に応じて編集したり、ワークスペース変数の形式、ログに記録するサンプル数、ログ データの有効サンプル レート (間引き係数) などの他のオプションを指定したりできます。Simulink モデルに予測クラス スコアの出力端子を表示するように指定した場合、
To Workspace1というラベルが付いた追加ブロックが Predict ブロックの score 出力に接続されます。To Workspace1ブロックは、分類スコアを MATLAB ワークスペース内のoutputScoresという名前の新しい変数に出力します。outputScoresはn行c列の数値配列で、nはinputDataの観測値の数、cはtrainedModelのクラスの数です。To Workspace1ブロックをダブルクリックすると、ワークスペース変数の名前を編集したり、他のオプションを指定したりできます。
Simulink での予測に Statistics and Machine Learning Toolbox™ ブロックを使用する方法を示す例については、ClassificationNaiveBayes Predict ブロックの使用によるクラス ラベルの予測を参照してください。