このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
kfoldPredict
交差検証済み ECOC モデルの観測値の分類
構文
説明
は、交差検証 ECOC モデル (label
= kfoldPredict(CVMdl
)ClassificationPartitionedECOC
) CVMdl
により予測されたクラス ラベルを返します。kfoldPredict
は、すべての分割について、学習時にホールド アウトする観測値のクラス ラベルを予測します。CVMdl.X
には、両方の観測値のセットが含まれます。
符号を反転した最大の平均バイナリ損失 (つまり、最小の平均バイナリ損失と等しい) の発生するクラスに観測を割り当てることで、観測の分類が予測されます。
は、1 つ以上の名前と値のペアの引数で指定された追加オプションを使用して、予測クラス ラベルを返します。たとえば、事後確率推定法、復号化スキームまたは詳細レベルを指定します。label
= kfoldPredict(CVMdl
,Name,Value
)
例
k 分割交差検証ラベルの予測
フィッシャーのアヤメのデータセットを読み込みます。予測子データ X
、応答データ Y
、および Y
内のクラスの順序を指定します。
load fisheriris X = meas; Y = categorical(species); classOrder = unique(Y); rng(1); % For reproducibility
サポート ベクター マシン (SVM) バイナリ分類器を使用して、ECOC モデルの学習と交差検証を行います。SVM テンプレートを使用して予測子データを標準化し、クラスの順序を指定します。
t = templateSVM('Standardize',1); CVMdl = fitcecoc(X,Y,'CrossVal','on','Learners',t,'ClassNames',classOrder);
CVMdl
は ClassificationPartitionedECOC
モデルです。既定では、10 分割交差検証が実行されます。名前と値のペアの引数 'KFold'
を使用して異なる分割数を指定できます。
検証分割のラベルを予測します。真のラベルと予測されたラベルのランダムなサブセットを印刷します。
labels = kfoldPredict(CVMdl); idx = randsample(numel(labels),10); table(Y(idx),labels(idx),... 'VariableNames',{'TrueLabels','PredictedLabels'})
ans=10×2 table
TrueLabels PredictedLabels
__________ _______________
setosa setosa
versicolor versicolor
setosa setosa
virginica virginica
versicolor versicolor
setosa setosa
virginica virginica
virginica virginica
setosa setosa
setosa setosa
CVMdl
は、インデックス idx
を使用して検証分割観測値に正確なラベルを付けます。
カスタム バイナリ損失関数の使用による交差検証ラベルの予測
フィッシャーのアヤメのデータセットを読み込みます。予測子データ X
、応答データ Y
、および Y
内のクラスの順序を指定します。
load fisheriris X = meas; Y = categorical(species); classOrder = unique(Y); % Class order K = numel(classOrder); % Number of classes rng(1); % For reproducibility
SVM バイナリ分類器を使用して、ECOC モデルの学習と交差検証を行います。SVM テンプレートを使用して予測子データを標準化し、クラスの順序を指定します。
t = templateSVM('Standardize',1); CVMdl = fitcecoc(X,Y,'CrossVal','on','Learners',t,'ClassNames',classOrder);
CVMdl
は ClassificationPartitionedECOC
モデルです。既定では、10 分割交差検証が実行されます。名前と値のペアの引数 'KFold'
を使用して異なる分割数を指定できます。
SVM スコアは観測から判定境界までの符号付き距離です。したがって、定義域は です。以下のようなカスタム バイナリ損失関数を作成します。
各学習器の符号化設計行列 (M) と陽性クラスの分類スコア (s) を各観測値のバイナリ損失にマッピングする
線形損失を使用する
中央値を使用して、バイナリ学習器損失を集計します。
バイナリ損失関数用に独立した関数を作成し、MATLAB® パスに保存できます。あるいは、無名バイナリ損失関数を指定できます。この場合、無名バイナリ損失関数に対する関数ハンドル (customBL
) を作成します。
customBL = @(M,s)nanmedian(1 - bsxfun(@times,M,s),2)/2;
交差検証ラベルを予測し、クラスごとのバイナリ損失の中央値を推定します。10 個の検証分割観測値のランダムなセットについて、クラスごとの負のバイナリ損失の中央値を出力します。
[label,NegLoss] = kfoldPredict(CVMdl,'BinaryLoss',customBL);
idx = randsample(numel(label),10);
classOrder
classOrder = 3x1 categorical
setosa
versicolor
virginica
table(Y(idx),label(idx),NegLoss(idx,:),'VariableNames',... {'TrueLabel','PredictedLabel','NegLoss'})
ans=10×3 table
TrueLabel PredictedLabel NegLoss
__________ ______________ _________________________________
setosa versicolor 0.37139 2.1298 -4.0012
versicolor versicolor -1.2169 0.3669 -0.65001
setosa versicolor 0.23932 2.0794 -3.8187
virginica virginica -1.9151 -0.19958 0.61472
versicolor versicolor -1.3746 0.45537 -0.58078
setosa versicolor 0.20061 2.2774 -3.978
virginica versicolor -1.4926 0.090735 -0.098156
virginica virginica -1.7666 -0.13461 0.4012
setosa versicolor 0.19994 1.9111 -3.611
setosa versicolor 0.16087 1.9681 -3.629
列の順序は classOrder
の要素に対応します。符号が反転した最大損失に基づき、ラベルが予測されます。この結果は、線形損失の中央値が他の損失ほどは効果的に機能しないことを示しています。
交差検証事後確率の推定
フィッシャーのアヤメのデータセットを読み込みます。花弁の寸法を予測子データ X
として使用します。応答データ Y
と、Y
内のクラスの順序を指定します。
load fisheriris X = meas(:,3:4); Y = categorical(species); classOrder = unique(Y); rng(1); % For reproducibility
SVM テンプレートを作成します。予測子を標準化し、ガウス カーネルを指定します。
t = templateSVM('Standardize',1,'KernelFunction','gaussian');
t
は SVM テンプレートです。ほとんどのプロパティは空です。ECOC 分類器に学習をさせると、該当するプロパティが既定値に設定されます。
SVM テンプレートを使用して、ECOC 分類器の学習と交差検証を行います。'FitPosterior'
名前と値のペアの引数を使用してクラスの事後確率 (kfoldPredict
により返される) へ分類スコアを変換します。クラスの順序を指定します。
CVMdl = fitcecoc(X,Y,'Learners',t,'CrossVal','on','FitPosterior',true,... 'ClassNames',classOrder);
CVMdl
は ClassificationPartitionedECOC
モデルです。既定では、10 分割交差検証が使用されます。
検証分割のクラス事後確率を予測します。カルバック・ライブラーのアルゴリズムに対して、10 個の無作為な初期値を使用します。
[label,~,~,Posterior] = kfoldPredict(CVMdl,'NumKLInitializations',10);
バイナリ損失の平均が最小となるクラスに観測が割り当てられます。すべてのバイナリ学習器は事後確率を計算するので、バイナリ損失関数は quadratic
です。
無作為な結果の集合を表示します。
idx = randsample(size(X,1),10); CVMdl.ClassNames
ans = 3x1 categorical
setosa
versicolor
virginica
table(Y(idx),label(idx),Posterior(idx,:),... 'VariableNames',{'TrueLabel','PredLabel','Posterior'})
ans=10×3 table
TrueLabel PredLabel Posterior
__________ __________ ______________________________________
versicolor versicolor 0.0086428 0.98242 0.0089327
versicolor virginica 2.2197e-14 0.12447 0.87553
setosa setosa 0.999 0.00022836 0.00076885
versicolor versicolor 2.2194e-14 0.98915 0.010848
virginica virginica 0.012318 0.012925 0.97476
virginica virginica 0.0015573 0.0015639 0.99688
virginica virginica 0.0042896 0.0043557 0.99135
setosa setosa 0.999 0.00028329 0.00071382
virginica virginica 0.0094617 0.0098119 0.98073
setosa setosa 0.999 0.00013559 0.00086195
Posterior
の列は CVMdl.ClassNames
のクラスの順序に対応します。
並列計算による交差検証事後確率の推定
マルチクラス ECOC モデルに学習をさせ、並列計算を使用して事後確率を推定します。
arrhythmia
データセットを読み込みます。応答データ Y
を確認します。
load arrhythmia
Y = categorical(Y);
tabulate(Y)
Value Count Percent 1 245 54.20% 2 44 9.73% 3 15 3.32% 4 15 3.32% 5 13 2.88% 6 25 5.53% 7 3 0.66% 8 2 0.44% 9 9 1.99% 10 50 11.06% 14 4 0.88% 15 5 1.11% 16 22 4.87%
n = numel(Y); K = numel(unique(Y));
いくつかのクラスはデータに表れません。また、他の多くのクラスでは相対的頻度が低くなります。
GentleBoost 法と 50 個の分類木弱学習器を使用するアンサンブル学習テンプレートを指定します。
t = templateEnsemble('GentleBoost',50,'Tree');
t
はテンプレート オブジェクトです。ほとんどのオプションは空です ([]
)。学習の間、すべての空のオプションに既定値が使用されます。
応答変数には多数のクラスが含まれているので、スパースなランダム符号化設計を指定します。
rng(1); % For reproducibility Coding = designecoc(K,'sparserandom');
並列計算を使用して、ECOC モデルの学習と交差検証を行います。(kfoldPredict
によって返される) 事後確率を当てはめます。
pool = parpool; % Invokes workers
Starting parallel pool (parpool) using the 'local' profile ... connected to 6 workers.
options = statset('UseParallel',1); CVMdl = fitcecoc(X,Y,'Learner',t,'Options',options,'Coding',Coding,... 'FitPosterior',1,'CrossVal','on');
Warning: One or more folds do not contain points from all the groups.
CVMdl
は ClassificationPartitionedECOC
モデルです。既定では、10 分割交差検証が実行されます。名前と値のペアの引数 'KFold'
を使用して異なる分割数を指定できます。
このプールでは 6 つのワーカーが起動しましたが、ワーカー数はシステムによって異なる可能性があります。相対頻度が低いクラスがあるので、1 つ以上の分割で一部のクラスの観測値が含まれない可能性が高くなります。
事後確率を推定し、検証分割観測値の無作為なセットのデータに対して、不整脈でない (クラス 1) と分類される事後確率を表示します。
[~,~,~,posterior] = kfoldPredict(CVMdl,'Options',options); idx = randsample(n,10); table(idx,Y(idx),posterior(idx,1),... 'VariableNames',{'OOFSampleIndex','TrueLabel','PosteriorNoArrhythmia'})
ans=10×3 table
OOFSampleIndex TrueLabel PosteriorNoArrhythmia
______________ _________ _____________________
171 1 0.33654
221 1 0.85135
72 16 0.9174
3 10 0.025649
202 1 0.8438
243 1 0.9435
18 1 0.81198
49 6 0.090154
234 1 0.61625
315 1 0.97187
入力引数
CVMdl
— 交差検証 ECOC モデル
ClassificationPartitionedECOC
モデル
交差検証 ECOC モデル。ClassificationPartitionedECOC
モデルとして指定します。ClassificationPartitionedECOC
モデルは 2 つの方法で作成できます。
学習済みの ECOC モデル (
ClassificationECOC
) をcrossval
に渡します。fitcecoc
を使用して ECOC モデルに学習をさせ、交差検証の名前と値のペアの引数'CrossVal'
、'CVPartition'
、'Holdout'
、'KFold'
、'Leaveout'
のいずれかを指定します。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。
R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name
を引用符で囲みます。
例: kfoldPredict(CVMdl,'PosteriorMethod','qp')
は、二次計画法を使用して最小二乗問題を解くことによりマルチクラス事後確率を推定するよう指定します。
BinaryLoss
— バイナリ学習器損失関数
'hamming'
| 'linear'
| 'logit'
| 'exponential'
| 'binodeviance'
| 'hinge'
| 'quadratic'
| 関数ハンドル
バイナリ学習器の損失関数。'BinaryLoss'
と組み込みの損失関数名または関数ハンドルから構成されるコンマ区切りのペアとして指定します。
次の表で、組み込み関数について説明します。ここで、yj は特定のバイナリ学習器のクラス ラベル (集合 {–1,1,0} 内)、sj は観測値 j のスコア、g(yj,sj) はバイナリ損失の式です。
値 説明 スコア領域 g(yj,sj) 'binodeviance'
二項分布からの逸脱度 (–∞,∞) log[1 + exp(–2yjsj)]/[2log(2)] 'exponential'
指数 (–∞,∞) exp(–yjsj)/2 'hamming'
ハミング [0,1] または (–∞,∞) [1 – sign(yjsj)]/2 'hinge'
ヒンジ (–∞,∞) max(0,1 – yjsj)/2 'linear'
線形 (–∞,∞) (1 – yjsj)/2 'logit'
ロジスティック (–∞,∞) log[1 + exp(–yjsj)]/[2log(2)] 'quadratic'
2 次 [0,1] [1 – yj(2sj – 1)]2/2 バイナリ損失は、yj = 0 の場合に損失が 0.5 になるように正規化されます。また、各クラスについて平均のバイナリ損失が計算されます。
カスタム バイナリ損失関数の場合は関数ハンドルを指定します。たとえば、
customFunction
の場合は'BinaryLoss',@customFunction
を指定します。customFunction
の形式は次のとおりです。bLoss = customFunction(M,s)
M
はMdl.CodingMatrix
に格納された K 行 B 列の符号化行列です。s
は 1 行 B 列の分類スコアの行ベクトルです。bLoss
は分類損失です。このスカラーは、特定のクラスのすべての学習器についてバイナリ損失を集計します。たとえば、平均バイナリ損失を使用して、各クラスの学習器の損失を集計できます。K は、クラスの数です。
B はバイナリ学習器の数です。
カスタムなバイナリ損失関数を渡す例については、カスタム バイナリ損失関数の使用による ECOC モデルの検定標本ラベルの予測を参照してください。
BinaryLoss
の既定値は、バイナリ学習器が返すスコアの範囲によって異なります。次の表に、既定のスコア変換を使用する場合 (モデルの ScoreTransform
プロパティが 'none'
の場合) の BinaryLoss
の既定値をいくつか示します。
仮定 | 既定値 |
---|---|
すべてのバイナリ学習器が次のいずれかである。
| 'quadratic' |
すべてのバイナリ学習器が SVM である。 | 'hinge' |
すべてのバイナリ学習器が、AdaboostM1 または GentleBoost によって学習をさせたアンサンブルである。 | 'exponential' |
すべてのバイナリ学習器が、LogitBoost によって学習をさせたアンサンブルである。 | 'binodeviance' |
fitcecoc で 'FitPosterior',true を設定して、クラスの事後確率を予測するように指定している。 | 'quadratic' |
バイナリ学習器が異種混合で、さまざまな損失関数を使用している。 | 'hamming' |
既定値を確認するには、コマンド ラインでドット表記を使用して学習済みモデルの BinaryLoss
プロパティを表示します。
例: 'BinaryLoss','binodeviance'
データ型: char
| string
| function_handle
Decoding
— 復号化スキーム
'lossweighted'
(既定値) | 'lossbased'
バイナリ損失を集計する復号化方式。'Decoding'
と 'lossweighted'
または 'lossbased'
から構成されるコンマ区切りのペアとして指定します。詳細については、バイナリ損失を参照してください。
例: 'Decoding','lossbased'
NumKLInitializations
— ランダムな初期値の数
0
(既定値) | 非負の整数スカラー
カルバック・ライブラー ダイバージェンスの最小化により事後確率を当てはめるためのランダムな初期値の個数。'NumKLInitializations'
と非負の整数スカラーから構成されるコンマ区切りのペアとして指定します。
4 番目の出力引数 (Posterior
) を要求せず、'PosteriorMethod','kl'
(既定の設定) を設定する場合、NumKLInitializations
の値は無視されます。
詳細は、カルバック・ライブラー ダイバージェンスを使用する事後推定を参照してください。
例: 'NumKLInitializations',5
データ型: single
| double
Options
— 推定オプション
[]
(既定値) | statset
によって返される構造体配列
推定オプション。statset
により返される 'Options'
と構造体配列から構成されるコンマ区切りのペアとして指定します。
並列計算を起動するには、以下を行います。
Parallel Computing Toolbox™ ライセンスが必要です。
'Options',statset('UseParallel',true)
を指定します。
PosteriorMethod
— 事後確率推定法
'kl'
(既定値) | 'qp'
事後確率推定法。'PosteriorMethod'
と 'kl'
または 'qp'
で構成されるコンマ区切りのペアとして指定します。
PosteriorMethod
が'kl'
の場合、バイナリ学習器によって返される予測された事後確率と期待された事後確率間のカルバック・ライブラー ダイバージェンスを最小化することにより、マルチクラス事後確率が推定されます。詳細については、カルバック・ライブラー ダイバージェンスを使用する事後推定を参照してください。PosteriorMethod
が'qp'
の場合、二次計画法を使用して最小二乗問題を解決することでマルチクラス事後確率が推定されます。このオプションを使用するには Optimization Toolbox™ ライセンスが必要です。詳細については、二次計画法を使用する事後推定を参照してください。4 番目の出力引数 (
Posterior
) を要求しない場合、PosteriorMethod
の値は無視されます。
例: 'PosteriorMethod','qp'
Verbose
— 詳細レベル
0
(既定値) | 1
詳細レベル。'Verbose'
と 0
または 1
から構成されるコンマ区切りのペアとして指定します。Verbose
は、コマンド ウィンドウに表示される診断メッセージの量を制御します。
Verbose
が 0
の場合、診断メッセージは表示されません。それ以外の場合は、診断メッセージが表示されます。
例: 'Verbose',1
データ型: single
| double
出力引数
label
— 予測クラス ラベル
categorical 配列 | 文字配列 | logical ベクトル | 数値ベクトル | 文字ベクトルの cell 配列
予測クラス ラベル。categorical 配列、文字配列、logical ベクトル、数値ベクトル、または文字ベクトルの cell 配列として返されます。
label
のデータ型および行数は CVMdl.Y
と同じです。
符号を反転した最大の平均バイナリ損失 (つまり、最小の平均バイナリ損失と等しい) の発生するクラスに観測を割り当てることで、観測の分類が予測されます。
NegLoss
— 符号を反転した平均バイナリ損失
数値行列
符号を反転した平均バイナリ損失。数値行列として返されます。NegLoss
は n 行 K 列の行列です。n は観測値の個数 (size(CVMdl.X,1)
)、K は一意なクラスの個数 (size(CVMdl.ClassNames,1)
) です。
NegLoss(i,k)
は、観測値 i を k 番目のクラスに分類する平均バイナリ損失の符号を反転した値です。
Decoding
が'lossbased'
の場合、NegLoss(i,k)
はバイナリ損失の合計をバイナリ学習器の総数で割った値の符号を反転した値になります。Decoding
が'lossweighted'
の場合、NegLoss(i,k)
はバイナリ損失の合計を k 番目のクラスに対するバイナリ学習器の数で割った値の符号を反転した値になります。
詳細については、バイナリ損失を参照してください。
PBScore
— 陽性クラス スコア
数値行列
各バイナリ学習器の陽性クラスのスコア。数値行列として返されます。PBScore
は n 行 B 列の行列であり、n は観測値の数 (size(CVMdl.X,1)
)、B はバイナリ学習器の数 (size(CVMdl.CodingMatrix,2)
) です。
符号化行列が分割ごとに異なる場合 (つまり、符号化方式が sparserandom
または denserandom
である場合)、PBScore
は空 ([]
) になります。
Posterior
— 事後クラス確率
数値行列
事後クラス確率。数値行列として返します。Posterior
は n 行 K 列の行列です。ここで n は観測 (size(CVMdl.X,1)
) の数、K は一意のクラス (size(CVMdl.ClassNames,1)
) の数です。
Posterior
を要求するには、fitcecoc
を使用して交差検証済み ECOC モデルに学習をさせるときに 'FitPosterior',1
を設定しなければなりません。それ以外の場合は、エラーがスローされます。
詳細
バイナリ損失
"バイナリ損失" は、バイナリ学習器がどの程度の精度で観測値をクラスに分類するかを決定する、クラスと分類スコアの関数です。
以下のように仮定します。
mkj は符号化設計行列 M の要素 (k,j)、つまりバイナリ学習器 j のクラス k に対応する符号。M は K 行 B 列の行列であり、K はクラスの数、B はバイナリ学習器の数です。
sj は観測値に対するバイナリ学習器 j のスコア。
g はバイナリ損失関数。
は観測値の予測クラス。
ソフトウェアでバイナリ損失をどのように集計して各観測値の予測クラスを判定するかは、ECOC モデルの復号化方式で指定します。ソフトウェアでは 2 つの復号化方式をサポートしています。
関数 predict
、resubPredict
、および kfoldPredict
は、それぞれの観測値とクラスについて、argmin
の目的関数の符号反転値を 2 番目の出力引数 (NegLoss
) として返します。
次の表は、サポートされる損失関数をまとめたものです。ここで、yj は特定のバイナリ学習器のクラス ラベル (集合 {–1,1,0} 内)、sj は観測値 j のスコア、g(yj,sj) はバイナリ損失関数です。
値 | 説明 | スコア領域 | g(yj,sj) |
---|---|---|---|
"binodeviance" | 二項分布からの逸脱度 | (–∞,∞) | log[1 + exp(–2yjsj)]/[2log(2)] |
"exponential" | 指数 | (–∞,∞) | exp(–yjsj)/2 |
"hamming" | ハミング | [0,1] または (–∞,∞) | [1 – sign(yjsj)]/2 |
"hinge" | ヒンジ | (–∞,∞) | max(0,1 – yjsj)/2 |
"linear" | 線形 | (–∞,∞) | (1 – yjsj)/2 |
"logit" | ロジスティック | (–∞,∞) | log[1 + exp(–yjsj)]/[2log(2)] |
"quadratic" | 2 次 | [0,1] | [1 – yj(2sj – 1)]2/2 |
yj = 0 のときに損失が 0.5 になるようにバイナリ損失が正規化され、バイナリ学習器の平均が集計に使用されます。
ECOC 分類器の全体的な性能の尺度である全体の分類損失 (オブジェクト関数 kfoldLoss
および kfoldPredict
の名前と値の引数 LossFun
により指定) とバイナリ損失を混同しないでください。
アルゴリズム
カルバック・ライブラー ダイバージェンスを最小化するか、二次計画法を使用することにより、クラス事後確率を推定できます。以下の事後推定アルゴリズムに関する説明では、次のように仮定します。
mkj は符号化設計行列 M の要素 (k,j) です。
I はインジケーター関数です。
は、ある観測値のクラス k (k = 1、...、K) に対するクラス事後確率の推定値です。
rj はバイナリ学習器 j の陽性クラス事後確率です。つまり、rj は、学習データが与えられる場合、バイナリ学習器 j が観測値を陽性クラスに分類する確率です。
カルバック・ライブラー ダイバージェンスを使用する事後推定
既定では、カルバック・ライブラー ダイバージェンスは最小化され、クラス事後確率が推定されます。予測された陽性クラス事後確率と観測された陽性クラス事後確率の間のカルバック・ライブラー ダイバージェンスは次のようになります。
ここで、 はバイナリ学習器 j の重みです。
Sj は、バイナリ学習器 j が学習する一連の観測値のインデックスです。
は、観測値 i の重みです。
ダイバージェンスは反復して最小化されます。最初のステップとして、クラス事後確率の初期値 を選択します。
'NumKLIterations'
を指定しない場合、次の確定的な初期値の集合が両方試され、Δ を最小化する集合が選択されます。は、次の連立方程式の解です。
ここで、M01 はすべての mkj = -1 を 0 に置き換えた M、r は L 個のバイナリ学習器によって返された陽性クラス事後確率のベクトルです [Dietterich 他]。
lsqnonneg
を使いシステムを解きます。
'NumKLIterations',c
を指定した場合 (c
は自然数)、集合 は次のように選択され、Δ を最小化する集合が使用されます。前述した確定的な初期値の集合の両方が試されます。
rand
を使用して長さ K のベクトルc
を無作為に生成し、各ベクトルの合計が 1 になるように正規化します。
反復 t では、以下の手順が実行されます。
を計算します。
次の式を使用して、次のクラスの事後確率を推定します。
合計が 1 になるように を正規化します。
収束を確認します。
詳細については、[Hastie 他] および [Zadrozny] を参照してください。
参照
[1] Allwein, E., R. Schapire, and Y. Singer. “Reducing multiclass to binary: A unifying approach for margin classifiers.” Journal of Machine Learning Research. Vol. 1, 2000, pp. 113–141.
[2] Dietterich, T., and G. Bakiri. “Solving Multiclass Learning Problems Via Error-Correcting Output Codes.” Journal of Artificial Intelligence Research. Vol. 2, 1995, pp. 263–286.
[3] Escalera, S., O. Pujol, and P. Radeva. “Separability of ternary codes for sparse designs of error-correcting output codes.” Pattern Recog. Lett., Vol. 30, Issue 3, 2009, pp. 285–297.
[4] Escalera, S., O. Pujol, and P. Radeva. “On the decoding process in ternary error-correcting output codes.” IEEE Transactions on Pattern Analysis and Machine Intelligence. Vol. 32, Issue 7, 2010, pp. 120–134.
[5] Hastie, T., and R. Tibshirani. “Classification by Pairwise Coupling.” Annals of Statistics. Vol. 26, Issue 2, 1998, pp. 451–471.
[6] Wu, T. F., C. J. Lin, and R. Weng. “Probability Estimates for Multi-Class Classification by Pairwise Coupling.” Journal of Machine Learning Research. Vol. 5, 2004, pp. 975–1005.
[7] Zadrozny, B. “Reducing Multiclass to Binary by Coupling Probability Estimates.” NIPS 2001: Proceedings of Advances in Neural Information Processing Systems 14, 2001, pp. 1041–1048.
拡張機能
自動並列サポート
Parallel Computing Toolbox™ を使用して自動的に並列計算を実行することで、コードを高速化します。
並列実行するには、この関数を呼び出すときに名前と値の引数 'Options'
を指定し、statset
を使用してオプション構造体の 'UseParallel'
フィールドを true
に設定します。
たとえば、次のようにします。'Options',statset('UseParallel',true)
並列計算の詳細については、自動並列サポートを使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
この関数は、GPU 配列を完全にサポートします。詳細は、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2014b で導入
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)