Main Content

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

分類学習器アプリの誤分類コストを使用した分類器の学習および比較

この例では、分類学習器アプリで指定した誤分類コストを使用する分類器を作成して比較する方法を示します。学習前に誤分類コストを指定し、精度および総誤分類コスト結果を使用して学習済みモデルを比較します。

  1. MATLAB® のコマンド ウィンドウで、標本ファイル CreditRating_Historical.dat を table に読み込みます。予測子データは、法人顧客リストの財務比率と業種の情報で構成されます。応答変数は、格付機関が割り当てた格付けから構成されます。すべての A 格付けを 1 つの格付けに統合します。BC の格付けに対して同様に実行し、応答変数に 3 つの異なる格付けが含まれるようにします。3 つの格付けのうち、A が最良で C が最悪と見なされます。

    creditrating = readtable('CreditRating_Historical.dat');
    Rating = categorical(creditrating.Rating);
    Rating = mergecats(Rating,{'AAA','AA','A'},'A');
    Rating = mergecats(Rating,{'BBB','BB','B'},'B');
    Rating = mergecats(Rating,{'CCC','CC','C'},'C');
    creditrating.Rating = Rating;
  2. これらを顧客の格付けの誤分類に関連付けられたコストと仮定します。

     顧客の予測された格付け
    ABC
    顧客の真の格付けA$0$100$200
    B$500$0$100
    C$1000$500$0

    たとえば、C の格付け顧客を A の格付け顧客として誤分類するコストは $1000 です。このコストは、信用が高い顧客を信用が低い顧客として分類するより、信用が低い顧客を信用が高い顧客として分類するほうが、コストが高いことを示しています。

    誤分類コストを含む行列変数を作成します。クラス名と行列変数におけるそれらの順序を指定する別の変数を作成します。

    ClassificationCosts = [0 100 200; 500 0 100; 1000 500 0];
    ClassNames = categorical({'A','B','C'});
    

    ヒント

    または、分類学習器アプリ内で誤分類コストを直接指定することもできます。詳細は、誤分類コストの指定を参照してください。

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

    Classification Learner tab

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

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

    ダイアログ ボックスに示されているように、データ型に基づいて応答および予測子変数が選択されます。既定の応答変数は変数 Rating です。既定の検証オプションは、過適合を防止する交差検証です。この例では、既定の設定を変更しないでください。

    New Session from Workspace dialog box

  6. 既定の設定をそのまま使用するには、[セッションの開始] をクリックします。

  7. 誤分類コストを指定します。[分類学習器] タブの [オプション] セクションで [誤分類コスト] をクリックします。ダイアログ ボックスが開き、既定の誤分類コストが表示されます。

    ダイアログ ボックスで [ワークスペースからインポート] をクリックします。

    Specify misclassification costs dialog box. By default, correct classifications have a cost of 0, and incorrect classifications have a cost of 1.

    [インポート] ダイアログ ボックスで、[ClassificationCosts] をコスト変数、[ClassNames] をコスト変数内のクラス順序として選択します。[インポート] をクリックします。

    Import costs from workspace dialog box

    [誤分類コスト] ダイアログ ボックスで、値が更新されます。[OK] をクリックして変更を保存します。

    Dialog box with updated values for misclassification costs

  8. 複雑な木、中程度の木、粗い木を同時に学習させます。[分類学習器] タブの [モデル タイプ] セクションで矢印をクリックしてギャラリーを開きます。[決定木] グループで [すべての木] をクリックします。[学習] セクションで [学習] をクリックします。各ツリー モデル タイプに学習させて、モデルを [モデル] ペインに表示します。

    ヒント

    Parallel Computing Toolbox™ を使用している場合、[学習] セクションにある [並列の使用] ボタンを選択してから [学習] をクリックすることにより、すべてのモデル ([すべての木]) を同時に学習させることができます。[学習] をクリックすると [並列プールを開いています] ダイアログ ボックスが開いたままになります。同時に、ワーカーの並列プールが開きます。この間、ソフトウェアの対話的な操作はできません。プールが開いた後、モデルの学習が同時に行われます。

    Validation confusion matrix for the fine tree model. Blue values indicate correct classifications, and red values indicate incorrect classifications.

    メモ

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

  9. [モデル] ペインでモデルをクリックして結果を表示します。これは、[現在のモデルの概要] ペインに表示されます。各モデルには正しく予測された応答の割合を示す検証精度のスコアがあります。[モデル] ペインで、最高の [精度 (検証)] スコアが四角で囲まれて強調表示されます。

  10. 各クラスにおける予測子の精度を調べます。[分類学習器] タブの [プロット] セクションで矢印をクリックしてギャラリーを開き、[検証結果] グループの [混同行列 (検証)] をクリックします。選択したモデルに対する真のクラスと予測したクラスの結果が含まれている行列が表示されます (この場合は、中程度の木)。

    Validation confusion matrix for the medium tree model. Blue values indicate correct classifications, and red values indicate incorrect classifications.

  11. 予測クラスごとに結果をプロットして偽発見率を調査することもできます。[プロット][陽性の予測値 (PPV) 偽発見率 (FDR)] オプションを選択します。

    中程度の木の混同行列で、対角の下の要素には小さな割合の値があります。これらの値は、モデルが顧客の真の格付けよりも高い格付けを割り当てないようにしていることを示しています。

    Validation confusion matrix, displayed with positive predictive values and false discovery rates

  12. ツリー モデルの総誤分類コストを比較します。モデルの総誤分類コストを調べるには、[モデル] ペインでモデルを選択してから、[現在のモデルの概要] ペインで [学習結果] セクションを確認します。たとえば、中程度の木には結果が 3 つあります。

    Current Model Summary pane with results for the medium tree

    あるいは、総誤分類コストに基づいてモデルを並べ替えることができます。[モデル] ペインで [並べ替え] リストを開き、[総コスト (検証)] を選択します。

    一般的に、精度が高く、総誤分類コストが低いモデルを選択します。この例では、3 つのモデルのうち、中程度の木に最高の検証精度の値と最低の総誤分類コストがあります。

ワークフローで行うように、誤分類コストなしでモデルの特徴選択および変換または調整を実行できます。ただし、性能を評価する際に常にモデルの総誤分類コストをチェックします。誤分類コストを使用する際のエクスポートしたモデルとエクスポートしたコードの差については、エクスポートされたモデルと生成されたコードの誤分類コストを参照してください。

関連するトピック