Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

分類学習器アプリにおける検定セットを使用した分類器の性能チェック

この例では、分類学習器で複数のモデルに学習させ、検証精度に基づいて最適なモデルを特定する方法を示します。学習データと検証データを含むデータ セット全体で学習させた最適なモデルの検定精度をチェックします。

  1. MATLAB® コマンド ウィンドウで、ionosphere データセットを読み込み、データが含まれている table を作成します。table を学習セットと検定セットに分割します。

    load ionosphere
    tbl = array2table(X);
    tbl.Y = Y;
    
    rng("default") % For reproducibility of the data split
    partition = cvpartition(Y,"Holdout",0.15);
    idxTrain = training(partition); % Indices for the training set
    tblTrain = tbl(idxTrain,:);
    tblTest = tbl(~idxTrain,:);

    あるいは、後でアプリにデータをインポートするときに検定セットを作成できます。詳細については、(オプション) 検定用のデータの確保を参照してください。

  2. 分類学習器を開きます。[アプリ] タブをクリックしてから、[アプリ] セクションの右にある矢印をクリックしてアプリ ギャラリーを開きます。[機械学習および深層学習] グループの [分類学習器] をクリックします。

  3. [分類学習器] タブで、[ファイル] セクションの [新規セッション] をクリックし、[ワークスペースから] を選択します。

  4. [ワークスペースからの新規セッション] ダイアログ ボックスで、[データセット変数] のリストから table [tblTrain] を選択します。

    ダイアログ ボックスに示されているように、応答変数および予測子変数が選択されます。既定の応答変数は [Y] です。過適合を防止するために、既定の検証オプションは 5 分割交差検証になっています。この例では、既定の設定を変更しないでください。

    New Session from Workspace dialog box

  5. 既定のオプションをそのまま使用して続行するため、[セッションの開始] をクリックします。

  6. 事前設定されたすべてのモデルに学習させます。[分類学習器] タブの [モデル] セクションで矢印をクリックしてギャラリーを開きます。[開始] グループで [すべて] をクリックします。[学習] セクションで、[すべてを学習] をクリックして [すべてを学習] を選択します。事前設定された各モデル タイプの学習が既定の複雑な木のモデルと共に 1 つずつ行われ、モデルが [モデル] ペインに表示されます。

    メモ

    • Parallel Computing Toolbox™ がある場合は、[並列の使用] ボタンが既定でオンに切り替わります。[すべてを学習] をクリックして [すべてを学習] または [選択を学習] を選択すると、ワーカーの並列プールが開きます。この間、ソフトウェアの対話的な操作はできません。プールが開いた後、モデルの学習を並列で実行しながらアプリの操作を続けることができます。

    • Parallel Computing Toolbox がない場合は、[すべてを学習] メニューの [バックグラウンド学習を使用] チェック ボックスが既定でオンになります。クリックしてモデルに学習させると、バックグラウンド プールが開きます。プールが開いた後、モデルの学習をバックグラウンドで実行しながらアプリの操作を続けることができます。

  7. 検証精度に基づいて学習済みモデルを並べ替えます。[モデル] ペインで [並べ替え] リストを開き、[精度 (検証)] を選択します。

  8. [モデル] ペインで、検証精度が高い上位 3 つのモデルの横にある星形アイコンをクリックします。最も高い検証精度が四角で囲まれて強調表示されます。この例では、学習済みの [中程度のガウス SVM] モデルの検証精度が最も高くなっています。

    Validation confusion matrix of the ionosphere data modeled by a fine tree model

    2 番目の複雑な木のモデル (モデル 2.1) についての検証の混同行列が表示されます。青色の値は正しい分類を示し、赤色の値は誤った分類を示します。左の [モデル] ペインに各モデルの検証精度が表示されます。

    メモ

    検証により、結果に無作為性が導入されます。実際のモデルの検証結果は、この例に示されている結果と異なる場合があります。

  9. 最適なモデルの検定セット性能をチェックします。はじめに、アプリに検定データをインポートします。

    [分類学習器] タブの [検定] セクションで [検定データ] をクリックし、[ワークスペースから] を選択します。

  10. [検定データのインポート] ダイアログ ボックスで、[検定データセット変数] のリストから table [tblTest] を選択します。

    ダイアログ ボックスに示されているように、応答変数および予測子変数が特定されます。

    Import Test Data dialog box

  11. [インポート] をクリックします。

  12. tblTest データで、事前設定された最適なモデルの精度を計算します。便宜上、すべてのモデルの検定セットの精度をまとめて計算します。[分類学習器] タブの [検定] セクションで [すべて検定] をクリックし、[すべて検定] を選択します。学習データと検証データを含むデータ セット全体で学習させたモデルの検定セットの性能が計算されます。

  13. 検定セットの精度に基づいてモデルを並べ替えます。[モデル] ペインで [並べ替え] リストを開き、[精度 (検定)] を選択します。検定精度で表示しても、最も高い検証精度をもつモデルのメトリクスの概要が依然として表示されます。

  14. モデルの検定セット性能を視覚的にチェックします。星マークが付いたモデルごとに、[モデル] ペインでモデルを選択します。[分類学習器] タブの [プロット] セクションで矢印をクリックしてギャラリーを開き、[テスト結果] グループの [混同行列 (検定)] をクリックします。

  15. 比較しやすくするためにプロットのレイアウトを再編成します。まず、[モデル 1] および [モデル 2.1] の概要とプロットのタブを閉じます。次に、モデル プロットのタブの右端にある [ドキュメント アクション] 矢印をクリックします。[すべて並べて表示] オプションを選択し、1 行 3 列のレイアウトを指定します。プロットの右上にある [プロット オプションを非表示] ボタン をクリックして、プロットのスペースを大きくします。

    この例では、検定セット データにおいても、学習済みの [中程度のガウス SVM] モデルが最適なモデルの 1 つとなっています。

    Test set confusion matrices for the starred models

    元のレイアウトに戻すには、[プロット] セクションで [レイアウト] ボタンをクリックし、[単一モデル (既定)] を選択します。

  16. 学習済みの [中程度のガウス SVM] モデルの検証精度と検定精度を比較します。[モデル] ペインでモデルをダブルクリックします。モデルの [概要] ペインで、[学習結果][精度 (検証)] の値と [テスト結果][精度 (検定)] の値を比較します。この例では、検証精度が検定精度よりも高く、このモデルの性能が検証精度で過大推定されている可能性があることを示しています。

関連するトピック