kfoldEdge
交差検証済み分類モデルの分類エッジ
説明
例
分類器の k 分割エッジの推定
フィッシャーのアヤメのデータを学習させたモデルの k 分割エッジを計算します。
フィッシャーのアヤメのデータセットを読み込みます。
load fisheriris
分類木分類器を学習させます。
tree = fitctree(meas,species);
10 分割交差検証を使用して分類器を交差検証します。
cvtree = crossval(tree);
k 分割エッジを計算します。
edge = kfoldEdge(cvtree)
edge = 0.8578
ホールドアウトされた観測値の k 分割エッジの計算
フィッシャーのアヤメのデータに対して学習をさせたアンサンブルについて k 分割エッジを計算します。
標本データセットを読み込みます。
load fisheriris
100 本のブースティング分類木のアンサンブルに学習をさせます。
t = templateTree('MaxNumSplits',1); % Weak learner template tree object ens = fitcensemble(meas,species,'Learners',t);
ens
から交差検証済みのアンサンブルを作成し、分類エッジを求めます。
rng(10,'twister') % For reproducibility cvens = crossval(ens); E = kfoldEdge(cvens)
E = 3.2033
入力引数
CVMdl
— 交差検証された分割済みの分類器
ClassificationPartitionedModel
オブジェクト | ClassificationPartitionedEnsemble
オブジェクト | ClassificationPartitionedGAM
オブジェクト
交差検証された分割済みの分類器。ClassificationPartitionedModel
オブジェクト、ClassificationPartitionedEnsemble
オブジェクトまたは ClassificationPartitionedGAM
オブジェクトを指定します。オブジェクトは 2 つの方法で作成できます。
次の表に記載されている学習済み分類モデルをそのオブジェクト関数
crossval
に渡す。次の表に記載されている関数を使用して分類モデルに学習をさせ、その関数の交差検証に関する名前と値の引数のいずれかを指定する。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。
R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name
を引用符で囲みます。
例: kfoldEdge(CVMdl,'Folds',[1 2 3 5])
は、分類エッジの計算に 1 番目、2 番目、3 番目、および 5 番目の分割を使用し、4 番目の分割は除外するように指定します。
Folds
— 使用する分割のインデックス
1:CVMdl.KFold
(既定値) | 正の整数ベクトル
使用する分割のインデックス。正の整数ベクトルとして指定します。Folds
の要素は 1
から CVMdl.KFold
の範囲でなければなりません。
Folds
で指定された分割のみが使用されます。
例: 'Folds',[1 4 10]
データ型: single
| double
IncludeInteractions
— 交互作用項を含むというフラグ
true
| false
モデルの交互作用項を含むというフラグ。true
または false
として指定します。この引数は、一般化加法モデル (GAM) の場合のみ有効です。つまり、この引数を指定できるのは、CVMdl
が ClassificationPartitionedGAM
である場合だけです。
CVMdl
のモデル (CVMdl.Trained
) に交互作用項が含まれる場合、既定値は true
です。モデルに交互作用項が含まれない場合、値は false
でなければなりません。
例: 'IncludeInteractions',false
データ型: logical
Mode
— 出力の集約レベル
'average'
(既定値) | 'individual'
| 'cumulative'
出力の集約レベル。'average'
、'individual'
、または 'cumulative'
として指定します。
値 | 説明 |
---|---|
'average' | 出力は、すべての分割の平均を表すスカラー値です。 |
'individual' | 出力は、分割ごとに 1 つずつの値が含まれている長さ k のベクトルです。k は分割数です。 |
'cumulative' | メモ この値を指定する場合、
|
例: 'Mode','individual'
出力引数
E
— 分類エッジ
数値スカラー | 数値列ベクトル
分類エッジ。数値スカラーまたは数値列ベクトルとして返されます。
Mode
が'average'
である場合、E
はすべての分割の平均分類エッジです。Mode
が'individual'
である場合、E
は各分割の分類エッジが含まれている k 行 1 列の数値列ベクトルです。k は分割数です。Mode
が'cumulative'
でCVMdl
がClassificationPartitionedEnsemble
である場合、E
はmin(CVMdl.NumTrainedPerFold)
行 1 列の数値列ベクトルです。各要素j
は、弱学習器1:j
で学習させたアンサンブルを使用して取得したすべての分割の平均分類エッジです。Mode
が'cumulative'
でCVMdl
がClassificationPartitionedGAM
の場合、出力の値はIncludeInteractions
の値によって異なります。IncludeInteractions
がfalse
の場合、L
は(1 + min(NumTrainedPerFold.PredictorTrees))
行 1 列の数値列ベクトルです。L
の最初の要素は、切片 (定数) 項のみを使用して取得したすべての分割の平均分類エッジです。L
の(j + 1)
番目の要素は、切片項と各線形項の最初のj
個の予測子木を使用して取得した平均エッジです。IncludeInteractions
がtrue
の場合、L
は(1 + min(NumTrainedPerFold.InteractionTrees))
行 1 列の数値列ベクトルです。L
の最初の要素は、切片 (定数) 項と各線形項のすべての予測子木を使用して取得したすべての分割の平均分類エッジです。L
の(j + 1)
番目の要素は、切片項、各線形項のすべての予測子木、および各交互作用項の最初のj
個の交互作用木を使用して取得した平均エッジです。
詳細
分類エッジ
"分類エッジ" は "分類マージン" の加重平均です。
特徴選択を実行する場合などに複数の分類器から選択する方法の 1 つは、エッジが最大になる分類器を選択することです。
分類マージン
バイナリ分類の "分類マージン" は、各観測値における真のクラスの分類スコアと偽のクラスの分類スコアの差です。マルチクラス分類の "分類マージン" は、真のクラスの分類スコアと偽のクラスの最大スコアの差を表します。
各マージンのスケールが同じである場合 (つまり、スコア値が同じスコア変換に基づく場合)、マージンを分類の信頼尺度として使用できます。複数の分類器の中で、マージンが大きい分類器の方が優れています。
アルゴリズム
kfoldEdge
は、対応するオブジェクト関数 edge
で説明されているように、分類エッジを計算します。モデル固有の説明については、次の表に示す該当する関数 edge
のリファレンス ページを参照してください。
拡張機能
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
使用上の注意事項および制限事項:
この関数は、次の交差検証済みモデル オブジェクトの GPU 配列を完全にサポートします。
fitcensemble
で学習させたアンサンブル分類器fitcknn
で学習させた k 最近傍分類器fitcsvm
で学習させたサポート ベクター マシン分類器fitctree
で学習させたマルチクラス分類用の二分決定木
詳細は、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2011a で導入R2022a: 既定以外のコスト行列をもつ交差検証 SVM およびアンサンブル分類器に対して kfoldEdge
で異なる値が返される
SVM またはアンサンブル分類モデルの入力モデル オブジェクトを交差検証するときに既定以外のコスト行列を指定すると、関数 kfoldEdge
で以前のリリースとは異なる値が返されます。
関数 kfoldEdge
は、W
プロパティに格納された観測値の重みを使用します。W
プロパティの値を関数で使用する方法については変更されていません。ただし、既定以外のコスト行列をもつ交差検証 SVM およびアンサンブル モデル オブジェクトについて入力モデル オブジェクトに格納されるプロパティの値が変更されたため、関数から異なる値が返されることがあります。
プロパティの値の変更に関する詳細については、Cost プロパティにユーザー指定のコスト行列を格納 (交差検証 SVM 分類器) またはCost プロパティにユーザー指定のコスト行列を格納 (交差検証アンサンブル分類器) を参照してください。
ソフトウェアでコスト行列、事前確率、および観測値の重みを以前のリリースと同じように扱う場合は、誤分類コスト行列に応じた事前確率と観測値の重みの調整の説明に従って、既定以外のコスト行列の事前確率と観測値の重みを調整します。その後、分類モデルに学習させるときに、調整後の事前確率と観測値の重みを名前と値の引数 Prior
と Weights
を使用して指定し、既定のコスト行列を使用します。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)