主要内容

このページ最新ではありませ。をクリックし,英语のの最新版版を参照参照し。

失利

マルチクラス誤り訂正出力符号 (ECOC) モデルの分類損失

説明

L= loss(Mdl,TBL,响应varname)は、分類損失 (L)を返し。これは,tbl.ResponseVarname内の真のクラス ラベルと比較して、学習済みのマルチクラス誤り訂正出力符号 (ECOC) モデルMdlTBL内の予測子データをどの程度の精度で分類するかを表すスカラーです。既定では、失利分类误差を使用してLを计算し。

L= loss(Mdl,TBL,Y)は表TBL内の予測子データとY内ののラベルに対する损失を返します。

L= loss(Mdl,X,Y)は,行列X内の予測子データとY内ののラベルに対する损失を返します。

L= loss(___,姓名,Value)では、前の構文におけるいずれかの入力引数の組み合わせに加えて、1 つ以上の名前と値のペアの引数を使用してオプションを指定します。たとえば、復号化方式、分類損失関数、詳細レベルなどを指定できます。

すべて折りたたむ

フィッシャーのアヤメのデータセットを読み込みます。予測子データ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 モデルは、検定標本のアヤメをすべて正しく分類します。

各観测最小损失を考虑する损失关数を使用ししててて,,,,モデルモデル

フィッシャーのアヤメのデータセットを読み込みます。予測子データ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です。

入力引数

すべて折りたたむ

ECOCモデルモデルモデルモデルモデルモデルモデルモデルClassificationECOCまたはCompactClassificationECOCモデルオブジェクト指定します。

ECOCモデルモデルモデルをする方法について,,,,ClassificationECOCまたはCompactClassificationECOCを参照しください。

标本データテーブルとして指定。。TBL1つつつ観测値,列列列は列つのつの子変数にに対応対応しますますます。。に応じてて,,応答応答応答変数用用およびTBLに含めることができ。TBLには,Mdlを学習させるために使用したすべての予測子が含まれていなければなりません。文字ベクトルの cell 配列ではない cell 配列と複数列の変数は使用できません。

tableに格纳れいる标本を使用してMdlに学習をさせた場合,失利table tableににれていばなりません。。。

Mdlに学習をさせるときに、fitcecocの名前値のペア引数引数“学习者”で指定たテンプレートオブジェクトについて“标准化”,trueを設定したとします。この場合、対応するバイナリ学習器jについて、対応するMdl.BinaryLearner{j}.Mu内の平均およびmdl.binarylearner {j} .sigma内のをして,予测子データ列标准化ささます。

データ::table

応答変数の名前。TBL内の変数の名前で指定します。Mdlを学習させるために使用した応答変数がTBLに含まている场合,响应varnameを指定する必要はありません。

响应varname字符串字符串スカラースカラースカラースカラー指定しなければなりません。たとえばたとえば,応答変数変数変数TBL.yとして格纳れている,,响应varnameとして'y'を指定ます。以外の场合,TBLの列はTBL.yを含めてすべて予測子として扱われます。

逻辑配列,,,,,,,,,,,,,,,,配列配列ベクトルベクトルベクトルベクトルベクトルベクトル,,またはまたは文字文字文字文字ベクトルベクトルベクトルののベクトルベクトルベクトルベクトルベクトルベクトルベクトルベクトル配列配列配列配列ででなけれなけれなければばばなりませませんん。。応答応答変数しなけれなりません。

データ::char|细绳

予测子データ。数値行列として指定します。

Xの各行は 1 つの観測値に対応し、各列は 1 つの変数に対応します。Xの列内変数は,分类器Mdlに学習させた変数と同じでなければなりません。

Xの行数はYの行数と等しくなければなりません。

Mdlに学習をさせるときに、fitcecocの名前値のペア引数引数“学习者”で指定たテンプレートオブジェクトについて“标准化”,trueを設定したとします。この場合、対応するバイナリ学習器jについて、対応するMdl.BinaryLearner{j}.Mu内の平均およびmdl.binarylearner {j} .sigma内のをして,予测子データ列标准化ささます。

データ::双倍的|单身的

类别配列配列,文字配列,,,,,,,,ベクトルベクトルベクトル数値数値ベクトル,またはまたは文字文字ベクトルベクトルののののの配列配列配列配列配列Yのデータ型はMdl.ClassNamesと同じでなければなりません。(字符串配列配列文字のの配列配列扱われ)。

Yの行数はTBLまたはXの行数と等しくなければなりません。

データ::分类|char|细绳|logical|单身的|双倍的|cell

名前と値の引数

例:失利(Mdl,X,Y,'BinaryLoss','hinge','LossFun',@lossfun)は,学习器の损失としてとして'hinge'を,的损失关としてカスタム关数ハンドル@lossfunを指定します。

オプションの姓名,Value引数のコンマ区切りペアを指定します。姓名は引数名で、Valueは対応する値です。姓名は引用でなければなりませ。。NAME1,Value1,...,Namen,Valuenのように、複数の名前と値のペアの引数を、任意の順番で指定できます。

バイナリ学習器の損失関数。“二进制”と組み込みの損失関数名または関数ハンドルから構成されるコンマ区切りのペアとして指定します。

  • 次の表で、組み込み関数について説明します。ここで、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)
    ここで、

    • MMdl.CodingMatrixに格纳たたたl列列コーディングです。。。

    • sは,行行のスコアの行。。。。

    • 开花分类损失このは,特定特定のすべてのについてバイナリバイナリ损失损失をを集计集计します。。たとえば,,平均バイナリ损失を使用使用使用使用

    • kは,のです。

    • lは,学习器数。。。

    カスタムなバイナリ損失関数を渡す例については、カスタムバイナリ关数使用使用によるによるモデルモデルの标本の予测予测を参照しください。

BinaryLossの既定値は、バイナリ学習器が返すスコアの範囲によって異なります。次の表で、特定の仮定に基づくBinaryLossの既定について说明し。。

仮定 既定値
SVMであるであるか,,,学习学习学习のまたはカーネル分类。。。。。 'hinge'
すべてのバイナリ学習器が、adaboostm1またはGentleBoostによって学習をさせたアンサンブルである。 “指数”
すべてのバイナリ学習器が、LogitBoostによって学習をさせたアンサンブルである。 'binodeviance'
すべてのバイナリ学習器が、ロジスティック回帰学習器の線形またはカーネル分類モデルである。または、fitcecoc“ FitPosterior”,是真的を设定,クラス事后确率をする指定指定たた。 “二次”

既定値するは,コマンドラインドットを使用して済みモデルのBinaryLossプロパティを表示ます。

例:“二进制”,'binodeviance'

データ::char|细绳|function_handle

バイナリ损失集计する复号。。'Decoding''lossweighted'または“损失”から构成コンマ区のペアとしてし。。はは,バイナリ損失を参照しください。

例:'Decoding','lossbased'

损失关数。“ LossFun”“分类”または関数ハンドルから構成されるコンマ区切りのペアとして指定します。

  • 组み込み关数“分类”を指定ますこの场合,损失はは分类误差であり,分类れた値の比率です。

  • または,表记をして独自关数指定指定ますます。

    n =大小(x,1)が标本サイズ,Kがクラスである仮定し。关数には署名失利value = lossfun(C,S,W,Cost)がなけれませんここで,のににますます。

    • 出力引数失利valueはスカラーです。

    • 関数名 (Lossfun) を指定します。

    • CnK逻辑行列行列,する観测値属するクラスをが示します。。列のはははMdl.ClassNamesのクラスの順序に対応します。

      Cを作成には各行について観测値pがクラスqに含まれている場合にC(p,q) = 1を設定します。行pの他のすべての要素を0に设定し。

    • Sは、符号を反転したクラスの損失値が含まれているnK列の数値行列です。各列は観測と対応しています。列の順序はMdl.ClassNamesのクラス顺序にします。入力Sは、predictの出力引数NegLossに似ています。

    • Wは,値の重みのn1列列数値です。。Wを渡すその要素正规化さ,ががが1になります。

    • 成本は,误分类の,KK列の数値行列です。たとえば、成本=一个(k) - 眼睛(k)は、正しい分類のコストとして 0 を、誤分類のコストとして 1 を指定します。

    “ LossFun”,@LossFunを使用して独自の関数を指定します。

データ::char|细绳|function_handle

予测子データ観测値の。。“观察”'columns'または'rows'から構成されるコンマ区切りのペアとして指定します。mdl.BinarylearnersにはClassificationLinearモデルがさていばなりません。

メモ

観测値列対応ように予测子を配置して“观察”,“列”を指定すると、実行時間が大幅に短縮される可能性があります。table の予測子データに対して“观察”,“列”を指定ことはでき。。

推定オプション。Statsetにより返される'选项'と構造体配列から構成されるコンマ区切りのペアとして指定します。

並列計算を起動するには、以下を行います。

  • Parallel Computing Toolbox™ ライセンスが必要です。

  • “选项”,statset(“ useparalleal”,true)を指定します。

详细レベル。“冗长”0または1から構成されるコンマ区切りのペアとして指定します。Verboseは、コマンド ウィンドウに表示される診断メッセージの量を制御します。

Verbose0の场合メッセージ表示さませんそれ以外のは,诊断メッセージメッセージが表示表示され

例:“冗长”,1

データ::单身的|双倍的

観测値の重み。“重量”と数値ベクトルまたはTBLに含まれる変数の名前から構成されるコンマ区切りのペアとして指定します。重みを指定した場合、失利は重み付き损失を计算。。

数値ベクトルでWeightsを指定する,WeightsのサイズはXまたはTBLの行数と等しくなければなりません。

TBL内の変数をWeightsとして指定する場合、文字ベクトルまたは string スカラーを指定しなければなりません。たとえば、重みがTBL.wとして格纳れている,,Weightsとして'w'を指定ます。以外の场合,TBLの列はTBL.wを含めてすべて予測子として扱われます。

独自の損失関数を (Lossfunを使用して) 指定しない場合、Weightsが正规れ合计が各クラス确率の値になり。

データ::单身的|双倍的|char|细绳

出力引数

すべて折りたたむ

分类损失数値または行として返されます。Lはまたはの品质の尺度です解釈は关数加重スキームによってによって异异なりなりなりますますが,,に,优れ优れたた分类分类器器の

mdl.BinarylearnersClassificationLinearモデルがれている,,L1行行のになりますは线形分类モデル内のの正则化化强度(numel(mdl.binarylearners {1} .lambda))です。値l(j)は,正强度mdl.Binarylearners{1}.Lambda(j)を使用学习をせたモデル损失。。。

それ以外の,Lはスカラー値。

詳細

すべて折りたたむ

分类误差

"分類誤差"はバイナリの尺度,次のなににますます。

L = j = 1 n w j e j ,

ここで

  • wjは観測値 j の重みです。重みは再度正規化され、合計は 1 になります。

  • 観測 j の予測クラスが真のクラスと異なる場合、ej= 1に,以外の场合はははははににになり。

つまり、分類誤差は、分類器が誤分類した観測値の比率です。

バイナリ損失

"バイナリ損失"は、バイナリ学習器がどの程度の精度で観測値をクラスに分類するかを判断する、クラスと分類スコアの関数です。

以下のように仮定します。

  • mkjは符号化設計行列 M の要素 (k,j)、つまりバイナリ学習器 j のクラス k に対応するコード。

  • sjは観测に対するバイナリ学习器学习器スコア。。

  • g はバイナリ損失関数。

  • k ^ は観测の予测クラス。

"損失に基づく復号化"[Escalera 他]では、バイナリ学習器全体のバイナリ損失の和が最小になるクラスにより、観測値の予測クラスが決まります。つまり、次のようになります。

k ^ = Argmin k 1 B j = 1 B | m k j | g ( m k j , s j ) .

"損失に重みを付けた復号化"[Escalera 他]では,全体バイナリ损失平均平均なるにより,,観测値のの予测クラスが决まりますます。。つまりつまりつまり,

k ^ = Argmin k j = 1 B | m k j | g ( m k j , s j ) j = 1 B | m k j | .

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页。

拡张机能

バージョン履歴

R2014Bで导入