Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

loss

単纯ベイズ分類器の分類損失

说明

l=损失(MDL,,,,tbl,,,,ResponseVarName分类损失を返します。これは、tbl.ResponseVarName内の真のクラス ラベルと比較して、学習済みの単純ベイズ分類器MDLがtabletbl内の予測子データをどの程度適切に分類するかを表すスカラーです。

lossは,MDLpriorプロパティに格納されている、F一世tCnbが学習に使用したクラスの事前確率に対して、tbl.ResponseVarName内の确率を化します。

l=损失(MDL,,,,tbl,,,,yは,tabletbl内の予测子とy内の真のクラス ラベルに対する分類損失を返します。

l=损失(MDL,,,,X,,,,yは,行列Xに含まれている予測子データに基づいて、yに含まいるのクラスラベルとた分类损失を返し。

l=损失(___,,,,名称,价值では前におけるいずれかの入力引数の组み合わせ加えてて,,,つつつ以上以上のの名前名前名前と値のペアペアのの引数引数をを使用しててオプションオプションをししし。

すべて折りたたむ

単纯ベイズ分類器の検定標本分類誤差 (損失) を判定します。複数のモデルで同じタイプの損失を比較した場合、損失が低い方が予測モデルとして優れていることになります。

渔业データセットます。150本本のについてについてについてつの花弁测定値が含まれる行列行列Xを作成し。対応するアヤメの種類が含まれる文字ベクトルの cell 配列yを作成し。

加载渔业x = meas;y =物种;rng('default'%可再现性

yのクラス情報を使用して、観測値を階層的に学習セットと検定セットに無作為に分割します。テスト用の 30% のホールドアウト標本を指定します。

Cv = cvpartition(Y,'HoldOut',,,,0。30);

学习インデックス検定インデックス抽出します。

traininds =训练(CV);testinds = test(CV);

学習データ セットと検定データ セットを指定します。

Xtrain = X(traininds,:);ytrain = y(traininds);Xtest = x(testinds,:);ytest = y(testinds);

予測子XTrainとクラス ラベルytrainを使用して、単純ベイズ分類器に学習させます。クラス名を指定することが推奨されます。F一世tCnbは,各予測子が条件付き正規分布に従うと仮定しています。

mdl = fitcnb(xtrain,ytrain,'ClassNames',{'setosa',,,,“ versicolor”,,,,'virginica'})
Mdl = ClassificationNaiveBayes ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'setosa' 'versicolor' 'virginica'} ScoreTransform: 'none' NumObservations: 105 DistributionNames: {'normal' 'normal' 'normal' 'normal'} DistributionParameters:{3x4 cell}属性,方法

MDLは学習させたClassificationNaiveBayes分類器です。

検定标本を推定て,アルゴリズム一般の精度を特定します。

l=损失(MDL,,,,XTest,YTest)
L = 0.0444

単纯ベイズ分類器は、検定標本のうち約 4% を誤分類しています。

F一世tCnbで分類器を学習させるときに、より適切な予測子の分布を指定することで、分類誤差を低減できる可能性があります。

渔业データセットます。150本本のについてについてについてつの花弁测定値が含まれる行列行列Xを作成し。対応するアヤメの種類が含まれる文字ベクトルの cell 配列yを作成し。

加载渔业x = meas;y =物种;rng('default'%可再现性

yのクラス情報を使用して、観測値を階層的に学習セットと検定セットに無作為に分割します。テスト用の 30% のホールドアウト標本を指定します。

Cv = cvpartition(Y,'HoldOut',,,,0。30);

学习インデックス検定インデックス抽出します。

traininds =训练(CV);testinds = test(CV);

学習データ セットと検定データ セットを指定します。

Xtrain = X(traininds,:);ytrain = y(traininds);Xtest = x(testinds,:);ytest = y(testinds);

予測子XTrainとクラス ラベルytrainを使用して、単純ベイズ分類器に学習させます。クラス名を指定することが推奨されます。F一世tCnbは,各予測子が条件付き正規分布に従うと仮定しています。

mdl = fitcnb(xtrain,ytrain,'ClassNames',{'setosa',,,,“ versicolor”,,,,'virginica'});

MDLは学習させたClassificationNaiveBayes分類器です。

検定标本を推定て,アルゴリズム一般の精度を判定します。

l=损失(MDL,,,,XTest,YTest,'LossFun',,,,“ logit”
l=0。3359

ロジット損失は約 0.34 です。

入力引数

すべて折りたたむ

単纯ベイズ分類モデル。F一世tCnbによって返されるClassificationNaiveBayesモデル オブジェクト、またはCompactによって返される紧凑型班级モデル オブジェクトとして指定します。

モデルをせるに使用する标本テーブルとして指定し。。tblの各行は 1 つの観測値に、各列は 1 つの予測子変数に対応します。tblには、MDLのをに使用したすべてすべてががれれなけれなけれなければばなりなりませませませませませませんんん文字文字のののののの配列配列配列ではないではないではないではない配列配列配列とと复数tblに応答変数用および観測値の重み用の追加列を含めることができます。

テーブルに格納されている標本データを使用してMDLの学習を行った場合、lossの入力データもテーブルに格納されていなければなりません。

応答変数の。tbl内のの名前指定します。

ResponseVarNameには文字ベクトルまたは string スカラーを指定しなければなりません。たとえば、応答変数ytbl.yとして格納されている場合、'y'として指定します。それ以外の場合、tblの列はyを含めすべて予测子扱われます。

MDLを学习せるに使用た応答変数がtblに含まれている場合、ResponseVarNameを指定する必要はありません。

応答変数は、categorical 配列、文字配列、string 配列、logical ベクトル、数値ベクトル、または文字ベクトルの cell 配列でなければなりません。応答変数が文字配列の場合、各要素は配列の 1 つの行に対応しなければなりません。

データ型:Char|string

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

Xののははつの値(“インスタンス”や“例”ともますます)ににし,列列はははつのつのつの(“特徴”ともます)に対応します。Xの列内の変数は、分類器MDLに学习た変数同じでなければませ。。。

yの長さとXの行数等しくなけれなりません。

データ型:double|s一世ngle

类别配列配列,文字配列,,,,,,,,,ベクトルベクトル数値数値ベクトルのいずれいずれかか,あるいはあるいは文字文字文字文字ベクトルベクトルののののののの配列yのデータ型はmdl.classnamesと同じばなりませ。。((string 配列は文字ベクトルの cell 配列として扱われます)。

yの長さはtblまたはXの行数等しくなけれなりません。

データ型:Categorical|Char|string|逻辑|s一世ngle|double|细胞

名前と値のペアの引数

オプションの名称,价值引数の区ペアを指定し。。Nameは引数名で、价值は対応するです。Nameは引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueNのに复数名前とのペア引数を任意の顺番で指定指定。。。

例:损失(MDL,TBL,Y,“权重”,W)は,変数wの各行格纳ている対応するを使用して,tblの各行の観測値に重みを付けます。

损失关数。'LossFun'と损失数または关数から构成れるコンマ切りのペアとして指定指定。。。

  • 次の表は、使用可能な損失関数の一覧です。対応する文字ベクトルまたは string スカラーを使用して、いずれかを指定します。

    说明
    “ Binodeviance” 二項分布からの逸脱度
    'classiferror' 10进数の误分类率
    'exponential' 指数损失
    '合页' ヒンジ损失
    “ logit” ロジスティック損失
    'MinCost' 最小予測誤分類コスト (事後確率である分類スコアの場合)
    'quadratic' 二次損失

    'MinCost'は,であるスコアに适しい。既定の设定ではは,単纯単纯ベイズモデルモデルはは分类分类スコアスコアとしてとしてとして事后事后事后(预测を参照)。

  • 关数ハンドルをし独自の关数指定します。

    nX内の値の个数,kは異なるクラスの個数 (numel(mdl.classnames)MDLはモデルであるとし。关数のは次のようになってていなけれなけれなりませ

    损失价值=lossfun((C,,,,s,,,,w,,,,Cost)
    ここで,

    • 出力引数损失价值はスカラーです。

    • 关数名(lossfun)を指定し。

    • Cnk列の logical 行列であり、対応する観測値が属するクラスを各行が示します。列の順序はmdl.classnamesのクラス顺序に対応。。

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

    • sは,分類スコアのnk列のです。列ははmdl.classnamesのクラス顺序に対応。。sは分類スコアの行列で、预测の出力とです。

    • wは,観測値の重みのn行1列の数値ベクトルです。wを渡す,重みはがが1になるように正規化されます。

    • Costは,誤分類コストの、kk列の行列です。,,成本=一个(k) - 眼(k)は,分类のコストてて0を、誤分類のコストとして1を指定し。

    'LossFun',@lossfunを使用ての关数指定します。

損失関数の詳細については、分类损失を参照してください。

データ型:Char|string|function_handle

観测値重み。数値またはまたはtbl内のの名前指定します。Xまたはtblの各行に含まれている観測値には、权重の対応重みがされます。

数値ベクトルで权重を指定する場合、权重のサイズはXまたはtblの行数等しくなけれなりません。

权重としてtbl内のを指定场合,名前文字ベクトルまたはまたはまたはスカラースカラースカラーなければなりませません。。重み重み重み重みTBL.Wとして格納されている場合、权重として'W'を指定し。それ以外の場合、tblの列はTBL.Wを含めすべて予测子扱われます。

損失関数を指定しない場合、权重は合计が1になるように正規化されます。

データ型:double|Char|string

出力引数

すべて折りたたむ

分类损失スカラーとして返さ。。lは汎化または再代入品質測定です。解釈は損失関数と加重スキームによって異なります。通常は、優れた分類器の方が損失値がより小さくなります。

详细

すべて折りたたむ

分类损失

“分类”关数はの误差を评価しし复数ので同じ同じタイプのの损失损失ををを比较比较たた场合,,损失损失损失ががが低い低い方

以下のを考えます。

  • lは加重分类损失。。

  • nは标本。。

  • バイナリ分類は以下です。

    • yjは観測されたクラス ラベルです。陰性クラスを示す -1 または陽性クラスを示す 1 (あるいは、classNamesプロパティのクラス-1または -2番目番目クラスを示す示す示す示す示すををを使用て符号化化。。。。。

    • f(xj)は予測子データ X の観測値 (行) j に対する陽性クラスの分類スコアです。

    • mj= yjf(xj)は,yjに対応するクラスに観測値 j を分類する分類スコアです。正の値の mjは正しい分類を示しており、平均損失に対する寄与は大きくありません。負の値の mjは正しくを示しおり,平均に寄与寄与ますます。

  • マルチクラス(つまりつまりk≥ 3)をサポートの场合次のになり。。

    • yj*は,k- 1 個の 0 と、観測された真のクラス yjに対応位置のからからされるです。たとえば,,,,番目番目番目の値値の真真真のクラスクラスクラスクラスががががががクラスk=4の場合、y2*= [0 0 1 0]''になり。の顺序は入力ののclassNamesプロパティ内顺序に対応。。

    • f(xj)は予測子データXの観測値jに対するクラススコアのベクトルで,長さはKです。スコアの順序は入力モデルのclassNamesプロパティ内クラス顺序に対応し。。

    • mj= yj*'f(xj)。したがって mjは,観測された真のクラスについてモデルが予測するスカラー分類スコアです。

  • 観測値 j の重みは wjです観测のは正规化れ,合计は対応対応事前事前事前确率确率确率にににになりなります。またまたまた,,事前事前事前确率がががががががががががががががががになるになるになるになるになるになるになるになる

    j = 1 n w j = 1。

この状况は名前とのペアの引数'LossFun'を使用して指定できる、サポートされる損失関数は次の表のようになります。

損失関数 lossFunの値
二項分布からの逸脱度 “ Binodeviance” l = j = 1 n w j log { 1 + exp [[ 2 m j 这是给予的 }
10进数の误分类率 'classiferror'

l = j = 1 n w j { y ^ j y j }

y ^ j は,がであるに対応するクラス。。i{

クロスエントロピー損失 “ Crossentropy”

“ Crossentropy”はニューラルモデルに适してい。。

加重クロスエントロピー損失は次となります。

l = j = 1 n w ˜ j log (( m j k n ,,,,

ここで重み w ˜ j は,合計が 1 ではなく n になるように正規化されます。

指数损失 'exponential' l = j = 1 n w j exp (( m j
ヒンジ损失 '合页' l = j = 1 n w j 最大限度 { 0 ,,,, 1 m j }
ロジット損失 “ logit” l = j = 1 n w j log (( 1 + exp (( m j
最小予測誤分類コスト 'MinCost'

'MinCost'は,分類スコアが事後確率の場合にのみ適しています。

重み付きの最小予測分類コストは、次の手順を観測値 j = 1、...、n について使用することにより計算されます。

  1. 観測値 Xjをクラス k に分類するための予測誤分類コストを推定します。

    γ j k = (( F (( X j ' C k

    f(xj)は観測値 Xjのバイナリおよびマルチクラス分類におけるクラスの事後確率の列ベクトルです。C はモデルのCostプロパティに格納されるコスト行列です。

  2. 最小予測誤分類コストに対応するクラス ラベルを観測値 j について予測します。

    y ^ j = argmin k = 1 ,,,, ..。 ,,,, k γ j k

  3. Cを使用して、予測を行うために必要なコスト (cj)を求めます。

最小误损失の加重平均次となります。

l = j = 1 n w j C j

既定のコスト行列 (正しい分類の場合の要素値は 0、誤った分類の場合の要素値は 1) を使用する場合、'MinCost'損失は'classiferror'損失と等価になります。

二次損失 'quadratic' l = j = 1 n w j (( 1 m j 2

次のでは,,,つの観测値スコアスコアスコアに対する“ Crossentropy”および'MinCost'を除く) を比較しています。いくつかの関数は、点 (0,1) を通過するように正規化されています。

比较不同损失功能的分类损失

誤分類コスト

“误分类”は,観測を誤ったクラスにラベル付けする分類器の相対的な重大度です。

误分类コスト,の误分类コスト误分类コストコストののの种类种类がありあり。。。ををを

  • "真の誤分類コスト"- k行k列行列,がががが(i,j)はは観测クラスクラスクラスクラスででで予测予测MDL。Costに格納され、計算に使用されます。既定の設定では、一世jの場合にMDL.COST(I,J)= 1でで一世=jの場合MDL.COST(I,J)=0です。つまり、正しい分類のコストは0で,た分类では1です。

  • “予测误コスト”-k次元のベクトルで、ここで、要素 k はクラス事後確率で重み付けされるクラス k に観測値を分類する加重平均誤分類コストです。

    C k = j = 1 k p ^ (( y = j | X 1 ,,,, ..。 ,,,, X p C o s t j k

    つまり,は低い予测误分类に対応クラスに分类されます。

事后确率

“事后”はデータられるに,観测値特定クラスに属して确率です。

単纯ベイズの,与えた観测(x1,...,Xp)のががになる确率次のになります。

p ^ (( y = k | X 1 ,,,, .. ,,,, X p = p (( X 1 ,,,, ..。 ,,,, X p | y = k π (( y = k p (( X 1 ,,,, ..。 ,,,, X p ,,,,

ここで

  • p (( X 1 ,,,, ..。 ,,,, X p | y = k は,予測子がクラス k に含まれる場合の条件付き同時密度です。予測子の分布名はMDL。DistributionNamesに格納します。

  • π(y = k)はクラス事前の分布。。mdl.priorは事前を保存し。。

  • p (( X 1 ,,,, .. ,,,, X p は予测子密度。各は离散なので次のようになります。 p (( X 1 ,,,, ..。 ,,,, X p = k = 1 k p (( X 1 ,,,, ..。 ,,,, X p | y = k π (( y = k

事前確率

クラスの“事前”は,母集団内でそのクラスの観測値が出現すると考えられる相対頻度です。

拡張機能

R2014b で導入