resubEdge
再代入分類エッジ
説明
例
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.0997
分類器エッジは、分類器マージンの平均を測定します。特徴選択を行う方法のひとつとして、複数のモデルからの学習標本エッジを比較します。この条件のみに基づくと、エッジが最高となる分類器が最善の分類器となります。
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);
FullMdl と PartMdl は、学習済みの ClassificationNaiveBayes 分類器です。
分類器ごとに学習標本エッジを推定します。
fullEdge = resubEdge(FullMdl)
fullEdge = 0.6554
partEdge = resubEdge(PartMdl)
partEdge = 0.7796
上位 10 個の最も重要な予測子で学習させた分類器のエッジの方が大きくなります。この結果は、これらの予測子だけを使用して学習させた分類器の標本内近似の方が優れていることを示しています。
学習標本マージンおよびエッジを調べて、線形項が含まれる一般化加法モデル (GAM) を線形項と交互作用項の両方が含まれる GAM と比較します。この比較のみに基づくと、マージンおよびエッジが最大である分類器が最適なモデルです。
census1994.mat に保存されている 1994 年の国勢調査データを読み込みます。このデータ セットは、個人の年収が $50,000 を超えるかどうかを予測するための、米国勢調査局の人口統計データから構成されます。この分類タスクでは、年齢、労働階級、教育レベル、婚姻区分、人種などが与えられた人の給与カテゴリを予測するモデルを当てはめます。
load census1994census1994 には学習データ セット 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: {'age' 'workClass' 'fnlwgt' 'education' 'education_num' 'marital_status' 'occupation' 'relationship' 'race' 'sex' 'capital_gain' 'capital_loss' 'hours_per_week' 'native_country'}
ResponseName: 'salary'
CategoricalPredictors: [2 4 6 7 8 9 10 14]
ClassNames: [<=50K >50K]
ScoreTransform: 'logit'
Intercept: -28.5594
Interactions: [82×2 double]
NumObservations: 500
Properties, Methods
Mdl は ClassificationGAM モデル オブジェクトです。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')

計算に交互作用項を含める場合は、Mdl のすべての再代入マージン値が 1、再代入エッジ値 (マージンの平均) が 1 になります。Mdl に交互作用項を含めない場合、マージンおよびエッジは小さくなります。
入力引数
分類機械学習モデル。完全な分類モデル オブジェクトとして指定します。サポートされるモデルは次の表に記載されています。
| モデル | 分類モデル オブジェクト |
|---|---|
| 一般化加法モデル | ClassificationGAM |
| k 最近傍モデル | ClassificationKNN |
| 単純ベイズ モデル | ClassificationNaiveBayes |
| ニューラル ネットワーク モデル | ClassificationNeuralNetwork |
| 1 クラスおよびバイナリ分類用のサポート ベクター マシン | ClassificationSVM |
モデルの交互作用項を含むというフラグ。true または false として指定します。この引数は、一般化加法モデル (GAM) の場合のみ有効です。つまり、この引数を指定できるのは、Mdl が ClassificationGAM である場合だけです。
Mdl に交互作用項が含まれる場合、既定値は true です。モデルに交互作用項が含まれない場合、値は false でなければなりません。
データ型: logical
詳細
"分類エッジ" は、分類マージンの加重平均です。
特徴選択を実行する場合などに複数の分類器から選択する方法の 1 つは、エッジが最大になる分類器を選択することです。
バイナリ分類の "分類マージン" は、各観測値における真のクラスの分類スコアと偽のクラスの分類スコアの差です。マルチクラス分類の "分類マージン" は、真のクラスの分類スコアと偽のクラスの最大分類スコアの差を表します。
各マージンのスケールが同じである場合 (つまり、スコア値が同じスコア変換に基づく場合)、マージンを分類の信頼尺度として使用できます。複数の分類器の中で、マージンが大きい分類器の方が優れています。
アルゴリズム
resubEdge は、オブジェクト (Mdl) の対応する関数 edge に従って分類エッジを計算します。モデル固有の説明については、次の表に示す関数 edge のリファレンス ページを参照してください。
| モデル | 分類モデル オブジェクト (Mdl) | オブジェクト関数 edge |
|---|---|---|
| 一般化加法モデル | ClassificationGAM | edge |
| k 最近傍モデル | ClassificationKNN | edge |
| 単純ベイズ モデル | ClassificationNaiveBayes | edge |
| ニューラル ネットワーク モデル | ClassificationNeuralNetwork | edge |
| 1 クラスおよびバイナリ分類用のサポート ベクター マシン | ClassificationSVM | edge |
拡張機能
使用上の注意事項および制限事項:
この関数は、
ClassificationKNN、ClassificationNeuralNetwork、またはClassificationSVMオブジェクトとして指定した学習済み分類モデルの GPU 配列を完全にサポートします。
詳細は、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2012a で導入resubEdge は、ClassificationNeuralNetwork の GPU 配列を完全にサポートします。
R2023b 以降では、次の分類モデルのオブジェクト関数において、予測子に欠損値がある観測値が再代入 ("resub") と交差検証 ("kfold") による分類エッジ、損失、マージン、および予測の計算でその一部として使用されます。
以前のリリースでは、予測子に欠損値がある観測値は再代入と交差検証の計算で省略されていました。
SVM モデルの入力モデル オブジェクトに学習させるときに既定以外のコスト行列を指定すると、関数 resubEdge で以前のリリースとは異なる値が返されます。
関数 resubEdge は、W プロパティに格納された観測値の重みを使用します。W プロパティの値を関数で使用する方法については変更されていません。ただし、既定以外のコスト行列をもつ ClassificationSVM モデル オブジェクトについて入力モデル オブジェクトに格納されるプロパティの値が変更されたため、関数から異なる値が返されることがあります。
プロパティの値の変更に関する詳細については、Cost プロパティにユーザー指定のコスト行列を格納を参照してください。
ソフトウェアでコスト行列、事前確率、および観測値の重みを以前のリリースと同じように扱う場合は、誤分類コスト行列に応じた事前確率と観測値の重みの調整の説明に従って、既定以外のコスト行列の事前確率と観測値の重みを調整します。その後、分類モデルに学習させるときに、調整後の事前確率と観測値の重みを名前と値の引数 Prior と Weights を使用して指定し、既定のコスト行列を使用します。
参考
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)