Main Content

分類学習器における分類器の性能の可視化と評価

分類学習器で分類器に学習させた後で、精度の値に基づくモデルの比較、クラス予測のプロットによる結果の可視化、混同行列と ROC 曲線の使用による性能のチェックを行うことができます。

  • "k" 分割交差検証を使用した場合、"k" 個の検証分割内の観測値を使用して精度の値が計算され、平均の交差検証誤差が報告されます。これらの検証分割内の観測値に対する予測も行われ、これらの予測に対して混同行列と ROC 曲線が計算されます。

    メモ

    既定の設定のままでデータをアプリにインポートすると、自動的に交差検証が使用されます。詳細については、検証方式の選択を参照してください。

  • ホールドアウト検証を使用した場合、検証分割内の観測値を使用して精度の値が計算され、これらの観測値に対して予測が行われます。これらの予測に基づいて混同行列と ROC 曲線も計算されます。

  • 再代入検証を使用した場合、スコアはすべての学習データに基づく再代入精度、予測は再代入予測です。

[モデル] ペインにおける性能のチェック

分類学習器でモデルを学習させると、モデルの全体的な精度がパーセント単位で [モデル] ペインに表示されるので、どれが最適か確認します。[精度 (検証)] が最高のスコアは、ボックスで強調表示されます。このスコアが検証精度になります。検証精度のスコアにより、学習データと比較した新しいデータに対するモデルの性能を推定できます。このスコアは、最適なモデルの選択に役立ちます。

Models and their validation accuracy values displayed in the Models pane

  • 交差検証の場合、スコアはテスト用に確保した分以外のすべての観測値についての精度であり、ホールドアウト (検証) 分割に含まれていた各観測値が対象になります。

  • ホールドアウト検証の場合、スコアはホールドアウトされた観測値についてのスコアです。

  • 再代入検証の場合、スコアはすべての学習データ観測値に対する再代入精度です。

総合スコアが最高でも、目標に最適なモデルではないことがあります。全体的な精度がわずかに低いモデルが目標に最適な分類器になる可能性もあります。たとえば、特定のクラスにおける偽陽性が重要な場合があります。データ収集にコストがかかったり困難な予測子のいくつかを除外することが考えられます。

各クラスにおける分類器の性能を調べるには、混同行列を確認します。

[概要] タブと [モデル] ペインでのモデル メトリクスの表示

モデル メトリクスをモデルの [概要] タブおよび [モデル] ペインに表示し、メトリクスを使用してモデルの評価と比較を行うことができます。代わりに、[結果テーブル] タブを使用してモデルを比較することもできます。詳細については、テーブル ビューでのモデル情報と結果の比較を参照してください。

[学習結果] のメトリクスは検証セットに対して計算されます。[テスト結果] のメトリクス (表示される場合) はテスト セットに対して計算されます。詳細については、テスト セットにおけるモデルの性能の評価を参照してください。

Sample model Summary tab

モデル メトリクス

メトリクス説明ヒント
精度正しく分類された観測値の比率より大きい精度値を探します。
総コスト総誤分類コストより小さい総コスト値を探します。精度値が大きいままであることを確認します。
誤り率誤分類された観測値の比率。誤り率は 1 から精度を減算した値です。より小さい誤り率値を探します。
予測速度検証データ セットの予測時間に基づく新しいデータの推定予測速度この推定にはアプリの内外のバックグラウンド処理が影響する可能性があるため、より正しい比較のために同様の条件でモデルに学習させます。
学習時間モデルの学習の所要時間この推定にはアプリの内外のバックグラウンド処理が影響する可能性があるため、より正しい比較のために同様の条件でモデルに学習させます。
モデル サイズ (コンパクト)モデルをコンパクトなモデル (つまり学習データなし) としてエクスポートした場合のサイズターゲット ハードウェア アプリケーションのメモリ要件に合ったモデル サイズの値を探します。

[モデル] ペインでは、精度、総コスト、または誤り率に従ってモデルを並べ替えることができます。メトリクスを選択してモデルを並べ替えるには、[モデル] ペインの上部にある [並べ替え] リストを使用します。[モデル] ペインでの並べ替えに、すべてのメトリクスを使用できるわけではありません。[結果テーブル] では、他のメトリクスでもモデルを並べ替えることができます (テーブル ビューでのモデル情報と結果の比較を参照)。

[モデル] ペインにリストされている不要なモデルの削除もできます。削除するモデルを選択してペインの右上にある [選択したモデルの削除] ボタンをクリックするか、モデルを右クリックして [削除] を選択します。[モデル] ペインに最後に残ったモデルは削除できません。

テーブル ビューでのモデル情報と結果の比較

[概要] タブまたは [モデル] ペインを使用してモデル メトリクスを比較する代わりに、結果のテーブルを使用できます。[学習] タブの [プロットと結果] セクションで [結果テーブル] をクリックします。[結果テーブル] タブでは、モデルを学習やテストの結果のほか、それらのオプション (モデル タイプ、選択した特徴、PCA など) で並べ替えることもできます。たとえば、モデルを検証精度で並べ替えるには、[精度 (検証)] 列ヘッダーの並べ替え矢印をクリックします。下向き矢印は、精度が最も高いモデルから精度が最も低いモデルの順に並べ替えられていることを示します。

テーブルの列のオプションをさらに表示するには、テーブルの右上にある [表示する列の選択] ボタン をクリックします。[表示する列の選択] ダイアログ ボックスで、結果テーブルに表示する列のボックスをオンにします。新しく選択した列はテーブルの右側に追加されます。

Select Columns to Display dialog box

結果テーブル内でテーブルの列を手動でドラッグ アンド ドロップして、希望する順序で表示することができます。

[お気に入り] 列を使用して、いくつかのモデルをお気に入りとしてマークできます。お気に入りのモデルの選択内容は、結果テーブルと [モデル] ペインで一致するように維持されます。他の列と異なり、[お気に入り] 列と [モデル番号] 列はテーブルから削除できません。

テーブルから行を削除するには、行内のいずれかのエントリを右クリックし、[行を非表示] (行が強調表示されている場合は [選択した行を非表示]) をクリックします。連続する行を削除するには、削除する最初の行内のいずれかのエントリをクリックし、Shift キーを押して、削除する最後の行内のいずれかのエントリをクリックします。次に、強調表示されたエントリのいずれかを右クリックし、[選択した行を非表示] をクリックします。削除したすべての行を元に戻すには、テーブル内のいずれかのエントリを右クリックし、[すべての行を表示] をクリックします。復元された行はテーブルの一番下に追加されます。

テーブルの情報をエクスポートするには、テーブルの右上にあるいずれかのエクスポート ボタン を使用します。テーブルをワークスペースとファイルのどちらにエクスポートするかを選択します。エクスポートしたテーブルには、表示されている行と列のみが含まれます。

分類器の結果のプロット

散布図を使用して分類器の結果を確認します。モデルの散布図を表示するには、[モデル] ペインでモデルを選択します。[学習] タブの [プロットと結果] セクションで矢印をクリックしてギャラリーを開き、[検証結果] グループの [散布] をクリックします。分類器に学習をさせた後では、散布図の表示がデータからモデル予測に切り替わります。ホールドアウト検証または交差検証を使用している場合、これらの予測はホールドアウトされた (検証) 観測値に対する予測です。つまり、ソフトウェアでは、対応する観測値を使用せずに学習させたモデルを使用して各予測値を取得します。

結果を調べるには、右にあるコントロールを使用します。次が可能です。

  • モデル予測をプロットするかデータのみをプロットするかを選択します。

  • [モデル予測] のチェック ボックスを使用して、正しい結果または正しくない結果を表示または非表示にします。

  • [予測子][X][Y] のリストを使用して、プロットする特徴量を選択します。

  • [表示] のチェック ボックスを使用して特定のクラスを表示または非表示にすることにより、結果をクラス別に可視化します。

  • プロットしたクラスのスタックの順番を変更するには、[クラス] でクラスを選択してから [最前面へ移動] をクリックします。

  • ズームインやズームアウト、またはプロットの移動を行います。ズームまたは移動は、散布図上にマウスを合わせ、プロットの右上隅に表示されるツール バーの対応するボタンをクリックすることで有効になります。

Scatter plot of the Fisher iris data. Correctly classified points are marked with an O. Incorrectly classified points are marked with an X.

散布図における特徴量の調査 も参照してください。

アプリで作成した散布図を Figure にエクスポートする方法については、分類学習器アプリのプロットのエクスポートを参照してください。

混同行列におけるクラスごとの性能のチェック

現在選択している分類器の各クラスにおける性能を調べるには、混同行列プロットを使用します。分類モデルに学習させた後、そのモデルの混同行列がアプリで自動的に開きます。"すべて" のモデルに学習させた場合は、最初のモデルの混同行列のみが開きます。別のモデルの混同行列を表示するには、[モデル] ペインでモデルを選択します。[学習] タブの [プロットと結果] セクションで矢印をクリックしてギャラリーを開き、[検証結果] グループの [混同行列 (検証)] をクリックします。混同行列は、分類器が十分には機能しなかった領域を特定するために役立ちます。

プロットを開くと、真のクラスが行に、予測したクラスが列に表示されます。ホールドアウト検証または交差検証を使用している場合、ホールドアウトされた (検証) 観測値に対する予測が混同行列の計算に使用されます。対角線上のセルには、真のクラスと予測したクラスが一致したことが示されます。これらの対角線上のセルが青であれば、分類器によりこの真のクラスの観測値が正しく分類されたことになります。

既定の表示では、各セルに観測値の数が示されます。

クラスごとに分類器がどのように機能したかを調べるには、[プロット][真陽性率 (TPR), 偽陰性率 (FNR)] オプションを選択します。TPR は、真のクラスごとの正しく分類された観測値の割合です。FNR は、真のクラスごとの誤って分類された観測値の割合です。プロットで右の最後の 2 列に真のクラスごとの要約が示されます。

ヒント

分類器が十分に機能しなかった領域を探すには、パーセンテージが高くオレンジで表示されている対角線外のセルを確認します。パーセンテージが高くなるほど、セルの色が濃くなります。これらのオレンジのセルでは、真のクラスと予測したクラスが一致していません。データ点は誤分類されています。

Confusion matrix assessing a model that predicts the country of origin for cars in the carbig data set

この例では carbig データ セットを使用しており、先頭から 5 行目には真のクラスが Japan の自動車がすべて表示されています。各列には、予測したクラスが表示されています。Japan の自動車の 77.2% が正しく分類されているので、このクラスで正しく分類された点の真陽性率は [77.2%] であることが [TPR] 列の青のセルに示されています。

他の Japan の自動車の行は誤分類されており、5.1% の自動車が Germany、5.1% の自動車が Sweden、12.7% の自動車が USA として誤って分類されています。このクラスで誤って分類された点の偽陰性率は [22.8%] であることが、[FNR] 列のオレンジのセルに示されています。

比率ではなく観測値の数 (この例では自動車の台数) を表示するには、[プロット][観測値の数] を選択します。

偽陽性が重要な分類問題の場合、(真のクラスではなく) 予測クラスごとに結果をプロットして誤検出率を調査します。予測クラスごとの結果を表示するには、[プロット][陽性の予測値 (PPV), 偽発見率 (FDR)] オプションを選択します。PPV は、予測されたクラスごとの正しく分類された観測値の割合です。FDR は、予測されたクラスごとの誤って分類された観測値の割合です。このオプションを選択すると、混同行列の表の下に要約行が含まれるようになります。各クラスで正しく予測された点について陽性の予測値が青で表示され、各クラスで誤って予測された点について誤検出率がオレンジで表示されます。

関心の対象となるクラスに含まれる誤分類点が多すぎると判断した場合は、分類器の設定または特徴選択を変更して、より適切なモデルを探してください。

アプリで作成した混同行列プロットを Figure にエクスポートする方法については、分類学習器アプリのプロットのエクスポートを参照してください。

ROC 曲線のチェック

モデルに学習させた後の受信者動作特性 (ROC) 曲線を表示します。[プロットと結果] セクションで矢印をクリックしてギャラリーを開き、[検証結果] グループの [ROC 曲線 (検証)] をクリックします。関数 rocmetrics を使用して ROC 曲線がプロットされます。

ROC curve for a binary classification problem

ROC 曲線は、現在選択されている分類器で計算された分類スコアのさまざまなしきい値についての真陽性率 (TPR) と偽陽性率 (FPR) の関係を示します。[モデルの操作点] に、分類器で観測値を分類するために使用されるしきい値に対応する偽陽性率と真陽性率が表示されます。たとえば、0.4 という偽陽性率は、現在の分類器が陰性クラスの観測値の 40% を誤って陽性クラスに割り当てていることを示します。0.9 という真陽性率は、現在の分類器が陽性クラスの観測値の 90% を正しく陽性クラスに割り当てていることを示します。

[AUC] (曲線の下の領域) の値は、ROC 曲線の FPR = 0 から FPR = 1 までの FPR に対する積分 (TPR の値) に対応します。AUC の値は分類器の全体的な品質の尺度です。AUC の値は 0 から 1 までの範囲で表され、AUC の値が大きいほど分類器の性能が高いことを示します。クラスと学習済みのモデルを比較するには、ROC 曲線で性能の違いを確認します。

[プロット] の下の [表示] のチェック ボックスを使用して、特定のクラスの ROC 曲線を作成できます。ただし、バイナリ分類問題では両方のクラスの ROC 曲線を調べる必要はありません。2 つの ROC 曲線は対称であり、AUC の値は同じになります。一方のクラスの TPR はもう一方のクラスの真陰性率 (TNR) であり、TNR は 1–FPR です。したがって、一方のクラスの TPR と FPR のプロットはもう一方のクラスの 1-FPR と 1-TPR のプロットと同じになります。

マルチクラス分類器の場合、アプリでは、バイナリ問題がクラスごとに 1 つになるように一連の 1 対他のバイナリ分類問題を定式化し、対応するバイナリ問題を使用して各クラスの ROC 曲線を求めます。それぞれのバイナリ問題において、1 つのクラスが陽性で残りが陰性であると仮定されます。プロットのモデル操作点は、1 対他のバイナリ問題の各クラスについての分類器の性能を示します。

ROC curves for a multiclass classification problem

詳細については、rocmetrics およびROC 曲線とパフォーマンス メトリクスを参照してください。

アプリで作成した ROC 曲線プロットを Figure にエクスポートする方法については、分類学習器アプリのプロットのエクスポートを参照してください。

レイアウトの変更によるモデル プロットの比較

[学習] タブの [プロットと結果] セクションのプロット オプションを使用して、分類学習器で学習させたモデルの結果を可視化します。プロットのレイアウトを再編成して複数のモデルの結果を比較できます。[レイアウト] ボタンのオプションを使用するか、プロットをドラッグ アンド ドロップするか、モデル プロットのタブの右にある [ドキュメント アクション] ボタンに表示されるオプションを選択します。

たとえば、分類学習器で 2 つのモデルに学習させた後、次のいずれかの手順を使用して、各モデルのプロットを表示し、プロットのレイアウトを変更してプロットを比較します。

  • [プロットと結果] セクションで [レイアウト] をクリックし、[モデルの比較] を選択します。

  • 2 つ目のモデルのタブ名をクリックし、2 つ目のモデルのタブを右にドラッグ アンド ドロップします。

  • モデル プロットのタブの右端にある [ドキュメント アクション] ボタンをクリックします。[すべて並べて表示] オプションを選択し、1 行 2 列のレイアウトを指定します。

    Selections for a side-by-side model comparison using the Document Actions button

プロットの右上にある [プロット オプションを非表示] ボタン をクリックするとプロットのスペースを大きくできることに注意してください。

テスト セットにおけるモデルの性能の評価

分類学習器でモデルに学習させた後、アプリでテスト セットにおけるモデルの性能を評価できます。このプロセスにより、新しいデータにおけるモデルの性能が検証精度で適切に推定されるかどうかを確認できます。

  1. テスト データ セットを分類学習器にインポートします。あるいは、アプリにデータをインポートするときに一部のデータをテスト用に確保します ((オプション) テスト用のデータの確保を参照)。

    • テスト データ セットが MATLAB® ワークスペース内にある場合は、[テスト] タブの [データ] セクションで [テスト データ] をクリックし、[ワークスペースから] を選択します。

    • テスト データ セットがファイル内にある場合は、[データ] セクションで [テスト データ] をクリックし、[ファイルから] を選択します。スプレッドシート、テキスト ファイル、コンマ区切り値 (.csv) ファイルなどのファイル タイプをリストから選択するか、[すべてのファイル] を選択して .dat など他のファイル タイプを参照します。

    [テスト データのインポート] ダイアログ ボックスで、[テスト データ セット変数] のリストからテスト データ セットを選択します。テスト セットは、学習と検証のためにインポートした予測子と同じ変数をもたなければなりません。テスト応答変数内の一意の値は、応答変数全体におけるクラスのサブセットでなければなりません。

  2. テスト セット メトリクスを計算します。

    • 単一のモデルのテスト メトリクスを計算するには、[モデル] ペインで学習済みモデルを選択します。[テスト] タブの [テスト] セクションで [選択項目をテスト] をクリックします。

    • すべての学習済みモデルのテスト メトリクスを計算するには、[テスト] セクションで [すべてテスト] をクリックします。

    学習データと検証データを含むデータ セット全体 (テスト データは除く) で学習させた各モデルのテスト セットの性能が計算されます。

  3. 検証精度とテスト精度を比較します。

    モデルの [概要] タブの [学習結果] セクションと [テスト結果] セクションに、それぞれ検証メトリクスとテスト メトリクスが表示されます。検証精度によってテスト精度が適切に推定されるかどうかを確認できます。

    プロットを使用したテスト結果の可視化もできます。

    • 混同行列を表示します。[テスト] タブの [プロットと結果] セクションで [混同行列 (テスト)] をクリックします。

    • ROC 曲線を表示します。[プロットと結果] セクションで [ROC 曲線 (テスト)] をクリックします。

例については、分類学習器アプリにおけるテスト セットを使用した分類器の性能チェックを参照してください。ハイパーパラメーターの最適化ワークフローでテスト セット メトリクスを使用する例については、分類学習器アプリでハイパーパラメーターの最適化を使用した分類器の学習を参照してください。

関連するトピック