このページ最新ではありませ。をクリックし,英语のの最新版版を参照参照し。
失利
マルチクラス誤り訂正出力符号 (ECOC) モデルの分類損失
説明
例
ECOC モデルの検定標本損失の特定
フィッシャーのアヤメのデータセットを読み込みます。予測子データX
、応答データY
、およびY
内のクラスの順序を指定します。
loadfisheririsx = meas;y =分类(物种);classorder = unique(y);% Class orderRNG(1);%可再现性
svmバイナリ器使用ててててモデルモデルモデル。15%ののののののホールドアウトアウトアウトをしし,,,,,テンプレートテンプレートテンプレートテンプレート使用ててて予测子
t = templatesvm(“标准化”,真的);pmdl = fitcecoc(x,y,'坚持',0.15,“学习者”,t,'classNames',classorder);mdl = pmdl.Training {1};% Extract trained, compact classifier
PMDL
は分类部门
モデルです。これには训练有素
プロパティが含まれています。これは、学習セットを使用して学習をさせたCompactClassificationECOC
モデルが格納されている、1 行 1 列の cell 配列です。
検定標本の分類誤差を推定します。これは既定の分類損失です。
testInds = test(PMdl.Partition);% Extract the test indicesXtest = x(testinds,:);ytest = y(testinds,:);l =损失(mdl,xtest,ytest)
L = 0
ECOC モデルは、検定標本のアヤメをすべて正しく分類します。
カスタム損失の使用による ECOC モデルの品質の判別
各観测最小损失を考虑する损失关数を使用ししててて,,,,モデルモデル
フィッシャーのアヤメのデータセットを読み込みます。予測子データX
、応答データY
、およびY
内のクラスの順序を指定します。
loadfisheririsx = meas;y =分类(物种);classorder = unique(y);% Class orderRNG(1)%可再现性
svmバイナリ器使用ててててモデルモデルモデル。15%ののののののホールドアウトアウトアウトをしし,,,,,テンプレートテンプレートテンプレートテンプレート使用ててて予测子
t = templatesvm(“标准化”,真的);pmdl = fitcecoc(x,y,'坚持',0.15,“学习者”,t,'classNames',classorder);mdl = pmdl.Training {1};% Extract trained, compact classifier
PMDL
は分类部门
モデルです。これには训练有素
プロパティが含まれています。これは、学習セットを使用して学習をさせたCompactClassificationECOC
モデルが格納されている、1 行 1 列の cell 配列です。
各観测最小を受け入れ,の値の最小のの平均を求める,,关数关数ますますますS
は、predict
の出力NegLoss
に対応し。
Lossfun= @(~,S,~,~)mean(min(-S,[],2));
検定標本のカスタム損失を計算します。
testInds = test(PMdl.Partition);% Extract the test indicesXtest = x(testinds,:);ytest = y(testinds,:);失利(Mdl,XTest,YTest,“ LossFun”,lossfun)
ans = 0.0033
検定標本観測値の平均最小バイナリ損失は0.0033
です。
入力引数
Mdl
—完全またはコンパクトマルチクラスクラスクラス
ClassificationECOC
モデルオブジェクト|CompactClassificationECOC
モデルオブジェクト
ECOCモデルモデルモデルモデルモデルモデルモデルモデルClassificationECOC
またはCompactClassificationECOC
モデルオブジェクト指定します。
ECOCモデルモデルモデルをする方法について,,,,ClassificationECOC
またはCompactClassificationECOC
を参照しください。
TBL
—标本データ
テーブル
标本データテーブルとして指定。。TBL
1つつつ観测値,列列列は列つのつの子変数にに対応対応しますますます。。に応じてて,,応答応答応答変数用用およびTBL
に含めることができ。TBL
には,Mdl
を学習させるために使用したすべての予測子が含まれていなければなりません。文字ベクトルの cell 配列ではない cell 配列と複数列の変数は使用できません。
table
に格纳れいる标本を使用してMdl
に学習をさせた場合,失利
table tableににれていばなりません。。。
Mdl
に学習をさせるときに、fitcecoc
の名前値のペア引数引数“学习者”
で指定たテンプレートオブジェクトについて“标准化”,true
を設定したとします。この場合、対応するバイナリ学習器j
について、対応するMdl.BinaryLearner{j}.Mu
内の平均およびmdl.binarylearner {j} .sigma
内のをして,予测子データ列标准化ささます。
データ::table
响应varname
—応答変数名
TBL
内の変数の名前
応答変数の名前。TBL
内の変数の名前で指定します。Mdl
を学習させるために使用した応答変数がTBL
に含まている场合,响应varname
を指定する必要はありません。
响应varname
字符串字符串スカラースカラースカラースカラー指定しなければなりません。たとえばたとえば,応答変数変数変数TBL.y
として格纳れている,,响应varname
として'y'
を指定ます。以外の场合,TBL
の列はTBL.y
を含めてすべて予測子として扱われます。
逻辑配列,,,,,,,,,,,,,,,,配列配列ベクトルベクトルベクトルベクトルベクトルベクトル,,またはまたは文字文字文字文字ベクトルベクトルベクトルののベクトルベクトルベクトルベクトルベクトルベクトルベクトルベクトル配列配列配列配列ででなけれなけれなければばばなりませませんん。。応答応答変数しなけれなりません。
データ::char
|细绳
X
—予测子データ
数値行列
予测子データ。数値行列として指定します。
X
の各行は 1 つの観測値に対応し、各列は 1 つの変数に対応します。X
の列内変数は,分类器Mdl
に学習させた変数と同じでなければなりません。
X
の行数はY
の行数と等しくなければなりません。
Mdl
に学習をさせるときに、fitcecoc
の名前値のペア引数引数“学习者”
で指定たテンプレートオブジェクトについて“标准化”,true
を設定したとします。この場合、対応するバイナリ学習器j
について、対応するMdl.BinaryLearner{j}.Mu
内の平均およびmdl.binarylearner {j} .sigma
内のをして,予测子データ列标准化ささます。
データ::双倍的
|单身的
名前と値の引数
例:失利(Mdl,X,Y,'BinaryLoss','hinge','LossFun',@lossfun)
は,学习器の损失としてとして'hinge'
を,的损失关としてカスタム关数ハンドル@lossfun
を指定します。
オプションの姓名,Value
引数のコンマ区切りペアを指定します。姓名
は引数名で、Value
は対応する値です。姓名
は引用でなければなりませ。。NAME1,Value1,...,Namen,Valuen
のように、複数の名前と値のペアの引数を、任意の順番で指定できます。
BinaryLoss
—バイナリ学习器损失关数
'hamming'
|“线性”
|'logit'
|“指数”
|'binodeviance'
|'hinge'
|“二次”
|関数ハンドル
バイナリ学習器の損失関数。“二进制”
と組み込みの損失関数名または関数ハンドルから構成されるコンマ区切りのペアとして指定します。
次の表で、組み込み関数について説明します。ここで、yjは特定バイナリ器のクラスラベルラベルラベルラベルラベル(–1,1,1,0}内)、Sjは観测j jの,g(yj,sj)はバイナリの式です。
値 説明 スコア領域 g(yj,sj) 'binodeviance'
二项分布の逸脱度 (–∞,∞) log [1 + EXP(–2y)jsj)]/[2log(2)] “指数”
指数 (–∞,∞) Exp(–yjsj)/2 'hamming'
ハミング [0,1]または(–∞,∞) [1 – sign(yjsj)/2 'hinge'
ヒンジ (–∞,∞) max(0,1 - yjsj)/2 “线性”
線形 (–∞,∞) (1 - yjsj)/2 'logit'
ロジスティック (–∞,∞) log[1 + exp(–yjsj)]/[2log(2)] “二次”
2次 [0,1] [1 – yj(2sj- 1)]2/2 バイナリ,yj= 0のにがが=になるにされ。またまた,各クラスについて平均ののバイナリ损失がが计算计算
カスタム バイナリ損失関数の場合は関数ハンドルを指定します。たとえば、
customFunction
の场合は'BinaryLoss',@CustomFunction
を指定します。customFunction
の形式次のとおり。。开花= customFunction(M,s)
M
はMdl.CodingMatrix
に格纳たたたl列列コーディングです。。。s
は,行行のスコアの行。。。。开花
分类损失このは,特定特定のすべてのについてバイナリバイナリ损失损失をを集计集计します。。たとえば,,平均バイナリ损失を使用使用使用使用kは,のです。
lは,学习器数。。。
カスタムなバイナリ損失関数を渡す例については、カスタムバイナリ关数使用使用によるによるモデルモデルの标本の予测予测を参照しください。
BinaryLoss
の既定値は、バイナリ学習器が返すスコアの範囲によって異なります。次の表で、特定の仮定に基づくBinaryLoss
の既定について说明し。。
仮定 | 既定値 |
---|---|
SVMであるであるか,,,学习学习学习のまたはカーネル分类。。。。。 | 'hinge' |
すべてのバイナリ学習器が、adaboostm1 またはGentleBoost によって学習をさせたアンサンブルである。 |
“指数” |
すべてのバイナリ学習器が、LogitBoost によって学習をさせたアンサンブルである。 |
'binodeviance' |
すべてのバイナリ学習器が、ロジスティック回帰学習器の線形またはカーネル分類モデルである。または、fitcecoc で“ FitPosterior”,是真的 を设定,クラス事后确率をする指定指定たた。 |
“二次” |
既定値するは,コマンドラインドットを使用して済みモデルのBinaryLoss
プロパティを表示ます。
例:“二进制”,'binodeviance'
データ::char
|细绳
|function_handle
解码
—復号化スキーム
'lossweighted'
(既定値) |“损失”
バイナリ损失集计する复号。。'Decoding'
と'lossweighted'
または“损失”
から构成コンマ区のペアとしてし。。はは,バイナリ損失を参照しください。
例:'Decoding','lossbased'
Lossfun
—损失关数
“分类”
(既定値) |関数ハンドル
损失关数。“ LossFun”
と“分类”
または関数ハンドルから構成されるコンマ区切りのペアとして指定します。
组み込み关数
“分类”
を指定ますこの场合,损失はは分类误差であり,分类れた値の比率です。または,表记をして独自关数指定指定ますます。
n =大小(x,1)
が标本サイズ,K
がクラスである仮定し。关数には署名失利value = lossfun(C,S,W,Cost)
がなけれませんここで,のににますます。出力引数
失利value
はスカラーです。関数名 (
Lossfun
) を指定します。C
はn
行K
逻辑行列行列,する観测値属するクラスをが示します。。列のはははMdl.ClassNames
のクラスの順序に対応します。C
を作成には各行について観测値p
がクラスq
に含まれている場合にC(p,q) = 1
を設定します。行p
の他のすべての要素を0
に设定し。S
は、符号を反転したクラスの損失値が含まれているn
行K
列の数値行列です。各列は観測と対応しています。列の順序はMdl.ClassNames
のクラス顺序にします。入力S
は、predict
の出力引数NegLoss
に似ています。W
は,値の重みのn
1列列数値です。。W
を渡すその要素正规化さ,ががが1
になります。成本
は,误分类の,K
行K
列の数値行列です。たとえば、成本=一个(k) - 眼睛(k)
は、正しい分類のコストとして 0 を、誤分類のコストとして 1 を指定します。
“ LossFun”,@LossFun
を使用して独自の関数を指定します。
データ::char
|细绳
|function_handle
观察
—予测子データ観测値の次元
'rows'
(既定値) |'columns'
予测子データ観测値の。。“观察”
と'columns'
または'rows'
から構成されるコンマ区切りのペアとして指定します。mdl.Binarylearners
にはClassificationLinear
モデルがさていばなりません。
メモ
観测値列対応ように予测子を配置して“观察”,“列”
を指定すると、実行時間が大幅に短縮される可能性があります。table の予測子データに対して“观察”,“列”
を指定ことはでき。。
选项
—推定オプション
[]
(既定値) |Statset
によって返される体配列
推定オプション。Statset
により返される'选项'
と構造体配列から構成されるコンマ区切りのペアとして指定します。
並列計算を起動するには、以下を行います。
Parallel Computing Toolbox™ ライセンスが必要です。
“选项”,statset(“ useparalleal”,true)
を指定します。
Verbose
—详细レベル
0
(既定値) |1
详细レベル。“冗长”
と0
または1
から構成されるコンマ区切りのペアとして指定します。Verbose
は、コマンド ウィンドウに表示される診断メッセージの量を制御します。
Verbose
が0
の场合メッセージ表示さませんそれ以外のは,诊断メッセージメッセージが表示表示され
例:“冗长”,1
データ::单身的
|双倍的
Weights
—観测値の重み
ones(size(X,1),1)
(既定値) |数値ベクトル|TBL
内の変数の名前
観测値の重み。“重量”
と数値ベクトルまたはTBL
に含まれる変数の名前から構成されるコンマ区切りのペアとして指定します。重みを指定した場合、失利
は重み付き损失を计算。。
数値ベクトルでWeights
を指定する,Weights
のサイズはX
またはTBL
の行数と等しくなければなりません。
TBL
内の変数をWeights
として指定する場合、文字ベクトルまたは string スカラーを指定しなければなりません。たとえば、重みがTBL.w
として格纳れている,,Weights
として'w'
を指定ます。以外の场合,TBL
の列はTBL.w
を含めてすべて予測子として扱われます。
独自の損失関数を (Lossfun
を使用して) 指定しない場合、Weights
が正规れ合计が各クラス确率の値になり。
データ::单身的
|双倍的
|char
|细绳
出力引数
L
- 分类损失
数値スカラー | 数値行ベクトル
分类损失数値または行として返されます。L
はまたはの品质の尺度です解釈は关数加重スキームによってによって异异なりなりなりますますが,,に,优れ优れたた分类分类器器の
mdl.Binarylearners
にClassificationLinear
モデルがれている,,L
1行行のになりますは线形分类モデル内のの正则化化强度(numel(mdl.binarylearners {1} .lambda)
)です。値l(j)
は,正强度mdl.Binarylearners{1}.Lambda(j)
を使用学习をせたモデル损失。。。
それ以外の,L
はスカラー値。
詳細
分类误差
"分類誤差"はバイナリの尺度,次のなににますます。
ここで
wjは観測値 j の重みです。重みは再度正規化され、合計は 1 になります。
観測 j の予測クラスが真のクラスと異なる場合、ej= 1に,以外の场合はははははににになり。
つまり、分類誤差は、分類器が誤分類した観測値の比率です。
バイナリ損失
"バイナリ損失"は、バイナリ学習器がどの程度の精度で観測値をクラスに分類するかを判断する、クラスと分類スコアの関数です。
以下のように仮定します。
mkjは符号化設計行列 M の要素 (k,j)、つまりバイナリ学習器 j のクラス k に対応するコード。
sjは観测に対するバイナリ学习器学习器スコア。。
g はバイナリ損失関数。
は観测の予测クラス。
"損失に基づく復号化"[Escalera 他]では、バイナリ学習器全体のバイナリ損失の和が最小になるクラスにより、観測値の予測クラスが決まります。つまり、次のようになります。
"損失に重みを付けた復号化"[Escalera 他]では,全体バイナリ损失平均平均なるにより,,観测値のの予测クラスが决まりますます。。つまりつまりつまり,
Allwein 他によると,クラス损失値が同じに收まるので,损失に重み重みを付けたた复号化ででははは分类
次のサポートされる损失关数まとめい,,,,jは特定バイナリ器のクラスラベルラベルラベルラベルラベル(–1,1,1,0}内)、Sjは値j値スコア,,g(yj,sj)です。
値 | 説明 | スコア領域 | g(yj,sj) |
---|---|---|---|
'binodeviance' |
二项分布の逸脱度 | (–∞,∞) | log [1 + EXP(–2y)jsj)]/[2log(2)] |
“指数” |
指数 | (–∞,∞) | Exp(–yjsj)/2 |
'hamming' |
ハミング | [0,1]または(–∞,∞) | [1 – sign(yjsj)/2 |
'hinge' |
ヒンジ | (–∞,∞) | max(0,1 - yjsj)/2 |
“线性” |
線形 | (–∞,∞) | (1 - yjsj)/2 |
'logit' |
ロジスティック | (–∞,∞) | log[1 + exp(–yjsj)]/[2log(2)] |
“二次” |
2次 | [0,1] | [1 – yj(2sj- 1)]2/2 |
バイナリ,yj= 0 のときに損失が 0.5 になるように正規化され、バイナリ学習器の平均を使用して集計されます[Allwein 他]。
ecoc分类の的なのの全体の分类损失(オブジェクト失利
およびpredict
の名前値のペア引数引数“ LossFun”
により指定) とバイナリ損失を混同しないでください。
参照
[1] Allwein,E.,R。Schapire和Y. Singer。“将多类减少到二进制文件:边距分类器的统一方法。”机器学习研究杂志。卷。1,2000,第113–141页。
[2] Escalera,S.,O。Pujol和P. Radeva。“在三元错误校正输出代码中的解码过程中。”IEEE关于模式分析和机器智能的交易。卷。32,第7期,2010年,第120-134页。
[3] Escalera,S.,O。Pujol和P. Radeva。“对于错误校正输出代码的稀疏设计的三元代码的可分离性。”模式识别。卷。30,第3期,2009年,第285–297页。
拡张机能
高
メモリの許容量を超えるような多数の行を含む配列を計算します。
自动并列サポート
并行计算工具箱™をし自动に计算を実行ことで,コードをを化。。。。
並列実行するには、この関数を呼び出すときに名前と値の引数'选项'
を指定し、Statset
を使用してオプション構造体の'UseParallel'
フィールドをtrue
に设定し。
たとえば,のように。。“选项”,statset(“ useparalleal”,true)
并列计算详细については,自动并列を使用たたたた关数关数关数実行(并行计算工具箱)を参照しください。
gpu配列
并行计算工具箱™をしグラフィックス(GPU)上上実行ことにより,ををますますます。。。。
使用上注意および制限事项:
失利
は,のにのみのみのみででれ。。。入力引数
X
がgpuarray
である。入力引数
TBL
にgpuarray
予测子変数含まれて。。入力引数
mdl
がgpu配列の引数を使ってはめてておりおり,,,学习学习学习学习学习は使用使用し
代理分岐は分類木学習器で学習させたモデルではサポートされていません。
详细は,gpuでmatlab关数关数実行実行(并行计算工具箱)を参照しください。
バージョン履歴
matlabコマンド
Matlabコマンドコマンドにするがクリックされまし。。
matlabコマンドコマンドに入力してしください。。。。ブラウザー
Select a Web Site
选择一个网站以获取可用的翻译内容,并查看本地事件和优惠。根据您的位置,我们建议您选择:.
You can also select a web site from the following list:
如何获得最佳网站性能
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éricaLatina(Español)
- Canada(英语)
- United States(英语)