Main Content

resubEdge

    説明

    e = resubEdge(Mdl) は、Mdl.X に格納されている予測子データ、Mdl.Y に格納されている対応する真のクラス ラベル、Mdl.W に格納されている観測値の重みを使用して、学習済み分類モデル Mdl の重み付きの再代入分類エッジ(e) を返します。

    e = resubEdge(Mdl,'IncludeInteractions',includeInteractions) は、計算に交互作用項を含めるかどうかを指定します。この構文は一般化加法モデルにのみ適用されます。

    すべて折りたたむ

    ionosphere データセットを読み込みます。このデータセットには、レーダー反射についての 34 個の予測子と、不良 ('b') または良好 ('g') という 351 個の二項反応が含まれています。

    load ionosphere

    サポート ベクター マシン (SVM) 分類器に学習させます。データを標準化し、'g' が陽性クラスであることを指定します。

    SVMModel = fitcsvm(X,Y,'Standardize',true,'ClassNames',{'b','g'});

    SVMModel は学習させた ClassificationSVM 分類器です。

    再代入エッジ (学習標本マージンの平均) を推定します。

    e = resubEdge(SVMModel)
    e = 5.0999
    

    分類器エッジは、分類器マージンの平均を測定します。特徴選択を行う方法のひとつとして、複数のモデルからの学習標本エッジを比較します。この条件のみに基づくと、エッジが最高となる分類器が最善の分類器となります。

    ionosphere データセットを読み込みます。安定させるため、最初の 2 つの予測子を削除します。

    load ionosphere
    X = X(:,3:end);

    次の 2 つのデータセットを定義します。

    • fullX にはすべての予測子が含まれます。

    • partX には上位 10 個の最も重要な予測子が含まれます。

    fullX = X;
    idx = fscmrmr(X,Y);
    partX = X(:,idx(1:10));

    各予測子セットの単純ベイズ分類器に学習させます。

    FullMdl = fitcnb(fullX,Y);
    PartMdl = fitcnb(partX,Y);

    FullMdlPartMdl は、学習済みの ClassificationNaiveBayes 分類器です。

    分類器ごとに学習標本エッジを推定します。

    fullEdge = resubEdge(FullMdl)
    fullEdge = 0.6554
    
    partEdge = resubEdge(PartMdl)
    partEdge = 0.7796
    

    上位 10 個の最も重要な予測子で学習させた分類器のエッジの方が大きくなります。この結果は、これらの予測子だけを使用して学習させた分類器の標本内近似の方が優れていることを示しています。

    学習標本マージンおよびエッジを調べて、線形項が含まれる一般化加法モデル (GAM) を線形項と交互作用項の両方が含まれる GAM と比較します。この比較のみに基づくと、マージンおよびエッジが最大である分類器が最良のモデルです。

    census1994.mat に保存されている 1994 年の国勢調査データを読み込みます。このデータセットは、個人の年収が $50,000 を超えるかどうかを予測するための、米国勢調査局の人口統計データから構成されます。この分類タスクでは、年齢、労働階級、教育レベル、婚姻区分、人種などが与えられた人の給与カテゴリを予測するモデルを近似します。

    load census1994

    census1994 には学習データセット adultdata および検定データセット adulttest が含まれています。この例では、実行時間を短縮するために、関数datasampleを使用して adultdata から 500 の学習観測値をサブサンプリングします。

    rng('default') % For reproducibility
    NumSamples = 5e2;
    adultdata = datasample(adultdata,NumSamples,'Replace',false);

    予測子の線形項と交互作用項の両方が格納されている GAM に学習させます。p 値が 0.05 以下である利用可能な交互作用項をすべて含めるように指定します。

    Mdl = fitcgam(adultdata,'salary','Interactions','all','MaxPValue',0.05)
    Mdl = 
      ClassificationGAM
               PredictorNames: {1x14 cell}
                 ResponseName: 'salary'
        CategoricalPredictors: [2 4 6 7 8 9 10 14]
                   ClassNames: [<=50K    >50K]
               ScoreTransform: 'logit'
                    Intercept: -28.5594
                 Interactions: [82x2 double]
              NumObservations: 500
    
    
      Properties, Methods
    
    

    MdlClassificationGAM モデル オブジェクトです。Mdl には 82 個の交互作用項が含まれています。

    Mdl の学習標本マージンおよびエッジを推定します。

    M = resubMargin(Mdl);
    E = resubEdge(Mdl)
    E = 1.0000
    

    交互作用項を含めずに Mdl の学習標本マージンおよびエッジを推定します。

    M_nointeractions = resubMargin(Mdl,'IncludeInteractions',false);
    E_nointeractions = resubEdge(Mdl,'IncludeInteractions',false)
    E_nointeractions = 0.9516
    

    箱ひげ図を使用してマージンの分布を表示します。

    boxplot([M M_nointeractions],'Labels',{'Linear and Interaction Terms','Linear Terms Only'})
    title('Box Plots of Training Sample Margins')

    Figure contains an axes object. The axes object with title Box Plots of Training Sample Margins contains 14 objects of type line.

    計算に交互作用項を含める場合は、Mdl のすべての再代入マージン値が 1、再代入エッジ値 (マージンの平均) が 1 になります。Mdl に交互作用項を含めない場合、マージンおよびエッジは小さくなります。

    入力引数

    すべて折りたたむ

    分類機械学習モデル。完全な分類モデル オブジェクトとして指定します。サポートされるモデルは次の表に記載されています。

    モデル分類モデル オブジェクト
    一般化加法モデルClassificationGAM
    k 最近傍モデルClassificationKNN
    単純ベイズ モデルClassificationNaiveBayes
    ニューラル ネットワーク モデルClassificationNeuralNetwork
    1 クラスおよびバイナリ分類用のサポート ベクター マシンClassificationSVM

    モデルの交互作用項を含むというフラグ。true または false として指定します。この引数は、一般化加法モデル (GAM) の場合のみ有効です。つまり、この引数を指定できるのは、MdlClassificationGAM である場合だけです。

    Mdl に交互作用項が含まれる場合、既定値は true です。モデルに交互作用項が含まれない場合、値は false でなければなりません。

    データ型: logical

    詳細

    すべて折りたたむ

    分類エッジ

    "分類エッジ" は、分類マージンの加重平均です。

    特徴選択を実行する場合などに複数の分類器から選択する方法の 1 つは、エッジが最大になる分類器を選択することです。

    分類マージン

    バイナリ分類の "分類マージン" は、各観測値における真のクラスの分類スコアと偽のクラスの分類スコアの差です。マルチクラス分類の "分類マージン" は、真のクラスの分類スコアと偽のクラスの最大分類スコアの差を表します。

    各マージンのスケールが同じである場合 (つまり、スコア値が同じスコア変換に基づく場合)、マージンを分類の信頼尺度として使用できます。複数の分類器の中で、マージンが大きい分類器の方が優れています。

    アルゴリズム

    resubEdge は、オブジェクト (Mdl) の対応する関数 edge に従って分類エッジを計算します。モデル固有の説明については、次の表に示す関数 edge のリファレンス ページを参照してください。

    モデル分類モデル オブジェクト (Mdl)オブジェクト関数 edge
    一般化加法モデルClassificationGAMedge
    k 最近傍モデルClassificationKNNedge
    単純ベイズ モデルClassificationNaiveBayesedge
    ニューラル ネットワーク モデルClassificationNeuralNetworkedge
    1 クラスおよびバイナリ分類用のサポート ベクター マシンClassificationSVMedge

    拡張機能

    バージョン履歴

    R2012a で導入

    すべて展開する

    R2022a での動作変更