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. [新規セッション] ダイアログ ボックスで、[データセット変数] のリストからテーブル creditrating を選択します。

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

    New Session dialog box

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

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

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

    Specify misclassification costs dialog box

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

    Import costs from workspace dialog box

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

    Dialog box with updated values for misclassification costs

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

    ヒント

    Parallel Computing Toolbox™ がある場合、はじめて [学習] をクリックすると (または長時間経過した後で再び [学習] をクリックすると)、[プールを開いています] ダイアログ ボックスが開きます。このダイアログ ボックスは、ワーカーの並列プールが開くときに開いたままになります。この間、ソフトウェアの対話的な操作はできません。プールが開いた後で、同時に複数の分類器に学習させ、作業を続行することができます。

    Scatter plot of the credit rating data. Correctly classified points are marked with an O. Incorrectly classified points are marked with an X. The history panel on the left shows the accuracy for each model.

    メモ

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

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

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

    Confusion matrix plot

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

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

    Confusion matrix plot. The Positive predictive value and false discovery rates are shown underneath.

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

    Current Model panel

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

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

関連するトピック