edge
ガウス カーネル分類モデルの分類エッジ
構文
説明
は、テーブル e
= edge(Mdl
,Tbl
,ResponseVarName
)Tbl
に含まれている予測子データと Tbl.ResponseVarName
に含まれているクラス ラベルを使用して学習させたカーネル分類器 Mdl
の分類エッジを返します。
は、e
= edge(___,'Weights'
,weights
)weights
で指定された観測値の重みを使用して、重み付きの分類エッジを返します。前の構文におけるいずれかの入力引数の組み合わせの後に、重みを指定します。
メモ
予測子データ X
または Tbl
内の予測子変数に欠損値がある場合、関数 edge
で NaN が返されることがあります。詳細については、欠損値がある予測子データに対して edge で NaN が返されることがあるを参照してください。
例
ionosphere
データ セットを読み込みます。このデータ セットには、レーダー反射についての 34 個の予測子と、不良 ('b'
) または良好 ('g'
) という 351 個の二項反応が含まれています。
load ionosphere
データ セットを学習セットとテスト セットに分割します。テスト セット用に 15% のホールドアウト標本を指定します。
rng('default') % For reproducibility Partition = cvpartition(Y,'Holdout',0.15); trainingInds = training(Partition); % Indices for the training set testInds = test(Partition); % Indices for the test set
学習セットを使用してバイナリ カーネル分類モデルに学習をさせます。
Mdl = fitckernel(X(trainingInds,:),Y(trainingInds));
学習セットとテストセットのエッジを推定します。
eTrain = edge(Mdl,X(trainingInds,:),Y(trainingInds))
eTrain = 2.1703
eTest = edge(Mdl,X(testInds,:),Y(testInds))
eTest = 1.5643
複数のモデルによるテストセットのエッジを比較することにより、特徴選択を実行します。この条件のみに基づくと、エッジが最高となる分類器が最善の分類器となります。
ionosphere
データ セットを読み込みます。このデータ セットには、レーダー反射についての 34 個の予測子と、不良 ('b'
) または良好 ('g'
) という 351 個の二項反応が含まれています。
load ionosphere
データ セットを学習セットとテスト セットに分割します。テスト セット用に 15% のホールドアウト標本を指定します。
rng('default') % For reproducibility Partition = cvpartition(Y,'Holdout',0.15); trainingInds = training(Partition); % Indices for the training set XTrain = X(trainingInds,:); YTrain = Y(trainingInds); testInds = test(Partition); % Indices for the test set XTest = X(testInds,:); YTest = Y(testInds);
予測子変数の半分を無作為に選択します。
p = size(X,2); % Number of predictors
idxPart = randsample(p,ceil(0.5*p));
2 つのバイナリ カーネル分類モデルに学習をさせます。1 つではすべての予測子を、もう 1 つでは半分の予測子を使用します。
Mdl = fitckernel(XTrain,YTrain); PMdl = fitckernel(XTrain(:,idxPart),YTrain);
Mdl
および PMdl
は ClassificationKernel
モデルです。
各分類器についてテストセットのエッジを推定します。
fullEdge = edge(Mdl,XTest,YTest)
fullEdge = 1.6335
partEdge = edge(PMdl,XTest(:,idxPart),YTest)
partEdge = 2.0205
テストセットのエッジに基づくと、半分の予測子を使用する分類器の方がモデルとして優れています。
入力引数
バイナリ カーネル分類モデル。ClassificationKernel
モデル オブジェクトを指定します。ClassificationKernel
モデル オブジェクトは、fitckernel
を使用して作成できます。
クラス ラベル。categorical 配列、文字配列、string 配列、logical ベクトル、数値ベクトル、または文字ベクトルの cell 配列を指定します。
データ型: categorical
| char
| string
| logical
| single
| double
| cell
モデルを学習させるために使用する標本データ。table として指定します。Tbl
の各行は 1 つの観測値に、各列は 1 つの予測子変数に対応します。必要に応じて、応答変数用および観測値の重み用の追加列を Tbl
に含めることができます。Tbl
には、Mdl
を学習させるために使用したすべての予測子が含まれていなければなりません。文字ベクトルの cell 配列ではない cell 配列と複数列の変数は使用できません。
Mdl
を学習させるために使用した応答変数が Tbl
に含まれている場合、ResponseVarName
または Y
を指定する必要はありません。
テーブルに格納されている標本データを使用して Mdl
の学習を行った場合、edge
の入力データもテーブルに格納されていなければなりません。
応答変数の名前。Tbl
内の変数の名前で指定します。Mdl
を学習させるために使用した応答変数が Tbl
に含まれている場合、ResponseVarName
を指定する必要はありません。
ResponseVarName
を指定する場合は、文字ベクトルまたは string スカラーとして指定しなければなりません。たとえば、応答変数が Tbl.Y
として格納されている場合、ResponseVarName
として 'Y'
を指定します。それ以外の場合、Tbl
の列は Tbl.Y
を含めてすべて予測子として扱われます。
応答変数は、categorical 配列、文字配列、string 配列、logical ベクトル、数値ベクトル、または文字ベクトルの cell 配列でなければなりません。応答変数が文字配列の場合、各要素は配列の 1 つの行に対応しなければなりません。
データ型: char
| string
観測値の重み。数値ベクトルまたは Tbl
内の変数の名前を指定します。
weights
が数値ベクトルである場合、weights
のサイズはX
またはTbl
の行数と等しくなければなりません。weights
がTbl
内の変数名である場合、weights
を文字ベクトルまたは string スカラーとして指定しなければなりません。たとえば、重みがTbl.W
として格納されている場合、weights
として'W'
を指定します。それ以外の場合、Tbl
の列はTbl.W
を含めてすべて予測子として扱われます。
重みを指定すると、edge
は重み付きの分類エッジを計算します。X
または Tbl
の各行に含まれている観測値には、weights
の対応する重みが適用されます。
edge
は、合計がそれぞれのクラスの事前確率の値になるように weights
を正規化します。
データ型: single
| double
| char
| string
詳細
"分類エッジ" は、分類マージンの加重平均です。
特徴選択を実行する場合などに複数の分類器から選択する方法の 1 つは、エッジが最大になる分類器を選択することです。
バイナリ分類の "分類マージン" は、各観測値における真のクラスの分類スコアと偽のクラスの分類スコアの差です。
このソフトウェアでは、バイナリ分類の分類マージンは次のように定義されます。
x は観測値です。x の真のラベルが陽性クラスである場合、y は 1、それ以外の場合は –1 です。f(x) は観測値 x についての陽性クラスの分類スコアです。一般的には、分類マージンは m = yf(x) と定義されています。
各マージンのスケールが同じである場合、マージンを分類の信頼尺度として使用できます。複数の分類器の中で、マージンが大きい分類器の方が優れています。
カーネル分類モデルの場合、観測値 x (行列ベクトル) を陽性クラスに分類する生の "分類スコア" は次のように定義されます。
は特徴量を拡張するための観測値の変換です。
β は推定された係数の列ベクトルです。
b は推定されたスカラー バイアスです。
x を陰性クラスに分類する生の分類スコアは −f(x) です。このソフトウェアでは、スコアが正になるクラスに観測値が分類されます。
カーネル分類モデルがロジスティック回帰学習器から構成されている場合、'logit'
スコア変換が生の分類スコアに適用されます (ScoreTransform
を参照)。
拡張機能
この関数は、GPU 配列を完全にサポートします。詳細は、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2017b で導入edge
は GPU 配列を完全にサポートします。
入力モデル オブジェクトに学習させるときに既定以外のコスト行列を指定すると、関数 edge
で以前のリリースとは異なる値が返されます。
関数 edge
は、Prior
プロパティに格納された事前確率を使用して入力データの観測値の重みを正規化します。Prior
プロパティの値を関数で使用する方法については変更されていません。ただし、既定以外のコスト行列をもつモデルについて入力モデル オブジェクトに格納されるプロパティの値が変更されたため、関数から異なる値が返されることがあります。
プロパティの値の変更に関する詳細については、Cost プロパティにユーザー指定のコスト行列を格納を参照してください。
ソフトウェアでコスト行列、事前確率、および観測値の重みを以前のリリースと同じように扱う場合は、誤分類コスト行列に応じた事前確率と観測値の重みの調整の説明に従って、既定以外のコスト行列の事前確率と観測値の重みを調整します。その後、分類モデルに学習させるときに、調整後の事前確率と観測値の重みを名前と値の引数 Prior
と Weights
を使用して指定し、既定のコスト行列を使用します。
関数 edge
で分類マージンの加重平均を計算する際に、スコアが NaN の観測値が省略されなくなりました。そのため、予測子データ X
または Tbl
内の予測子変数に欠損値がある場合に edge
で NaN が返されることがあります。ほとんどの場合、テスト セットの観測値に予測子の欠損がなければ、関数 edge
で NaN が返されることはありません。
この変更により、fitcauto
を使用する場合の分類モデルの自動選択が改善されます。この変更の前は、NaN 以外の予測子が少ないモデルが選択される (新しいデータの分類に最適であると予測される) ことがありました。
コードの edge
で NaN が返される場合、このような結果にならないようにコードを更新できます。rmmissing
または fillmissing
を使用して、欠損値を削除するか置き換えます。
次の表に、オブジェクト関数 edge
で NaN が返される可能性がある分類モデルを示します。詳細については、それぞれの関数 edge
の「互換性の考慮事項」を参照してください。
モデル タイプ | 完全またはコンパクトなモデル オブジェクト | オブジェクト関数 edge |
---|---|---|
判別分析分類モデル | ClassificationDiscriminant , CompactClassificationDiscriminant | edge |
分類用のアンサンブル学習器 | ClassificationEnsemble , CompactClassificationEnsemble | edge |
ガウス カーネル分類モデル | ClassificationKernel | edge |
k 最近傍分類モデル | ClassificationKNN | edge |
線形分類モデル | ClassificationLinear | edge |
ニューラル ネットワーク分類モデル | ClassificationNeuralNetwork , CompactClassificationNeuralNetwork | edge |
サポート ベクター マシン (SVM) 分類モデル | edge |
参考
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)