新しいデータを予測するための分類モデルのエクスポート
ワークスペースへのモデルのエクスポート
分類学習器で対話的に分類モデルを作成した後で、最適なモデルをワークスペースにエクスポートできます。その後、学習済みのモデルを使用して、新しいデータによる予測を行うことができます。
メモ
分類学習器がエクスポートする最終的なモデルの学習には、常にテスト用に確保されたデータを除くデータ セット全体が使用されます。使用する検証方式は、アプリによる検証メトリクスの計算方法のみに影響を与えます。結果を可視化する各種のプロットと検証メトリクスを使用して、分類問題に最適なモデルを選択できます。
モデルを MATLAB® ワークスペースにエクスポートするには、次を行います。
アプリで、エクスポートするモデルを [モデル] ペインから選択します。
一般に、学習済みのモデルの完全なバージョンまたはコンパクトなバージョンを
ClassificationTree
などの分類オブジェクトを含む構造体としてワークスペースにエクスポートできます。[学習] タブの [エクスポート] セクションで、[モデルのエクスポート] をクリックして [モデルをワークスペースにエクスポート] を選択します。学習データを除外してコンパクトなモデルをエクスポートするには、[分類モデルのエクスポート] ダイアログ ボックスでチェック ボックスをクリアします。モデルに学習データがない場合や学習データをモデルから除外できない場合はチェック ボックスが無効になることに注意してください。コンパクトなモデルも新しいデータの予測に使用できます。カーネル近似などの一部のモデルには、学習データがまったく格納されません。それ以外の最近傍やバイナリ GLM ロジスティック回帰などのモデルには、常に学習データが格納されます。
必要な場合は、エクスポートする変数の名前を [分類モデルのエクスポート] ダイアログ ボックスで編集します。[OK] をクリックします。以前にエクスポートした分類器が上書きされないようにするため、エクスポートするモデルの既定名
trainedModel
は、エクスポートを行うたびにインクリメントされます (trainedModel1
など)。新しい変数 (
trainedModel
など) がワークスペースに表示されます。エクスポートしたモデルに関する情報がコマンド ウィンドウに表示されます。メッセージを読んで、新しいデータで予測を行う方法を確認します。
エクスポートしたモデルを使用した新しいデータについての予測
モデルを分類学習器からワークスペースにエクスポートするか、分類学習器アプリで生成したコードを実行すると、新しいデータで予測を行うために使用できる trainedModel
という構造体が作成されます。この構造体には、分類オブジェクトと予測のための関数が格納されています。この構造体を使用すると、主成分分析 (PCA) が含まれているモデルについて予測を行うことができます。
エクスポートした分類器を使用して新しいデータ
T
について予測を行うには、次の形式を使用します。[yfit,scores] = C.predictFcn(T)
C
は変数の名前 (trainedModel
など) です。事前設定されたバイナリ GLM ロジスティック回帰を使用して学習させたモデルをエクスポートした場合、クラス スコアは含まれません。エクスポートしたバイナリ GLM ロジスティック分類器には、次の形式を使用します。yfit = C.predictFcn(T)
アプリで使用した学習データと同じ形式およびデータ型のデータ
T
を指定します (table または行列)。table を指定する場合、学習データと同じ予測子を含めます。関数
predictFcn
は、table 内の追加変数を無視します。変数の形式および型は、元の学習データと一致しなければなりません。行列を指定する場合、学習データと同じ予測子の列または行が、同じ順序および形式で格納されていなければなりません。応答変数、アプリでインポートしなかった変数、および他の未使用変数は含めないでください。
出力の
yfit
には、データ点ごとのクラスの予測が含まれています。出力のscores
には、学習済みモデルから返されたクラス スコアが格納されます。scores
は n 行 k 列の配列です。ここで、n はデータ点の数、k は学習済みモデルのクラスの数です。エクスポートした構造体のフィールドを確認します。予測を行う方法のヘルプを表示するには、次のように入力します。
C.HowToPredict
さらに分析を行うため、エクスポートした構造体から分類オブジェクト (モデルのタイプに応じて trainedModel.ClassificationSVM
や trainedModel.ClassificationTree
など) を抽出することもできます。PCA などの特徴変換をアプリで使用した場合は、構造体の PCA フィールドの情報を使用してこの変換を考慮に入れる必要があることに注意してください。
MATLAB Compiler の使用による予測の展開
分類学習器からワークスペースにモデルをエクスポートした後で、MATLAB Compiler™ を使用してそのモデルを展開できます。
ワークスペースへのモデルのエクスポートの指示に従って trainedModel
という名前で学習済みモデルを MATLAB ワークスペースにエクスポートしたとします。予測を展開するには、以下の手順に従います。
構造体
trainedModel
を .mat ファイルに保存します。save mymodel trainedModel
コンパイルするコードを記述します。このコードでは、学習済みモデルを読み込んで予測に使用しなければなりません。コンパイルされたアプリケーションで Statistics and Machine Learning Toolbox™ のコードが必要であることをコンパイラに認識させるため、プラグマも必要です。このプラグマは、分類学習器で使用する任意のモデル学習関数 (たとえば
fitctree
) にできます。function ypred = mypredict(tbl) %#function fitctree load('mymodel.mat'); ypred = trainedModel.predictFcn(tbl); end
スタンドアロン アプリケーションとしてコンパイルします。
mcc -m mypredict.m