メインコンテンツ

Scikit-learn Model Predict

事前学習済みの Python scikit-learn モデルを使用した応答の予測

R2024a 以降

  • Scikit-learn Model Predict Block Icon

ライブラリ:
Statistics and Machine Learning Toolbox / Python Models

説明

Scikit-learn Model Predict ブロックは、MATLAB® Python 環境で実行されている事前学習済みの Python® scikit-learn® モデルを使用して応答を予測します。MATLAB は、Python の参照実装 (通称 CPython) をサポートします。Mac または Linux® のプラットフォームを使用している場合、Python は既にインストールされています。Windows® を使用している場合、https://www.python.org/downloads/ などにある配布版をインストールする必要があります。詳細については、Python を使用するためのシステムの構成を参照してください。MATLAB Python 環境に scikit-learn モジュールがインストールされている必要があります。Scikit-learn Model Predict ブロックは Python version 3.10 と scikit-learn version 1.2.0 を使用してテストされています。

scikit-learn モデル ファイルのパスを指定して Python モデルをブロックに読み込みます。オプションとして、Simulink® から Python モデルに渡す観測値 (予測子データ) を前処理する Python 関数、モデルからの予測応答を後処理する Python 関数を読み込むことができます。

入力端子 x は、観測値を受け取り、必要に応じて入力配列の次元を再配列してから、それらの観測値を Python 配列に変換します。前処理関数 (指定されている場合) は、変換された観測値を Python で処理し、それらを Python モデルに渡します。モデルは観測値に対する予測応答を Python で生成し、それらの応答を Python 後処理関数 (指定されている場合) に渡します。出力端子 Out1 は、モデルからの予測応答を返します。

メモ

Scikit-learn Model Predict ブロックはラピッド アクセラレータ モードでは実行できません。

端子

入力

すべて展開する

予測子データ。数値行列として指定します。既定では、行は観測値に対応し、列は予測子変数に対応します。Python モデルに渡される予測子データの次元は、[ブロック パラメーター] ダイアログ ボックスの [入力] タブで置換ベクトルを指定することによって再配列できます (入力を参照)。

データ型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

出力

すべて展開する

予測された応答。数値ベクトルとして返されます。

データ型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean

パラメーター

すべて展開する

ブロック パラメーターを対話的に編集するには、プロパティ インスペクターを使用します。Simulink ツールストリップの [シミュレーション] タブにある [準備] ギャラリーで [プロパティ インスペクター] を選択します。

モデル ファイルの指定

Python scikit-learn モデル ファイルの名前またはパスを指定するか、[参照] ボタンをクリックします。モデルは、pickle.dumps()joblib.dump()、または skops.io.dumps() を使用して Python に保存しなければなりません (https://scikit-learn.org/stable/model_persistence.htmlおよびhttps://pypi.org/project/skops/を参照)。Python の対応する predict() メソッドがモデルでサポートされていなければなりません。詳細については、https://scikit-learn.org/stable/を参照してください。

プログラムでの使用

ブロック パラメーター: ModelFile
型: 文字ベクトル
値: Python ファイル | Python ファイルのパス
既定: "untitled"

サンプル時間のヒット間の離散間隔を指定するか、連続 (0) や継承 (–1) など、別のタイプのサンプル時間を指定します。その他のオプションについては、サンプル時間のタイプ (Simulink)を参照してください。

既定では、Scikit-learn Model Predict ブロックはモデル内の前後関係に基づいてサンプル時間を継承します。

プログラムでの使用

ブロック パラメーター: SampleTime
型: string スカラーまたは文字ベクトル
値: スカラー
既定: "–1"

入力

入力端子のプロパティ。table として指定します。table の列は次のとおりです。

  • 入力名 — ブロックの入力端子のラベル。文字ベクトルとして指定します。入力端子のラベルについては、ブロックは Python モデルに渡しません。

  • Python データ型Scikit-learn Model Predict ブロックが入力データを Python に渡す前に変換する Python または NumPy のデータ型。文字ベクトルとして指定します。ブロックは Python の数値データ型 "int""float"、NumPy の数値データ型 "float16""float32""float64""int8""uint8""int16""uint16""int32""uint32""int64""uint64" をサポートしています。既定値は "float32" です。

  • Python への置換 — 入力データの新しい次元の配置。x の次元を表す一意の正の整数要素をもつ数値ベクトルとして指定します (permute を参照)。[2 1] を指定すると、x の行と列の次元を入れ替えることができます。Scikit-learn Model Predict ブロックは、再配列された配列を Python モデルに渡します。

プログラムでの使用

ブロック パラメーター: InputTable
型: cell 配列

出力

出力端子のプロパティ。table として指定します。table の列は次のとおりです。

  • 出力名Scikit-learn Model Predict ブロックの出力端子のラベル。文字ベクトルとして指定します。

  • 最大バッチ サイズ — 出力の最大バッチ サイズ。正の整数として指定します。このパラメーターは、Python モデルが 1 回のシミュレーションの実行中に可変サイズの出力を返せる場合にのみ指定します。

プログラムでの使用

ブロック パラメーター: OutputTable
型: cell 配列

前/後処理

入力データに対するオプションの Python 前処理関数を定義するファイルの名前またはパスを指定するか、[参照] ボタンをクリックします。Scikit-learn Model Predict は観測値を受け取ると、それらを NumPy 配列に変換します。前処理関数は、変換された観測値を Python で処理し、それらを Python モデルに渡します。

前処理ファイルでは、次のシグネチャを使用して Python 関数を定義しなければなりません。

outputList = preprocess(model,inputList)
ここで、outputListinputList は長さ 1 の NumPy ndarray オブジェクトのリスト、model はモデル オブジェクトです。前処理ファイルは、両方の関数の定義が含まれていれば、postprocess() を定義する Python ファイルへのパスで指定される後処理ファイルと同じでもかまいません。

プログラムでの使用

ブロック パラメーター: PreprocessingFilePath
型: 文字ベクトル
値: Python ファイル | Python ファイルのパス

出力データに対するオプションの Python 後処理関数を定義するファイルの名前またはパスを指定するか、[参照] ボタンをクリックします。Scikit-learn Model Predict ブロックは、Python 関数を使用して Python モデルからの出力データを処理し、それをブロックから出力します。

後処理ファイルでは、次のシグネチャを使用して Python 関数を定義しなければなりません。

outputList = postprocess(model,inputList)
ここで、outputListinputList は NumPy ndarray オブジェクトのリスト、model はモデル オブジェクトです。後処理ファイルは、両方の関数の定義が含まれていれば、preprocess() を定義する Python ファイルへのパスで指定される前処理ファイルと同じでもかまいません。

プログラムでの使用

ブロック パラメーター: PostprocessingFilePath
型: 文字ベクトル
値: Python ファイル | Python ファイルのパス

ブロックの特性

データ型

Boolean | double | enumerated | fixed point | half | integer | single

直達

yes

多次元信号

no

可変サイズの信号

no

ゼロクロッシング検出

no

バージョン履歴

R2024a で導入

参考

ブロック

外部の Web サイト