このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
损失
線形分類モデルの分類損失
説明
は,l
=损失(Mdl
,资源描述
,ResponseVarName
)资源描述
内の予測子デ,タと资源描述。ResponseVarName
内の真のクラスラベルに対する分類損失を返します。
入力引数
Mdl
- - - - - -バ@ @ナリ線形分類モデル
ClassificationLinear
モデルオブジェクト
バ@ @ナリ線形分類モデル。ClassificationLinear
モデルオブジェクトとして指定します。ClassificationLinear
モデルオブジェクトは,fitclinear
を使用して作成できます。
X
- - - - - -予測子デ,タ
非スパ,ス行列|スパ,ス行列
予測子デ,タ。n行p列の非スパース行列またはスパース行列を指定します。このX
の配置は,各行が個々の観測値に,各列が個々の予測子変数に対応することを示しています。
メモ
観測値が列に対応するように予測子行列を配置して“ObservationsIn”、“列”
を指定すると,計算時間が大幅に短縮される可能性があります。
Y
の長さとX
の観測値数は同じでなければなりません。
デ,タ型:单
|双
Y
- - - - - -クラスラベル
分类配列|文字配列|字符串配列|逻辑ベクトル|数値ベクトル|文字ベクトルのcell配列
资源描述
- - - - - -標本デ,タ
テブル
モデルを学習させるために使用する標本デ,タ。テ,ブルとして指定します。资源描述
の各行は1の観測値に,各列は1。必要に応じて,応答変数用および観測値の重み用の追加列を资源描述
に含めることができます。资源描述
には,Mdl
を学習させるために使用したすべての予測子が含まれていなければなりません。文字ベクトルのcell配列ではない cell 配列と複数列の変数は使用できません。
Mdl
を学習させるために使用した応答変数が资源描述
に含まれている場合,ResponseVarName
またはY
を指定する必要はありません。
テ,ブルに格納されている標本デ,タを使用してMdl
の学習を行った場合,损失
の入力デ,タもテ,ブルに格納されていなければなりません。
ResponseVarName
- - - - - -応答変数名
资源描述
内の変数の名前
応答変数の名前。资源描述
内の変数の名前で指定します。Mdl
を学習させるために使用した応答変数が资源描述
に含まれている場合,ResponseVarName
を指定する必要はありません。
ResponseVarName
を指定する場合は,文字ベクトルまたは字符串スカラ,として指定しなければなりません。たとえば,応答変数が资源描述。Y
として格納されている場合,ResponseVarName
として“Y”
を指定します。それ以外の場合,资源描述
の列は资源描述。Y
を含めてすべて予測子として扱われます。
応答変数は,绝对配列,文字配列,字符串配列,逻辑ベクトル,数値ベクトル,または文字ベクトルの细胞配列でなければなりません。応答変数が文字配列の場合,各要素は配列の1の行に対応しなければなりません。
デ,タ型:字符
|字符串
名前と値の引数
オプションの名称,值
引数のコンマ区切りペアを指定します。的名字
は引数名で,价值
は対応する値です。的名字
は引用符で囲まなければなりません。Name1, Value1,…,的家
のように,複数の名前と値のペアの引数を,任意の順番で指定できます。
LossFun
- - - - - -損失関数
“classiferror”
(既定値) |“binodeviance”
|“指数”
|“枢纽”
|分对数的
|“mincost”
|“二次”
|関数ハンドル
損失関数。“LossFun”
と組み込みの損失関数名または関数ハンドルから構成されるコンマ区切りのペアとして指定します。
次の表は,使用可能な損失関数の一覧です。対応する文字ベクトルまたは字符串スカラ,を使用して,いずれかを指定します。
値 説明 “binodeviance”
二項分布からの逸脱度 “classiferror”
10進数の誤分類率 “指数”
指数損失 “枢纽”
ヒンジ損失 分对数的
ロジスティック損失 “mincost”
最小予測誤分類コスト(事後確率である分類スコアの場合) “二次”
二次損失 “mincost”
は,事後確率である分類スコアに適しています。線形分類モデルの場合,既定の設定ではロジスティック回帰学習器は事後確率を分類スコアとして返しますが,SVM学習器はそうではありません(预测
を参照)。カスタム損失関数を指定するには,関数ハンドル表記を使用します。関数は次の形式でなければなりません。
lossvalue =
lossfun
(C、S、W、成本)出力引数
lossvalue
はスカラ,です。関数名 (
lossfun
)を指定します。C
はn
行K
列の逻辑行列であり,対応する観測値が属するクラスを各行が示します。n
は资源描述
またはX
内の観測値の個数,K
は異なるクラスの個数(元素个数(Mdl.ClassNames)
)です。列の順序はMdl。ClassNames
のクラスの順序に対応します。各行にいて観測値p
がクラス问
に属する場合はC(p,q) = 1
を設定することにより,C
を作成します。行p
の他のすべての要素を0
に設定します。年代
は,分類スコアのn
行K
列の行列です。列の順序はMdl。ClassNames
のクラスの順序に対応します。年代
は分類スコアの行列で,预测
の出力と同様です。W
は,観測値の重みのn
行1列の数値ベクトルです。成本
は,誤分類コストの,K
行K
列の数値行列です。たとえば,成本=单位(K) -眼(K)
は,正しい分類のコストとして0
を,誤分類のコストとして1
を指定します。
例:“LossFun”@
lossfun
デ,タ型:字符
|字符串
|function_handle
ObservationsIn
- - - - - -予測子デ,タにおける観測値の次元
“行”
(既定値) |“列”
予測子デ,タにおける観測値の次元。“行”
または“列”
として指定します。
メモ
観測値が列に対応するように予測子行列を配置して“ObservationsIn”、“列”
を指定すると,計算時間が大幅に短縮される可能性があります。表の予測子デ,タに対して“ObservationsIn”、“列”
を指定することはできません。
デ,タ型:字符
|字符串
权重
- - - - - -観測値の重み
(大小(X, 1), 1)
(既定値) |数値ベクトル|资源描述
内の変数の名前
観測値の重み。“重量”
と数値ベクトル,または资源描述
に含まれる変数の名前から構成されるコンマ区切りのペアとして指定します。
权重
として数値ベクトルを指定する場合,权重
のサ@ @ズはX
または资源描述
内の観測値の個数と等しくなければなりません。权重
として资源描述
内の変数名を指定する場合,名前は文字ベクトルまたは字符串スカラ,でなければなりません。たとえば,重みが资源描述。W
として格納されている場合,权重
として' W '
を指定します。それ以外の場合,资源描述
の列は资源描述。W
を含めてすべて予測子として扱われます。
重みを指定した場合,各正則化強度にいて,损失
は,加重分類損失を計算し,合計がそれぞれのクラスの事前確率の値になるように重みを正規化します。
デ,タ型:双
|单
出力引数
例
検定標本の分類損失の推定
NLPのデ,タセットを読み込みます。
负载nlpdata
X
は予測子デ,タのスパ,ス行列,Y
はクラスラベルの分类ベクトルです。デタには2を超えるクラスがあります。
モデルでは,あるWebページの単語数が统计和机器学习工具箱™ドキュメンテーションによるものであるかどうかを識別できなければなりません。したがって、统计和机器学习工具箱™のドキュメンテーションWebページに対応するラベルを識別します。
Ystats = Y ==“统计数据”;
あるドキュメンテーションWebページの単語数が统计和机器学习工具箱™ドキュメンテーションによるものであるかどうかを識別できるバイナリ線形分類モデルに学習をさせます。観測値の30%をホ,ルドアウトするように指定します。SpaRSAを使用して目的関数を最適化します。
rng (1);%用于再现性CVMdl = fitclinear(X,Ystats,“规划求解”,“sparsa”,“坚持”, 0.30);CMdl = cvmdl .训练{1};
CVMdl
はClassificationPartitionedLinear
モデルです。これには训练有素的
プロパティが含まれています。これは1行1列のcell配列で,学習セットにより学習させたClassificationLinear
モデルが格納されています。
学習デ,タと検定デ,タを分割の定義から抽出します。
trainIdx = training(CVMdl.Partition);testdx = test(CVMdl.Partition);
学習標本および検定標本の分類誤差を推定します。
ceTrain = loss(CMdl,X(trainIdx,:),Ystats(trainIdx))
ceTrain = 1.3572e-04
CMdl,X(testdx,:),Ystats(testdx))
ceTest = 5.2804e-04
CMdl
内の正則化強度は1なので,ceTrain
とcet(中央东部东京)
は数値スカラ,になります。
カスタムな分類損失の指定
NLPのデ,タセットを読み込みます。検定標本の分類損失の推定で説明されているようにデ,タを前処理し,予測子デ,タを転置します。
负载nlpdataYstats = Y ==“统计数据”;X = X';
バ@ @ナリ線形分類モデルに学習をさせます。観測値の30%をホ,ルドアウトするように指定します。SpaRSAを使用して目的関数を最適化します。予測子の観測値が列に対応することを指定します。
rng (1);%用于再现性CVMdl = fitclinear(X,Ystats,“规划求解”,“sparsa”,“坚持”, 0.30,...“ObservationsIn”,“列”);CMdl = cvmdl .训练{1};
CVMdl
はClassificationPartitionedLinear
モデルです。これには训练有素的
プロパティが含まれています。これは1行1列のcell配列で,学習セットにより学習させたClassificationLinear
モデルが格納されています。
学習デ,タと検定デ,タを分割の定義から抽出します。
trainIdx = training(CVMdl.Partition);testdx = test(CVMdl.Partition);
次の線形損失を評価する無名関数を作成します。
は観測値jの重み,
は応答j(陰性クラスの場合は-1,それ以外の場合は1),
は観測値jの生の分類スコアです。カスタム損失関数は特定の形式で記述しなければなりません。カスタム損失関数の記述に関するルルにいては,名前と値のペアの引数LossFun
を参照してください。
linearloss = @ (C、S、W、成本)和(- W。*总和(S . C * 2) / (W)之和;
線形損失関数を使用して,学習標本および検定標本の分類損失を推定します。
ceTrain = loss(CMdl,X(:,trainIdx),Ystats(trainIdx),“LossFun”linearloss,...“ObservationsIn”,“列”)
ceTrain = -7.8330
ceTest = loss(CMdl,X(:, testdx),Ystats(testdx),“LossFun”linearloss,...“ObservationsIn”,“列”)
ceTest = -7.7383
分類損失の使用による適切な套索ペナルティの特定
ロジスティック回帰学習器を使用する線形分類モデルに適した套索ペナルティの強度を決定するため,検定標本の分類誤差率を比較します。
NLPのデ,タセットを読み込みます。カスタムな分類損失の指定で説明されているようにデ,タを前処理します。
负载nlpdataYstats = Y ==“统计数据”;X = X';rng (10);%用于再现性分区= cvpartition(Ystats,“坚持”, 0.30);testdx = test(分区);XTest = X(:, testdx);YTest = Ystats(testdx);
~ の範囲で対数間隔で配置された11個の正則化強度を作成します。
Lambda = logspace(-6,-0.5,11);
各正則化強度を使用するバ@ @ナリ線形分類モデルに学習をさせます。SpaRSAを使用して目的関数を最適化します。目的関数の勾配の許容誤差を1 e-8
に下げます。
CVMdl = fitclinear(X,Ystats,“ObservationsIn”,“列”,...“CVPartition”分区,“学习者”,“物流”,“规划求解”,“sparsa”,...“正规化”,“套索”,“λ”λ,“GradientTolerance”1 e-8)
CVMdl = ClassificationPartitionedLinear CrossValidatedModel: 'Linear' ResponseName: 'Y' NumObservations: 31572 KFold: 1 Partition: [1x1 cvpartition] ClassNames: [0 1] ScoreTransform: 'none'属性,方法
学習済みの線形分類モデルを抽出します。
Mdl = CVMdl。训练有素的{1}
Mdl = ClassificationLinear ResponseName: 'Y' ClassNames: [0 1] ScoreTransform: 'logit' Beta: [34023x11 double]偏差:[-12.0872 -12.0872 -12.0872 -12.0872 -12.0872 -12.0872…[Lambda: [1.0000e-06 3.5481e-06 1.2589e-05 4.4668e-05…]学习者:“逻辑”属性,方法
Mdl
はClassificationLinear
モデルオブジェクトです。λ
は正則化強度のシ,ケンスなので,Mdl
はそれぞれがλ
の各正則化強度に対応する11個のモデルであると考えることができます。
検定標本の分類誤差を推定します。
ce = loss(Mdl,X(:, testdx),Ystats(testdx),“ObservationsIn”,“列”);
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(Lambda),log10(numNZCoeff + 1));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国家站点没有针对您所在位置的访问进行优化。