主要内容

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

ClassificationPartitionedLinearECOC

パッケ,ジ:classreg.learning.partition
ス,パ,クラス:ClassificationPartitionedModel

高次元デ,タのマルチクラス分類用の交差検証済み線形誤り訂正出力符号モデル

説明

ClassificationPartitionedLinearECOCは,交差検証分割で学習を行った,線形分類モデルから構成される一連の誤り訂正出力符号(ECOC)モデルです。Kfold関数kfoldPredictkfoldLosskfoldMarginkfoldEdgeを1以上使用する交差検証により,分類の品質を評価します。

すべての“kfoldメソッドでは,学習用データの観測値で学習したモデルを使用して,学習用データにはない観測値に対する応答を予測します。たとえば,デ,タを5に分割して交差検証を行うとします。この場合,各観測は5のほぼ等しいサ。"学習用分割"にはグルプのう4(すなわ,デタの約4/5)が含まれ,"検定用分割"には残りのグル,プ(すなわ,デ,タの約1/5)が含まれます。この場合,交差検証は次のように処理されます。

  1. CVMdl。训练有素的{1}に保存されている最初のモデルは,後の4グループの観測値によって学習され,最初のグループの観測値を検証用に保存します。

  2. 1番目のグル,プと最後の3,のグル,プの観測値を使用して2,番目のモデル(CVMdl。训练有素的{2}に格納)に学習させます。2番目のグループの観測値は、検証用に予約されます。

  3. 3番目,4番目および5番目のモデルに対しても同様に続けられます。

kfoldPredictを呼び出して検証する場合,最初のモデルを使用してグループ1の観測に対する予測が計算され,2番目のモデルにはグループ2が計算され,以降同様です。まり,それぞれの観測値に対する応答は,その観測値ではなく学習したモデルによって推定されます。

メモ

ClassificationPartitionedLinearECOCモデルオブジェクトに予測子デ,タセットは格納されません。

構築

CVMdl = fitcecoc(X,Y,'学习者',t,名称,值)は,次の場合に交差検証済みの線形ecocモデルを返します。

  • t“线性”であるか,templateLinearによって返されるテンプレ,トオブジェクトである。

  • 名字“CrossVal”“CVPartition”“坚持”または“KFold”のいずれかである。

詳細は,fitcecocを参照してください。

プロパティ

すべて展開する

交差検証のプロパティ

交差検証済みモデルの名前。文字ベクトルを指定します。

たとえば,“ECOC”は交差検証されたecocモデルを指定します。

デ,タ型:字符

交差検証された分割の数。正の整数で指定します。

デ,タ型:

交差検証パラメ,タ,値。Ecoc分類器の交差検証に使用する名前と値のペアの引数の値など。オブジェクトとして指定します。ModelParametersには推定されたパラメ,タ,は格納されません。

ModelParametersのプロパティにはドット表記でアクセスします。

学習デ,タに含まれている観測値の数。正の数値スカラ,を指定します。

デ,タ型:

デ,タを交差検証分割に分割する方法を含むデ,タ分割。cvpartitionモデルとして指定します。

交差検証分割で学習させたコンパクトな分類器。CompactClassificationECOCモデルのcell配列を指定します。训练有素的にはk個のセルがあります。Kは分割数です。

デ,タ型:细胞

モデルの交差検証に使用した観測値の重み。数値ベクトルを指定します。WにはNumObservations個の要素があります。

学習に使用する重みは正規化されsum (W, omitnan)1になります。

デ,タ型:|

モデルの交差検証に使用される,観測されたクラスラベル。分类配列、文字配列、逻辑ベクトル、数値ベクトル、または文字ベクトルのcell配列を指定します。YにはNumObservations個の要素があり,デ,タ型はモデルの交差検証を実行するためにfitcecocに渡した入力引数Yと同じです。(字符串配列は文字ベクトルのcell配列として扱われます)。

Yの各行は,予測子デ,タの観測値の観測された分類を表します。

デ,タ型:字符|细胞|分类|逻辑||

Ecocのプロパティ

バ@ @ナリ学習器の損失関数。損失関数名を表す文字ベクトルを指定します。

異なる損失関数を使用するバ电子邮箱ナリ学習器によって学習させる場合,BinaryLoss“汉明”に設定されます。精度が向上する可能性を高めるには,预测または损失の名前と値のペアの引数“BinaryLoss”を使用して予測または損失を計算するときに,既定以外のバ。

デ,タ型:字符

バ@ @ナリ学習器クラスラベル。数値行列または[]として指定します。

  • コ,ディング行列が分割全体で同一である場合,BinaryYNumObservations行l列の行列であり,lはバ大小(CodingMatrix, 2))です。

    BinaryYの要素は-10または1で,値は二分法によるクラス割り当てに対応します。次の表に,学習器jが観測値kBinaryY (k, j)の値に対応する二分クラスに割り当てる方法を示します。

    二分法によるクラス割り当て
    1 学習器jは,観測値kを陰性クラスに割り当てます。
    0 学習の前に,学習器jは観測値kをデ,タセットから削除します。
    1 学習器jは,観測値kを陽性クラスに割り当てます。

  • コ,ディング行列が分割全体で異なる場合,BinaryYは空([])です。

デ,タ型:

バ▪▪ナリ学習器のクラス割り当てを指定するコ▪▪ド。数値行列または[]として指定します。

  • 符号化行列が分割全体で同じである場合,CodingMatrixはk行l列の行列です。Kはクラスの数,lはバナリ学習器の数です。

    CodingMatrixの要素は-10または1で,値は二分法によるクラス割り当てに対応します。次の表に,学習器jがクラスの観測値をCodingMatrix (i, j)の値に対応する二分クラスに割り当てる方法を示します。

    二分法によるクラス割り当て
    1 学習器jは,クラスの観測値を陰性クラスに割り当てます。
    0 学習の前に,学習器jはクラスの観測値をデ,タセットから削除します。
    1 学習器jは,クラスの観測値を陽性クラスに割り当てます。

  • コ,ディング行列が分割全体で異なる場合,CodingMatrixは空([])です。各分割のコーディング行列を、训练有素的を用いて取得します。たとえば,CVMdl.Trained {1} .CodingMatrixは,交差検証されたecocモデルCVMdlの最初の分割のコ,ディング行列です。

デ,タ型:||int8|int16|int32|int64

他の分類のプロパティ

カテゴリカル予測子の@ @ンデックス。正の整数のベクトルとして指定します。CategoricalPredictorsには,対応する予測子がカテゴリカルであることを示す。ンデックス値の範囲は1 ~pです。pはモデルの学習に使用した予測子の数です。どの予測子もカテゴリカルではない場合、このプロパティは空([])になります。

デ,タ型:|

学習で使用する一意なクラスラベル。分类配列、文字配列、逻辑ベクトル、数値ベクトル、または文字ベクトルのcell配列を指定します。一会のデ,タ型はクラスラベルYと同じです。(字符串配列は文字ベクトルのcell配列として扱われます)。一会はクラスの順序も決定します。

デ,タ型:分类|字符|逻辑|||细胞

このプロパティは読み取り専用です。

誤分類のコスト。正方数値行列として指定します。成本にはk個の行および列が含まれ,kはクラスの数です。

成本(i, j)は,真のクラスがである点をクラスjに分類するコストです。成本の行と列の順序は,一会のクラスの順序に対応します。

fitcecocは,異なるタaaplプのバaaplナリ学習器に異なる誤分類のコストを組み込みます。

デ,タ型:

予測子デ,タに現れる順序で並んでいる予測子名。文字ベクトルのcell配列として指定します。PredictorNamesの長さは,予測子変数として使用される学習デ,タXまたは资源描述に含まれている変数の数と等しくなります。

デ,タ型:细胞

このプロパティは読み取り専用です。

クラスの事前確率。数値ベクトルを指定します。之前の要素数は一会のクラス数と同じであり,要素の順序は一会内のクラスの順序に対応します。

fitcecocは,異なるタaaplプのバaaplナリ学習器に異なる誤分類のコストを組み込みます。

デ,タ型:

応答変数名。文字ベクトルを指定します。

デ,タ型:字符

予測されたスコアに適用するスコア変換関数。関数名または関数ハンドルを指定します。

線形分類モデルで変換前の場合,観測値x(行ベクトル)にいて予測される分類スコアはF (x) = xβ + bになります。βとbはそれぞれMdl。βMdl。偏见に対応します。

スコア変換関数を函数などに変更するには,ドット表記を使用します。

  • 組み込み関数の場合,函数を表の値に置き換えて次のコ,ドを入力します。

    Mdl。ScoreTransform = '函数';

    説明
    “doublelogit” 1/(1 + e2 x
    “invlogit” Log (x / (1 - x))
    “ismax” 最大のスコアをも1 0
    “分对数” 1/(1 + e- x
    “没有”または“身份” X(変換なし)
    “标志” X < 0のとき-1
    X = 0のとき0
    X > 0のとき
    “对称” 2x - 1
    “symmetricismax” 最大のスコアをも1に設定し,他のすべてのクラスのスコアを-1に設定する
    “symmetriclogit” 2/(1 + e- x) - 1

  • MATLAB®関数やユ,ザ,定義関数の場合は,関数ハンドルを入力します。

    Mdl。ScoreTransform = @函数;

    函数は,各クラスの元のスコアの行列を受け入れて,各クラスの変換後のスコアを表す同じサイズの行列を返さなければなりません。

デ,タ型:字符|function_handle

メソッド

kfoldEdge 学習で使用しない観測値の分類エッジ
kfoldLoss 学習で使用しない観測値の分類損失
kfoldMargin 学習で使用しない観測値の分類マ,ジン
kfoldPredict 学習で使用しない観測値のラベルの予測

コピ,のセマンティクス

値。値のクラスがコピー操作に与える影響については、オブジェクトのコピを参照してください。

すべて折りたたむ

NLPのデ,タセットを読み込みます。

负载nlpdata

Xは予測子デ,タのスパ,ス行列,Yはクラスラベルの分类ベクトルです。

あるドキュメンテーションWebページがどのMATLAB®ツールボックスによるものであるかをページの単語数に基づいて識別できるマルチクラスの線形分類モデルを交差検証します。

rng (1);%用于再现性CVMdl = fitcecoc(X,Y,“学习者”“线性”“CrossVal”“上”
CVMdl = ClassificationPartitionedLinearECOC CrossValidatedModel: 'LinearECOC' ResponseName: 'Y' NumObservations: 31572 KFold: 10 Partition: [1x1 cvpartition] ClassNames: [comm dsp ecoder fixedpoint…]属性,方法

CVMdlは,ClassificationPartitionedLinearECOC交差検証済みモデルです。既定の設定ではfitcecocは10分割の交差検証を実装するので,CVMdl。训练有素的には10個のCompactClassificationECOCモデルが含まれている10行1列の细胞ベクトルが格納されており,これらのモデルにはバイナリ線形分類モデルから構成されるECOCモデルの学習を各分割について行った結果が格納されています。

CVMdlkfoldPredictに渡して分割外観測値のラベルを推定し,kfoldLossに渡して汎化誤差を推定します。

oofLabels = kfoldPredict(CVMdl);ge = kfoldLoss(cvdl)
Ge = 0.0958

推定された汎化誤差は,誤分類観測値の約10%です。

汎化誤差を改善するには,他のソルバ,(lbfgsなど)を試します。線形分類モデルから構成されるecocモデルに学習をさせるときの既定オプションを変更するには,templateLinearを使用して線形分類モデルテンプレ,トを作成し,このテンプレ,トをfitcecocに渡します。

ロジスティック回帰学習器を使用する線形分類モデルから構成されるECOCモデルに適した套索ペナルティの強度を決定するため,5分割の交差検証を実装します。

NLPのデ,タセットを読み込みます。

负载nlpdata

Xは予測子デ,タのスパ,ス行列,Yはクラスラベルの分类ベクトルです。

簡単にするため,“金宝app模型”“dsp”“通讯”のいずれでもないYの観測値すべてに対して“其他人”というラベルを使用します。

Y (~ (ismember (Y, {“金宝app模型”“dsp”“通讯”}))) =“别人”

1 0 - 7 1 0 - 2 の範囲で対数間隔で配置された11個の正則化強度を作成します。

Lambda = logspace(-7,-2,11);

ロジスティック回帰学習器を使用するように指定する線形分類モデルテンプレ,トを作成し,λの強度をもつ套索ペナルティを使用し,SpaRSAを使用して学習させ,目的関数の勾配の許容誤差を1 e-8に下げます。

t = templatlinear (“学习者”“物流”“规划求解”“sparsa”...“正规化”“套索”“λ”λ,“GradientTolerance”1 e-8);

モデルを交差検証します。実行速度を向上させるため,予測子デ,タを転置し,観測値が列単位であることを指定します。

X = X';rng (10);%用于再现性CVMdl = fitcecoc(X,Y,“学习者”t“ObservationsIn”“列”“KFold”5);

CVMdlClassificationPartitionedLinearECOCモデルです。

CVMdlおよび格納されている各モデルを分析します。

numECOCModels = nummel (CVMdl.Trained)
numECOCModels = 5
ECOCMdl1 = CVMdl。训练有素的{1}
ECOCMdl1 = CompactClassificationECOC ResponseName: 'Y' ClassNames: [comm dsp 金宝appsimulink others] ScoreTransform: 'none' BinaryLearners: {6×1 cell} CodingMatrix: [4×6 double]属性,方法
numCLModels = nummel (ECOCMdl1.BinaryLearners)
numCLModels = 6
CLMdl1 = ECOCMdl1。BinaryLearners {1}
CLMdl1 = ClassificationLinear ResponseName: 'Y' ClassNames: [-1 1] ScoreTransform: 'logit' Beta: [34023×11 double]偏差:[-0.3169 -0.3169 -0.3168 -0.3168 -0.3168 -0.3167 -0.1725 -0.0805 -0.1762 -0.3450 -0.5174]Lambda: [1.0000e-07 3.1623e-07 1.0000e-06 3.1623e-05 1.0000e-04 3.1623e-04 1.0000e-03 0.0032 0.0100]学习者:'logistic'属性,方法

fitcecocは5分割の交差検証を実装するので,各分割にいて学習させるCompactClassificationECOCモデルから構成される5行1列のcell配列がCVMdlに格納されます。各CompactClassificationECOCモデルのBinaryLearnersプロパティにはClassificationLinearモデルが格納されます。各コンパクト ECOC モデル内のClassificationLinearモデルの数は,それぞれのラベルの数と符号化設計によって決まります。λは正則化強度のシ,ケンスなので,CLMdl1はそれぞれがλの各正則化強度に対応する11個のモデルであると考えることができます。

各正則化強度について5分割分類誤差の平均をプロットすることにより,モデルがどの程度一般化を行うかを判断します。グリッド全体で汎化誤差を最小化する正則化強度を特定します。

ce = kfoldLoss(CVMdl);图;plot(log10(Lambda),log10(ce)) [~,minCEIdx] = min(ce);minLambda = Lambda(minCEIdx);持有情节(log10 (minLambda) log10 (ce (minCEIdx)),“罗”);ylabel ('log_{10} 5倍分类错误')包含(“log_{10}λ的)传说(MSE的“最小分类错误”)举行

データセット全体を使用して線形分類モデルから構成されるECOCモデルに学習をさせ,最小の正則化強度を指定します。

t = templatlinear (“学习者”“物流”“规划求解”“sparsa”...“正规化”“套索”“λ”minLambda,“GradientTolerance”1 e-8);MdlFinal = fitcecoc(X,Y,“学习者”t“ObservationsIn”“列”);

新しい観測値のラベルを推定するには,MdlFinalと新しいデ,タを预测に渡します。

バ,ジョン履歴

R2016aで導入