メインコンテンツ

Simulink で予測を行うための分類モデルのエクスポート

分類学習器でモデルに学習させた後、モデルと学習データを Simulink® にエクスポートできます。その後、エクスポートした学習データまたは新しいデータを使用して Simulink でモデルによる予測を行うことができます。

次のモデル タイプについては、すべてのモデルをエクスポートできます。

  • 判別分析

  • 単純ベイズ分類器

  • サポート ベクター マシン

  • 効率的に学習させた線形分類器

  • 最近傍分類器

次のモデル タイプについては、エクスポートできるモデルに指定があります。

  • 決定木 — 代理決定分岐を使用せずに学習させたすべてのモデル

  • ロジスティック回帰分類器 — バイナリ GLM ロジスティック回帰を除くすべてのモデル

  • アンサンブル分類器 — 部分空間判別と部分空間 KNN を除くすべてのモデル

  • カーネル近似 — マルチクラスのデータについて学習させたモデルを除くすべてのモデル

メモ

カテゴリカル予測子を含むモデルは Simulink にエクスポートできません。入力データにカテゴリカル データが含まれている場合は、アプリにインポートする前に、特徴選択を使用してカテゴリカル予測子を除外するか (分類学習器アプリの使用による特徴選択と特徴変換を参照)、符号化したバージョンのカテゴリカル データを用意する必要があります。MATLAB コマンド ラインで dummyvar を使用して、各カテゴリカル変数をダミー変数で構成される数値行列に変換します。その後、すべてのダミー変数行列とその他の数値予測子を連結します。詳細については、ダミー変数を参照してください。

モデルを Simulink にエクスポートするには、次を行います。

  1. カテゴリカル予測子を含まないデータ セットを使用して、サポートされるモデルに分類学習器で学習させます。サポートされるすべてのモデルに学習させるには、[学習] タブの [モデル] セクションで [Simulink でサポートされているすべて] をクリックし、[すべてを学習] をクリックします。エクスポートするモデルを [モデル] ペインで選択します。

  2. [学習] タブの [エクスポート] セクションで、[モデルのエクスポート] をクリックして [モデルを Simulink にエクスポート] を選択します。

  3. [分類モデルを Simulink にエクスポート] ダイアログ ボックスで、モデルと入力データを MATLAB ワークスペースに保存するオプションをクリックします。モデルと入力データは Simulink モデル ワークスペースに保存することもできます。エクスポートする分類モデルの変数名、およびエクスポートする Simulink モデル入力データの変数名を必要に応じて編集します。以前にエクスポートしたモデルが上書きされないように、モデルの既定名 trainedModel とモデル入力の既定名 inputData は、エクスポートを行うたびにインクリメントされます (trainedModel1 など)。Simulink モデルに予測クラス スコアの出力端子を表示するオプションを選択します。[エクスポート] をクリックします。

    Export Classification Model to Simulink dialog box with options selected

  4. [Simulink モデルを名前を付けて保存] ダイアログ ボックスで、.slx ファイルの名前を必要に応じて編集し、[保存] をクリックします。MATLAB ワークスペースに保存するように指定した場合、学習済みモデルと入力データを含む .mat ファイルが同じディレクトリに作成されます。

    新しい変数 (trainedModelinputData など) が MATLAB ワークスペースに表示されます。Simulink が起動し、新しい Simulink モデルが作成されます。Simulink モデルの PreLoadFcn コールバック関数のコードが実行され、inputData のデータが読み込まれます。その後、Simulink モデルが読み込まれます。Simulink のコールバック関数の詳細については、モデル コールバック (Simulink)を参照してください。

    Exported Classification Leaner app model in Simulink

    From Workspace (Simulink) ブロックは、エクスポートした分類モデルに対応するタイプの Predict ブロックに接続されます。たとえば、ガウス単純ベイズ モデルをエクスポートした場合、ブロックはClassificationNaiveBayes Predictブロックになります。効率的なロジスティック回帰や線形 SVM などの一部のモデルをエクスポートしたときに、データに 3 つ以上のクラスがあれば、ブロックはClassificationECOC Predictブロックになります。Predict ブロックをダブルクリックすると、データ型や追加オプションを指定できます。詳細については、対応する Predict ブロックのドキュメンテーション ページを参照してください。

    分類学習器で特徴選択を使用するか PCA を有効にしてモデルに学習させた場合、From Workspace ブロックはモデル タイプのラベルが付いた Prediction サブシステム ブロックに接続されます。Prediction サブシステム ブロックをダブルクリックすると、Predict ブロック、Feature Selection サブシステム ブロック、および Dimensionality Reduction (PCA) サブシステム ブロックにアクセスできます。

  5. モデルは inputData の観測値を使用して予測を行うように構成されています。新しいデータを使用して予測を行うには、From Workspace ブロックをダブルクリックし、MATLAB 変数の名前かデータとして評価される式を入力します (詳細についてはFrom Workspace ブロックを使用したデータの読み込み (Simulink)を参照)。

  6. Simulink モデルを実行するには、[シミュレーション] タブで [実行] をクリックします。シミュレーション データ インスペクター (Simulink)を使用して、To Workspace (Simulink) ブロックのログ データを表示できます。

    To Workspace ブロックは、Predict ブロックからの予測ラベルを MATLAB ワークスペース内の outputPredictions という名前の新しい変数に出力します。To Workspace ブロックをダブルクリックすると、ワークスペース変数の名前を必要に応じて編集したり、ワークスペース変数の形式、ログに記録するサンプル数、ログ データの有効サンプル レート (間引き係数) などの他のオプションを指定したりできます。

    Simulink モデルに予測クラス スコアの出力端子を表示するように指定した場合、To Workspace1 というラベルが付いた追加ブロックが Predict ブロックの score 出力に接続されます。To Workspace1 ブロックは、分類スコアを MATLAB ワークスペース内の outputScores という名前の新しい変数に出力します。outputScoresnc 列の数値配列で、ninputData の観測値の数、ctrainedModel のクラスの数です。To Workspace1 ブロックをダブルクリックすると、ワークスペース変数の名前を編集したり、他のオプションを指定したりできます。

Simulink での予測に Statistics and Machine Learning Toolbox™ ブロックを使用する方法を示す例については、ClassificationNaiveBayes Predict ブロックの使用によるクラス ラベルの予測を参照してください。

参考

トピック