このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
kfoldLoss
学習で使用しない観測値の分類損失
説明
入力引数
CVMdl
- - - - - -交差検証済みのバ@ @ナリ線形分類モデル
ClassificationPartitionedLinear
モデルオブジェクト
交差検証済みバ@ @ナリ線形分類モデル。ClassificationPartitionedLinear
モデルオブジェクトとして指定します。ClassificationPartitionedLinear
モデルオブジェクトを作成するには,fitclinear
を使用し,交差検証用の名前と値のペアの引数のいずれかCrossVal
など)を指定します。
推定値を取得するため,kfoldLossは線形分類モデルの交差検証に使用したものと同じデ,タ(X
およびY
)を適用します。
名前と値のペアの引数
オプションの名称,值
引数のコンマ区切りペアを指定します。的名字
は引数名で,价值
は対応する値です。的名字
は引用符で囲まなければなりません。Name1, Value1,…,的家
のように,複数の名前と値のペアの引数を,任意の順番で指定できます。
折叠
- - - - - -分類スコアの予測に使用する分割の@ @ンデックス
1: CVMdl。KFold
(既定値) |正の整数の数値ベクトル
分類スコアの予測に使用する分割の@ @ンデックス。“折叠”
と正の整数の数値ベクトルから構成されるコンマ区切りのペアとして指定します。折叠
の要素は1
からCVMdl。KFold
の範囲でなければなりません。
例:“折叠”,[1 4 10]
デ,タ型:单
|双
LossFun
- - - - - -損失関数
“classiferror”
(既定値) |“binodeviance”
|“指数”
|“枢纽”
|分对数的
|“mincost”
|“二次”
|関数ハンドル
損失関数。“LossFun”
と組み込みの損失関数名または関数ハンドルから構成されるコンマ区切りのペアとして指定します。
次の表は,使用可能な損失関数の一覧です。対応する文字ベクトルまたは字符串スカラ,を使用して,いずれかを指定します。
値 説明 “binodeviance”
二項分布からの逸脱度 “classiferror”
10進数の誤分類率 “指数”
指数損失 “枢纽”
ヒンジ損失 分对数的
ロジスティック損失 “mincost”
最小予測誤分類コスト(事後確率である分類スコアの場合) “二次”
二次損失 “mincost”
は,事後確率である分類スコアに適しています。線形分類モデルの場合,既定の設定ではロジスティック回帰学習器は事後確率を分類スコアとして返しますが,SVM学習器はそうではありません(预测
を参照)。関数ハンドル表記を使用して独自の関数を指定します。
n
をX
内の観測値数,K
を異なるクラスの数(元素个数(Mdl.ClassNames)
、Mdl
は入力モデル)とします。使用する関数のシグネチャは次のようになっていなければなりません。lossvalue =
lossfun
(C、S、W、成本)出力引数
lossvalue
はスカラ,です。関数名 (
lossfun
)を選択します。C
はn
行K
列の逻辑行列で,行は対応する観測値が属するクラスを示しています。列の順序はMdl。ClassNames
のクラスの順序に対応します。C
を作成するには,各行にいて観測値p
がクラス问
に含まれている場合にC(p,q) = 1
を設定します。行p
の他のすべての要素を0
に設定します。年代
は,分類スコアのn
行K
列の行列です。列の順序はMdl。ClassNames
のクラスの順序に対応します。年代
は分類スコアの行列で,预测
の出力と同様です。W
は,観測値の重みのn
行1列の数値ベクトルです。W
を渡す場合,要素は正規化され,合計が1
になります。成本
は誤分類コストのk行K
列の数値行列です。たとえば,成本=单位(K) -眼(K)
は,正しい分類のコストとして0
を,誤分類のコストとして1
を指定します。
“LossFun”@
を使用して独自の関数を指定します。lossfun
デ,タ型:字符
|字符串
|function_handle
模式
- - - - - -損失の集約レベル
“平均”
(既定値) |“个人”
損失の集約レベル。“模式”
と“平均”
または“个人”
から構成されるコンマ区切りのペアとして指定します。
値 | 説明 |
---|---|
“平均” |
分割全体で平均した損失を返す |
“个人” |
各分割にいて損失を返す |
例:“模式”,“个人”
出力引数
l
-交差検証分類損失
数値スカラ,|数値ベクトル,|数値行列
例
k分割交差検証の分類誤差の推定
NLPのデ,タセットを読み込みます。
负载nlpdata
X
は予測子デ,タのスパ,ス行列,Y
はクラスラベルの分类ベクトルです。デタには2を超えるクラスがあります。
モデルでは,あるWebページの単語数が统计和机器学习工具箱™ドキュメンテーションによるものであるかどうかを識別できなければなりません。したがって、统计和机器学习工具箱™のドキュメンテーションWebページに対応するラベルを識別します。
Ystats = Y ==“统计数据”;
あるドキュメンテーションWebページの単語数が统计和机器学习工具箱™ドキュメンテーションによるものであるかどうかを識別できるバイナリ線形分類モデルの交差検証を行います。
rng (1);%用于再现性CVMdl = fitclinear(X,Ystats,“CrossVal”,“上”);
CVMdl
はClassificationPartitionedLinear
モデルです。既定では,10分割交差検証が実行されます。“KFold”
名前と値のペアの引数を使用して分割数を変更できます。
分割外分類誤差率の平均を推定します。
ce = kfoldLoss(cvdl)
Ce = 7.6017e-04
または,名前と値のペアの引数“模式”,“个人”
をkfoldLoss
で指定することにより,分割ごとの分類誤差率を取得できます。
カスタムな分類損失の指定
NLPのデ,タセットを読み込みます。K分割交差検証の分類誤差の推定で説明されているようにデ,タを前処理し,予測子デ,タを転置します。
负载nlpdataYstats = Y ==“统计数据”;X = X';
5分割の交差検証を使用してバescナリ線形分類モデルを交差検証します。SpaRSAを使用して目的関数を最適化します。予測子の観測値が列に対応することを指定します。
rng (1);%用于再现性CVMdl = fitclinear(X,Ystats,“规划求解”,“sparsa”,“KFold”5,...“ObservationsIn”,“列”);CMdl = cvmdl .训练{1};
CVMdl
はClassificationPartitionedLinear
モデルです。このモデルに含まれている训练有素的
プロパティは,各分割の学習セットを使用して学習を行ったClassificationLinear
モデルが格納されている5行1列のcell配列です。
次の線形損失を評価する無名関数を作成します。
は観測値jの重み,y_jは応答j(陰性クラスの場合は-1,それ以外の場合は1),f_jは観測値jの生の分類スコアです。カスタム損失関数は特定の形式で記述しなければなりません。カスタム損失関数の記述に関するルルにいては,名前と値のペアの引数LossFun
を参照してください。この関数では分類コストを使用しないので,~
を使用してkfoldLoss
に分類コストの位置を無視させます。
linearloss = @ (C, S W ~)和(- W。*总和(S . C * 2) / (W)之和;
線形損失関数を使用して平均の交差検証分類損失を推定します。また,各分割の損失を取得します。
ce = kfoldLoss(CVMdl,“LossFun”linearloss)
Ce = -8.0982
ceFold = kfoldLoss(CVMdl,“LossFun”linearloss,“模式”,“个人”)
ceFold =5×1-8.3165 -8.7633 -7.4342 -8.0423 -7.9347
k分割分類損失の使用による適切な套索ペナルティの特定
ロジスティック回帰学習器を使用する線形分類モデルに適した套索ペナルティの強度を決定するため,検定標本の分類誤差率を比較します。
NLPのデ,タセットを読み込みます。カスタムな分類損失の指定で説明されているようにデ,タを前処理します。
负载nlpdataYstats = Y ==“统计数据”;X = X';
~ の範囲で対数間隔で配置された11個の正則化強度を作成します。
Lambda = logspace(-6,-0.5,11);
5分割の交差検証を使用してバescナリ線形分類モデルを交差検証します。各正則化強度を使用します。年代paRSA を使用して目的関数を最適化します。目的関数の勾配の許容誤差を1 e-8
に下げます。
rng (10);%用于再现性CVMdl = fitclinear(X,Ystats,“ObservationsIn”,“列”,...“KFold”5,“学习者”,“物流”,“规划求解”,“sparsa”,...“正规化”,“套索”,“λ”λ,“GradientTolerance”1 e-8)
CVMdl = ClassificationPartitionedLinear CrossValidatedModel: 'Linear' ResponseName: 'Y' NumObservations: 31572 KFold: 5 Partition: [1x1 cvpartition] ClassNames: [0 1] ScoreTransform: 'none'属性,方法
学習済みの線形分類モデルを抽出します。
Mdl1 = CVMdl。训练有素的{1}
Mdl1 = ClassificationLinear ResponseName: 'Y' ClassNames: [0 1] ScoreTransform: 'logit' Beta: [34023x11 double]偏差:[1x11 double] Lambda: [1x11 double]学习者:'logistic'属性,方法
Mdl1
はClassificationLinear
モデルオブジェクトです。λ
は正則化強度のシ,ケンスなので,Mdl
はそれぞれがλ
の各正則化強度に対応する11個のモデルであると考えることができます。
交差検証分類誤差を推定します。
ce = kfoldLoss(CVMdl);
11個の正則化強度があるので,ce
は1行11列の分類誤差率のベクトルです。
λ
の値が大きくなると,予測子変数がスパ,スになります。これは分類器の品質として優れています。データセット全体を使用し,モデルの交差検証を行ったときと同じオプションを指定して,各正則化強度について線形分類モデルに学習をさせます。モデルごとに非ゼロの係数を特定します。
Mdl = fitclinear(X,Ystats,“ObservationsIn”,“列”,...“学习者”,“物流”,“规划求解”,“sparsa”,“正规化”,“套索”,...“λ”λ,“GradientTolerance”1 e-8);numNZCoeff = sum(Mdl.Beta~=0);
同じ図に,各正則化強度にいての交差検証分類誤差率と非ゼロ係数の頻度をプロットします。すべての変数を対数スケ,ルでプロットします。
图;[h,hL1,hL2] = plotyy(log10(Lambda),log10(ce),...log10(λ)log10 (numNZCoeff));hL1。标志=“o”;hL2。标志=“o”;ylabel (h (1),'log_{10}分类错误') ylabel (h (2),'log_{10}非零系数频率')包含(“log_{10}λ的)标题(测试样本统计的)举行从
予測子変数のスパス性と分類誤差の低さのバランスがとれている正則化強度のンデックスを選択します。この場合, ~ の値で十分なはずです。
idxFinal = 7;
選択した正則化強度のモデルをMdl
から選択します。
MdlFinal = selectModels(Mdl,idxFinal);
MdlFinal
は,1の正則化強度が含まれているClassificationLinear
モデルです。新しい観測値のラベルを推定するには,MdlFinal
と新しいデ,タを预测
に渡します。
詳細
分類損失
"分類損失"関数は分類モデルの予測誤差を評価します。複数のモデルで同じタイプの損失を比較した場合,損失が低い方が予測モデルとして優れていることになります。
以下のシナリオを考えます。
Lは加重平均分類損失です。
Nは標本サescズです。
バ@ @ナリ分類は以下です。
yjは観測されたクラスラベルです。陰性クラスを示す-1または陽性クラスを示す1(あるいは,
一会
プロパティの最初のクラスを示す1または2番目のクラスを示す1)を使用して符号化されます。f (Xj)は予測子デ,タXの観測値(行)jに対する陽性クラスの分類スコアです。
米j= yjf (Xj)は,yjに対応するクラスに観測値jを分類する分類スコアです。正の値のmjは正しい分類を示しており,平均損失に対する寄与は大きくありません。負の値のmjは正しくない分類を示しており,平均損失に大きく寄与します。
マルチクラス分類(;K≥3)をサポ,トするアルゴリズムの場合,次のようになります。
yj*は,K - 1個の0と,観測された真のクラスyjに対応する位置の1から構成されるベクトルです。たとえば,2番目の観測値の真のクラスが 3 番目のクラスでありK = 4の場合,y2*= [0 0 1 0] 'になります。クラスの順序は入力モデルの
一会
プロパティ内の順序に対応します。f (Xj)は予測子デ,タXの観測値jに対するクラススコアのベクトルで,長さはKです。スコアの順序は入力モデルの
一会
プロパティ内のクラスの順序に対応します。米j= yj*“f (Xj).したがってmjは,観測された真のクラスにいてモデルが予測するスカラ分類スコアです。
観測値jの重みはwjです。観測値の重みは正規化され,合計は対応するクラスの事前確率になります。また,事前確率は合計が1になるように正規化されます。そのため,次のようになります。
この状況では,名前と値のペアの引数“LossFun”
を使用して指定できる,サポ,トされる損失関数は次の表のようになります。
損失関数 | LossFun の値 |
式 |
---|---|---|
二項分布からの逸脱度 | “binodeviance” |
|
10進数の誤分類率 | “classiferror” |
は,スコアが最大であるクラスに対応するクラスラベルです。I{·}はンジケタ関数です。 |
クロスエントロピ,損失 | “crossentropy” |
加重クロスエントロピ,損失は次となります。
ここで重み は,合計が1ではなくnになるように正規化されます。 |
指数損失 | “指数” |
|
ヒンジ損失 | “枢纽” |
|
ロジット損失 | 分对数的 |
|
最小予測誤分類コスト | “mincost” |
重み付きの最小予測分類コストは,次の手順を観測値j = 1,…, nにいて使用することにより計算されます。
最小予測誤分類コスト損失の加重平均は次となります。
既定のコスト行列(正しい分類の場合の要素値は0,誤った分類の場合の要素値は1)を使用する場合, |
二次損失 | “二次” |
次の図では,1の観測値のスコアmに対する損失関数(“crossentropy”
および“mincost”
を除く)を比較しています。いくかの関数は,点(0,1)を通過するように正規化されています。
Matlabコマンド
次のmatlabコマンドに対応するリンクがクリックされました。
コマンドをmatlabコマンドウィンドウに入力して実行してください。Webブラウザ,はMATLABコマンドをサポ,トしていません。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。