回帰学習器アプリにおけるテスト セットを使用したモデルの性能チェック
この例では、回帰学習器で複数のモデルに学習させ、検証メトリクスに基づいて最適なモデルを特定する方法を示します。学習データと検証データを含むデータ セット全体で学習させた最適なモデルのテスト メトリクスをチェックします。
MATLAB® コマンド ウィンドウで、
carbig
データセットを読み込み、ほとんどの変数が含まれている table を作成します。table を学習セットとテスト セットに分割します。load carbig cartable = table(Acceleration,Cylinders,Displacement, ... Horsepower,Model_Year,Weight,Origin,MPG); rng("default") % For reproducibility of the data split n = length(MPG); partition = cvpartition(n,"Holdout",0.15); idxTrain = training(partition); % Indices for the training set cartableTrain = cartable(idxTrain,:); cartableTest = cartable(~idxTrain,:);
あるいは、後でアプリにデータをインポートするときにテスト セットを作成できます。詳細については、(オプション) テスト用のデータの確保を参照してください。
回帰学習器を開きます。[アプリ] タブをクリックしてから、[アプリ] セクションの右にある矢印をクリックしてアプリ ギャラリーを開きます。[機械学習および深層学習] グループの [回帰学習器] をクリックします。
[回帰学習器] タブで、[ファイル] セクションの [新規セッション] をクリックし、[ワークスペースから] を選択します。
[ワークスペースからの新規セッション] ダイアログ ボックスで、[データセット変数] のリストから
[cartableTrain]
table を選択します。ダイアログ ボックスに示されているように、応答変数および予測子変数が選択されます。既定の応答変数は
[MPG]
です。過適合を防止するために、既定の検証オプションは 5 分割交差検証になっています。この例では、既定の設定を変更しないでください。既定のオプションをそのまま使用して続行するため、[セッションの開始] をクリックします。
事前設定されたすべてのモデルに学習させます。[回帰学習器] タブの [モデル] セクションで矢印をクリックしてギャラリーを開きます。[開始] グループで [すべて] をクリックします。[学習] セクションで、[すべてを学習] をクリックして [すべてを学習] を選択します。事前設定された各モデル タイプの学習が既定の複雑な木のモデルと共に 1 つずつ行われ、モデルが [モデル] ペインに表示されます。
メモ
Parallel Computing Toolbox™ がある場合は、[並列の使用] ボタンが既定でオンに切り替わります。[すべてを学習] をクリックして [すべてを学習] または [選択を学習] を選択すると、ワーカーの並列プールが開きます。この間、ソフトウェアの対話的な操作はできません。プールが開いた後、モデルの学習を並列で実行しながらアプリの操作を続けることができます。
Parallel Computing Toolbox がない場合は、[すべてを学習] メニューの [バックグラウンド学習を使用] チェック ボックスが既定でオンになります。オプションを選択してモデルに学習させると、バックグラウンド プールが開きます。プールが開いた後、モデルの学習をバックグラウンドで実行しながらアプリの操作を続けることができます。
検証平方根平均二乗誤差 (RMSE) に基づいて学習済みモデルを並べ替えます。[モデル] ペインで [並べ替え] リストを開き、
[RMSE (検証)]
を選択します。[モデル] ペインで、検証 RMSE が低い下位 3 つのモデルの横にある星形アイコンをクリックします。最も低い検証 RMSE が四角で囲まれて強調表示されます。この例では、学習済みの [指数 GPR] モデルの検証 RMSE が最も低くなっています。
線形回帰モデル (モデル 2.1) の応答プロットが表示されます。青色の点は真の値、黄色の点は予測値です。左の [モデル] ペインに各モデルの RMSE 検証が表示されます。
メモ
検証により、結果に無作為性が導入されます。実際のモデルの検証結果は、この例に示されている結果と異なる場合があります。
最適なモデルのテスト セット性能をチェックします。はじめに、アプリにテスト データをインポートします。
[回帰学習器] タブの [テスト] セクションで [テスト データ] をクリックし、[ワークスペースから] を選択します。
[検定データのインポート] ダイアログ ボックスで、[検定データセット変数] のリストから
[cartableTest]
table を選択します。ダイアログ ボックスに示されているように、応答変数および予測子変数が特定されます。
[インポート] をクリックします。
cartableTest
データで、事前設定された最適なモデルの RMSE を計算します。便宜上、すべてのモデルのテスト セットの RMSE をまとめて計算します。[回帰学習器] タブの [テスト] セクションで [すべて検定] をクリックし、[すべて検定] を選択します。学習データと検証データを含むデータ セット全体で学習させたモデルのテスト セットの性能が計算されます。テスト セット RMSE に基づいてモデルを並べ替えます。[モデル] ペインで [並べ替え] リストを開き、
[RMSE (テスト)]
を選択します。テスト RMSE で表示しても、最も低い検証 RMSE をもつモデルのメトリクスの概要が依然として表示されます。モデルのテスト セット性能を視覚的にチェックします。星マークが付いたモデルごとに、[モデル] ペインでモデルを選択します。[回帰学習器] タブの [プロットと解釈] セクションで矢印をクリックしてギャラリーを開き、[テスト結果] グループの [予測と実際 (テスト)] をクリックします。
比較しやすくするためにプロットのレイアウトを再編成します。まず、[モデル 1] および [モデル 2.1] の概要とプロットのタブを閉じます。次に、モデル プロットのタブの右端にある [ドキュメント アクション] 矢印をクリックします。
[すべて並べて表示]
オプションを選択し、1 行 3 列のレイアウトを指定します。プロットの右上にある [プロット オプションを非表示] ボタンをクリックして、プロットのスペースを大きくします。
この例では、星マークが付いた 3 つのモデルで、テスト セット データにおける性能がほぼ同等になっています。
元のレイアウトに戻すには、[プロットと解釈] セクションで [レイアウト] ボタンをクリックし、[単一モデル (既定)] を選択します。
学習済みの [指数 GPR] モデルの検証 RMSE とテスト RMSE を比較します。[モデル] ペインでモデルをダブルクリックします。モデルの [概要] ペインで、[学習結果] の [RMSE (検証)] の値と [テスト結果] の [RMSE (テスト)] の値を比較します。この例では、検証 RMSE がテスト RMSE よりも低く、このモデルの性能が検証 RMSE で過大推定されている可能性があることを示しています。