kfoldEdge
交差検証済みカーネル分類モデルの分類エッジ
説明
は、交差検証済みのバイナリ カーネル モデル (edge = kfoldEdge(CVMdl)ClassificationPartitionedKernel) CVMdl によって取得した分類エッジを返します。kfoldEdge は、すべての分割について、学習分割観測値に対して学習をさせたモデルを使用して、検証分割観測値の分類エッジを計算します。
は、1 つ以上の名前と値のペアの引数で指定された追加オプションを使用して、分類エッジを返します。たとえば、分割数や集約レベルを指定します。edge = kfoldEdge(CVMdl,Name,Value)
例
ionosphere データ セットを読み込みます。このデータ セットには、レーダー反射についての 34 個の予測子と、不良 ('b') または良好 ('g') というラベルが付いた 351 個の二項反応が含まれています。
load ionosphereこのデータを使用して、バイナリ カーネル分類モデルを交差検証します。
CVMdl = fitckernel(X,Y,'Crossval','on')
CVMdl =
ClassificationPartitionedKernel
CrossValidatedModel: 'Kernel'
ResponseName: 'Y'
NumObservations: 351
KFold: 10
Partition: [1×1 cvpartition]
ClassNames: {'b' 'g'}
ScoreTransform: 'none'
Properties, Methods
CVMdl は ClassificationPartitionedKernel モデルです。既定では、10 分割交差検証が実行されます。異なる分割数を指定するには、'Crossval' ではなく名前と値のペアの引数 'KFold' を指定します。
交差検証分類エッジを推定します。
edge = kfoldEdge(CVMdl)
edge = 1.5585
あるいは、kfoldEdge 内の名前と値のペアの引数 'Mode','individual' を指定することで各分割エッジを取得できます。
複数のモデルの k 分割エッジを比較することにより、特徴選択を実行します。この条件のみに基づくと、エッジが最高である分類器が最善の分類器となります。
ionosphere データ セットを読み込みます。このデータ セットには、レーダー反射についての 34 個の予測子と、不良 ('b') または良好 ('g') というラベルが付いた 351 個の二項反応が含まれています。
load ionosphere予測子変数の半分を無作為に選択します。
rng(1); % For reproducibility p = size(X,2); % Number of predictors idxPart = randsample(p,ceil(0.5*p));
2 つのバイナリ カーネル分類モデルを交差検証します。1 つではすべての予測子を、もう 1 つでは半分の予測子を使用します。
CVMdl = fitckernel(X,Y,'CrossVal','on'); PCVMdl = fitckernel(X(:,idxPart),Y,'CrossVal','on');
CVMdl および PCVMdl は ClassificationPartitionedKernel モデルです。既定では、10 分割交差検証が実行されます。異なる分割数を指定するには、'Crossval' ではなく名前と値のペアの引数 'KFold' を指定します。
各分類器について k 分割エッジを推定します。
fullEdge = kfoldEdge(CVMdl)
fullEdge = 1.5142
partEdge = kfoldEdge(PCVMdl)
partEdge = 1.8910
k 分割エッジによれば、半分の予測子を使用する分類器の方がモデルとして優れています。
入力引数
交差検証済みのバイナリ カーネル分類モデル。ClassificationPartitionedKernel モデル オブジェクトを指定します。ClassificationPartitionedKernel モデルは、fitckernel を使用し、交差検証の名前と値のペアの引数のいずれかを指定することにより作成できます。
推定値を取得するため、kfoldEdge はカーネル分類モデルの交差検証に使用したものと同じデータ (X および Y) を適用します。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name を引用符で囲みます。
例: kfoldEdge(CVMdl,'Mode','individual') は、各分割の分類エッジを返します。
予測の分割インデックス。'Folds' および正の整数の数値ベクトルで構成されるコンマ区切りのペアとして指定します。Folds の要素は 1 から CVMdl.KFold の範囲でなければなりません。
予測用の Folds で指定された分割のみが使用されます。
例: 'Folds',[1 4 10]
データ型: single | double
出力の集約レベル。'Mode' と 'average' または 'individual' から構成されるコンマ区切りのペアとして指定します。
次の表は値を説明します。
| 値 | 説明 |
|---|---|
'average' | 出力は、すべての分割の平均を表すスカラー値です。 |
'individual' | 出力は、分割ごとに 1 つずつの値が含まれている長さ k のベクトルです。k は分割数です。 |
例: 'Mode','individual'
出力引数
詳細
"分類エッジ" は、分類マージンの加重平均です。
特徴選択を実行する場合などに複数の分類器から選択する方法の 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)を参照してください。
バージョン履歴
R2018b で導入kfoldEdge は GPU 配列を完全にサポートします。
R2023b 以降では、次の分類モデルのオブジェクト関数において、予測子に欠損値がある観測値が再代入 ("resub") と交差検証 ("kfold") による分類エッジ、損失、マージン、および予測の計算でその一部として使用されます。
以前のリリースでは、予測子に欠損値がある観測値は再代入と交差検証の計算で省略されていました。
入力モデル オブジェクトに学習させるときに既定以外のコスト行列を指定すると、関数 kfoldEdge で以前のリリースとは異なる値が返されます。
関数 kfoldEdge は、W プロパティに格納された観測値の重みを使用します。W プロパティの値を関数で使用する方法については変更されていません。ただし、既定以外のコスト行列をもつモデルについて入力モデル オブジェクトに格納されるプロパティの値が変更されたため、関数から異なる値が返されることがあります。
プロパティの値の変更に関する詳細については、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)