主要内容gydF4y2Ba

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

ClassificationECOCgydF4y2Ba

サポートベクターマシン(SVM)などの分類器用のマルチクラスモデルgydF4y2Ba

説明gydF4y2Ba

ClassificationECOCgydF4y2Baは,分類器が複数のバイナリ学習器(サポートベクターマシン(SVM)など)から構成されている場合の,マルチクラス学習用のgydF4y2Ba誤り訂正出力符号(ECOC)分類器gydF4y2Baです。学習済みのgydF4y2BaClassificationECOCgydF4y2Ba分類器には,学習データ,パラメーター値,事前確率および符号化行列が格納されます。これらの分類器を使用して,新しいデータのラベルや事後確率を予測する(gydF4y2Ba预测gydF4y2Baを参照)などのタスクを実行できます。gydF4y2Ba

作成gydF4y2Ba

ClassificationECOCgydF4y2Baオブジェクトの作成にはgydF4y2BafitcecocgydF4y2Baを使用します。gydF4y2Ba

交差検証オプションを指定せずに線形またはカーネルバイナリ学習器を指定した場合,gydF4y2BafitcecocgydF4y2Baは代わりにgydF4y2BaCompactClassificationECOCgydF4y2Baオブジェクトを返します。gydF4y2Ba

プロパティgydF4y2Ba

すべて展開するgydF4y2Ba

ClassificationECOCgydF4y2Baモデルオブジェクトを作成した後で,ドット表記を使用してプロパティにアクセスできます。たとえば,gydF4y2Ba支持向量机学習器を使用したマルチクラスモデルの学習gydF4y2Baを参照してください。gydF4y2Ba

ECOCのプロパティgydF4y2Ba

学習済みバイナリ学習器。モデルオブジェクトの细胞ベクトルを指定します。バイナリ学習器の個数は,gydF4y2BaYgydF4y2Ba内のクラス数と符号化設計によって異なります。gydF4y2Ba

BinaryLearner {j}gydF4y2Baの学習は,gydF4y2BaCodingMatrixgydF4y2Ba(:, j)gydF4y2Baによって指定されるバイナリ問題に従って行われます。たとえば,SVM 学習器を使用したマルチクラス学習では、BinaryLearnersgydF4y2Baの各要素はgydF4y2BaCompactClassificationSVMgydF4y2Ba分類器です。gydF4y2Ba

データ型:gydF4y2Ba细胞gydF4y2Ba

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

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

データ型:gydF4y2Ba字符gydF4y2Ba

バイナリ学習器クラスラベル。数値行列として指定します。gydF4y2BaBinaryYgydF4y2BaはgydF4y2BaNumObservationsgydF4y2Ba行L列の行列でLはバイナリ学習器(gydF4y2Ba长度(Mdl.BinaryLearners)gydF4y2Ba)数です。gydF4y2Ba

BinaryYgydF4y2Baの要素はgydF4y2Ba1gydF4y2Ba、gydF4y2Ba0gydF4y2BaまたはgydF4y2Ba1gydF4y2Baで,値は二分法によるクラス割り当てに対応します。次の表に,学習器gydF4y2BajgydF4y2Baが観測値gydF4y2BakgydF4y2BaをgydF4y2BaBinaryY (k, j)gydF4y2Baの値に対応する二分クラスに割り当てる方法を示します。gydF4y2Ba

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

データ型:gydF4y2Ba双gydF4y2Ba

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

数値予測子のビンのエッジ。p個の数値ベクトルが含まれている细胞配列を指定します。pは予測子の個数です。各ベクトルには,数値予測子のビンのエッジを含めます。カテゴリカル予測子はビン化されないので,カテゴリカル予測子の場合は,この细胞配列の要素を空にします。gydF4y2Ba

数値予測子がビン化されるのは,木学習器を使用してモデルに学習をさせるときに名前と値の引数gydF4y2Ba“NumBins”gydF4y2Baとして正の整数スカラーを指定した場合だけです。gydF4y2Ba“NumBins”gydF4y2Baの値が空(既定)である場合,gydF4y2BaBinEdgesgydF4y2Baプロパティは空になります。gydF4y2Ba

学習済みモデルgydF4y2BamdlgydF4y2BaのgydF4y2BaBinEdgesgydF4y2Baプロパティを使用することにより,ビン化された予測子データgydF4y2BaXbinnedgydF4y2Baを再現できます。gydF4y2Ba

X = mdl.X;%预测数据Xbinned = 0 (size(X));边缘= mdl.BinEdges;找到被分类的预测器的指数。idxNumeric =找到(~ cellfun (@isempty边缘));if iscolumn(idxNumeric) idxNumeric = idxNumeric';end for j = idxNumeric x = x (:,j);%如果x是一个表,则将x转换为数组。If istable(x) x = table2array(x);将x组到bin中gydF4y2Ba离散化gydF4y2Ba函数。xbinned =离散化(x,[无穷;边缘{};正]);Xbinned (:, j) = Xbinned;结束gydF4y2Ba
数値予測子の場合1からビンの個数までの範囲にあるビンのインデックスがgydF4y2BaXbinnedgydF4y2Baに格納されます。カテゴリカル予測子の場合,gydF4y2BaXbinnedgydF4y2Baの値は0になります。gydF4y2BaXgydF4y2BaにgydF4y2Ba南gydF4y2Baが含まれている場合,対応するgydF4y2BaXbinnedgydF4y2Baの値はgydF4y2Ba南gydF4y2Baになります。gydF4y2Ba

データ型:gydF4y2Ba细胞gydF4y2Ba

バイナリ学習器のクラス割り当て符号。数値行列を指定します。gydF4y2BaCodingMatrixgydF4y2BaはK行L列の行列で,Kはクラスの個数,Lはバイナリ学習器の個数です。gydF4y2Ba

CodingMatrixgydF4y2Baの要素はgydF4y2Ba1gydF4y2Ba、gydF4y2Ba0gydF4y2BaまたはgydF4y2Ba1gydF4y2Baであり,値は二分法によるクラス割り当てに対応します。次の表に,学習器gydF4y2BajgydF4y2BaがクラスgydF4y2Ba我gydF4y2Baの観測値をgydF4y2BaCodingMatrix (i, j)gydF4y2Baの値に対応する二分クラスに割り当てる方法を示します。gydF4y2Ba

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

データ型:gydF4y2Ba双gydF4y2Ba|gydF4y2Ba单gydF4y2Ba|gydF4y2Baint8gydF4y2Ba|gydF4y2Baint16gydF4y2Ba|gydF4y2Baint32gydF4y2Ba|gydF4y2Baint64gydF4y2Ba

符号化設計名。文字ベクトルを指定します。詳細は、符号化設計gydF4y2Baを参照してください。gydF4y2Ba

データ型:gydF4y2Ba字符gydF4y2Ba

バイナリ学習器の重み。数値行ベクトルを指定します。LearnerWeightsgydF4y2Baの長さは,バイナリ学習器の個数(gydF4y2Ba长度(Mdl.BinaryLearners)gydF4y2Ba)と同じです。gydF4y2Ba

LearnerWeights (j)gydF4y2Baは,分類器に学習をさせるためにバイナリ学習器gydF4y2BajgydF4y2Baが使用する観測値の重みの合計です。gydF4y2Ba

LearnerWeightsgydF4y2Baを使用し,カルバック・ライブラーダイバージェンスの最小化により事後確率をあてはめます。事後確率の推定に二次計画法を使用する場合,gydF4y2BaLearnerWeightsgydF4y2Baは無視されます。gydF4y2Ba

データ型:gydF4y2Ba双gydF4y2Ba|gydF4y2Ba单gydF4y2Ba

他の分類のプロパティgydF4y2Ba

カテゴリカル予測子のインデックス。正の整数のベクトルを指定します。gydF4y2BaCategoricalPredictorsgydF4y2Baには,カテゴリカル予測子が含まれている予測子データの列に対応するインデックス値を格納します。どの予測子もカテゴリカルではない場合,このプロパティは空(gydF4y2Ba[]gydF4y2Ba)になります。gydF4y2Ba

データ型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

学習で使用する一意なクラスラベル。绝对配列、文字配列、logical ベクトル、数値ベクトル、または文字ベクトルの cell 配列を指定します。一会gydF4y2Baのデータ型はクラスラベルgydF4y2BaYgydF4y2Baと同じです。gydF4y2Ba(字符串配列は文字ベクトルの细胞配列として扱われます)。gydF4y2Ba一会gydF4y2Baはクラスの順序も決定します。gydF4y2Ba

データ型:gydF4y2Ba分类gydF4y2Ba|gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba逻辑gydF4y2Ba|gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Ba细胞gydF4y2Ba

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

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

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

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

データ型:gydF4y2Ba双gydF4y2Ba

展開された予測子名。文字ベクトルの细胞配列を指定します。

モデルがカテゴリカル変数用のエンコーディングを使用している場合,gydF4y2BaExpandedPredictorNamesgydF4y2Baには展開された変数を表す名前が格納されます。それ以外の場合,gydF4y2BaExpandedPredictorNamesgydF4y2BaはgydF4y2BaPredictorNamesgydF4y2Baと同じです。gydF4y2Ba

データ型:gydF4y2Ba细胞gydF4y2Ba

ECOC分類器の学習に使用するパラメーター値(名前と値のペアの引数の値など)。オブジェクトを指定します。推定パラメーターはgydF4y2BaModelParametersgydF4y2Baに格納されません。gydF4y2Ba

ModelParametersgydF4y2Baのプロパティにはドット表記でアクセスします。たとえば,バイナリ学習器のパラメーターが含まれているテンプレートをリストするには、Mdl.ModelParameters.BinaryLearnergydF4y2Baを使用します。gydF4y2Ba

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

データ型:gydF4y2Ba双gydF4y2Ba

予測子データgydF4y2BaXgydF4y2Baに現れる順序で並んでいる予測子名。文字ベクトルの细胞配列を指定します。gydF4y2BaPredictorNamesgydF4y2Baの長さは,gydF4y2BaXgydF4y2Baの列数と同じです。gydF4y2Ba

データ型:gydF4y2Ba细胞gydF4y2Ba

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

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

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

データ型:gydF4y2Ba双gydF4y2Ba

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

データ型:gydF4y2Ba字符gydF4y2Ba

ClassificationECOCgydF4y2Baモデルのあてはめに使用した元の学習データの行。逻辑ベクトルを指定します。すべての行を使用した場合、このプロパティは空になります。

データ型:gydF4y2Ba逻辑gydF4y2Ba

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

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

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

    Mdl。ScoreTransform =“函数”;gydF4y2Ba

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

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

    Mdl。ScoreTransform = @function;gydF4y2Ba

    函数gydF4y2Baは,行列(元のスコア)を受け入れて同じサイズの行列(変換したスコア)を返さなければなりません。gydF4y2Ba

データ型:gydF4y2Ba字符gydF4y2Ba|gydF4y2Bafunction_handlegydF4y2Ba

ECOC分類器の学習に使用する観測値の重み。数値ベクトルを指定します。gydF4y2BaWgydF4y2Baの要素数はgydF4y2BaNumObservationsgydF4y2Baです。gydF4y2Ba

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

データ型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

ECOC分類器の学習に使用する,標準化されていない予測子データ。数値行列または表を指定します。gydF4y2Ba

XgydF4y2Baの各行は1つの観測値に対応し,各列は1つの変数に対応します。gydF4y2Ba

データ型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Ba表格gydF4y2Ba

ECOC分類器の学習に使用する,観測されたクラスラベル。绝对配列、文字配列、logical ベクトル、数値ベクトル、または文字ベクトルの cell 配列を指定します。YgydF4y2Baの要素数はgydF4y2BaNumObservationsgydF4y2Baで,データ型はgydF4y2BafitcecocgydF4y2Baの入力引数gydF4y2BaYgydF4y2Baと同じです。gydF4y2Ba(字符串配列は文字ベクトルの细胞配列として扱われます)。gydF4y2Ba

YgydF4y2Baの各行は,gydF4y2BaXgydF4y2Baの対応する行の観測された分類を表します。gydF4y2Ba

データ型:gydF4y2Ba分类gydF4y2Ba|gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba逻辑gydF4y2Ba|gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Ba细胞gydF4y2Ba

ハイパーパラメーター最適化のプロパティgydF4y2Ba

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

ハイパーパラメーターの交差検証最適化。ハイパーパラメーターおよび関連する値が含まれているテーブルまたはgydF4y2BaBayesianOptimizationgydF4y2Baオブジェクトを指定します。モデルを作成するときに名前と値のペアの引数“OptimizeHyperparameters”gydF4y2Baが空以外であった場合,このプロパティは空以外になります。gydF4y2BaHyperparameterOptimizationResultsgydF4y2Baの値は,モデル作成時の構造体gydF4y2BaHyperparameterOptimizationOptionsgydF4y2BaのgydF4y2Ba优化器gydF4y2Baフィールドの設定によって変化します。gydF4y2Ba

优化器gydF4y2Baフィールドの値gydF4y2Ba HyperparameterOptimizationResultsgydF4y2Baの値gydF4y2Ba
“bayesopt”gydF4y2Ba(既定の設定)gydF4y2Ba BayesianOptimizationgydF4y2BaクラスのオブジェクトgydF4y2Ba
“gridsearch”gydF4y2BaまたはgydF4y2Ba“randomsearch”gydF4y2Ba 使用したハイパーパラメーター,観測された目的関数の値(交差検証損失),および最低(最良)から最高(最悪)までの観測値の順位が格納されているテーブルgydF4y2Ba

オブジェクト関数gydF4y2Ba

紧凑的gydF4y2Ba マルチクラス誤り訂正出力符号(ECOC)モデルのサイズを縮小gydF4y2Ba
compareHoldoutgydF4y2Ba 新しいデータを使用して2つの分類モデルの精度を比較gydF4y2Ba
crossvalgydF4y2Ba マルチクラス誤り訂正出力符号(ECOC)モデルの交差検証gydF4y2Ba
discard金宝appSupportVectorsgydF4y2Ba ECOCモデルの線形SVMバイナリ学習器のサポートベクターを破棄gydF4y2Ba
边缘gydF4y2Ba マルチクラス誤り訂正出力符号(ECOC)モデルの分類エッジgydF4y2Ba
损失gydF4y2Ba マルチクラス誤り訂正出力符号(ECOC)モデルの分類損失gydF4y2Ba
保证金gydF4y2Ba マルチクラス誤り訂正出力符号(ECOC)モデルの分類マージンgydF4y2Ba
partialDependencegydF4y2Ba 部分従属の計算gydF4y2Ba
plotPartialDependencegydF4y2Ba 部分依存プロット(PDP)および個別条件付き期待値(ICE)プロットの作成gydF4y2Ba
预测gydF4y2Ba マルチクラス誤り訂正出力符号(ECOC)モデルを使用して観測値を分類gydF4y2Ba
resubEdgegydF4y2Ba マルチクラス誤り訂正出力符号(ECOC)モデルの再代入分類エッジgydF4y2Ba
石灰gydF4y2Ba 本地可解释模型不可知解释(LIME)gydF4y2Ba
resubLossgydF4y2Ba マルチクラス誤り訂正出力符号(ECOC)モデルの再代入分類損失gydF4y2Ba
resubMargingydF4y2Ba マルチクラス誤り訂正出力符号(ECOC)モデルの再代入分類マージンgydF4y2Ba
resubPredictgydF4y2Ba マルチクラス誤り訂正出力符号(ECOC)モデル内の観測値を分類gydF4y2Ba
沙普利gydF4y2Ba シャープレイ値gydF4y2Ba
testckfoldgydF4y2Ba 交差検証の反復により2つの分類モデルの精度を比較gydF4y2Ba

例gydF4y2Ba

すべて折りたたむgydF4y2Ba

サポートベクターマシン(SVM)バイナリ学習器を使用して,マルチクラス誤り訂正出力符号(ECOC)モデルに学習をさせます。gydF4y2Ba

フィッシャーのアヤメのデータセットを読み込みます。予測子データgydF4y2BaXgydF4y2Baと応答データgydF4y2BaYgydF4y2Baを指定します。gydF4y2Ba

负载gydF4y2BafisheririsgydF4y2BaX =量;Y =物种;gydF4y2Ba

既定のオプションを使用して,マルチクラスECOCモデルに学習をさせます。gydF4y2Ba

Mdl = fitcecoc (X, Y)gydF4y2Ba
Mdl = ClassificationECOC ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'setosa' 'versicolor' 'virginica'} ScoreTransform: 'none' BinaryLearners: {3x1 cell} CodingName: 'onevsone'属性,方法gydF4y2Ba

MdlgydF4y2BaはgydF4y2BaClassificationECOCgydF4y2Baモデルです。既定では,gydF4y2BafitcecocgydF4y2BaはSVMバイナリ学習器および対1符号化設計を使用します。ドット表記を使用してgydF4y2BaMdlgydF4y2Baプロパティにアクセスできます。gydF4y2Ba

クラス名および符号化設計行列を表示します。gydF4y2Ba

Mdl。一会gydF4y2Ba
ans =gydF4y2Ba3 x1细胞gydF4y2Ba{'setosa'} {'versicolor'} {'virginica'}gydF4y2Ba
CodingMat = Mdl。CodingMatrixgydF4y2Ba
CodingMat =gydF4y2Ba3×3gydF4y2Ba1 1 0 1 0 1 1gydF4y2Ba

3つのクラスに対して対1符号化設計を使用すると,3つのバイナリ学習器が生成されます。gydF4y2BaCodingMatgydF4y2Baの列は学習器に,行はクラスに対応します。クラスの順序はgydF4y2BaMdl。一会gydF4y2Ba内の順序と同じです。たとえば,gydF4y2BaCodingMat (: 1)gydF4y2BaはgydF4y2Ba(1;1;0]gydF4y2Baであり,gydF4y2Ba“setosa”gydF4y2BaまたはgydF4y2Ba“多色的”gydF4y2Baとして分類されるすべての観測値を使用して最初のSVMバイナリ学習器が学習を行うことを示します。gydF4y2Ba“setosa”gydF4y2BaはgydF4y2Ba1gydF4y2Baに対応するので陽性クラスであり,gydF4y2Ba“多色的”gydF4y2BaはgydF4y2Ba1gydF4y2Baに対応するので陰性クラスです。gydF4y2Ba

各バイナリ学習器にセルのインデックス付けおよびドット表記を使用してアクセスすることができます。gydF4y2Ba

Mdl。BinaryLearners {1}gydF4y2Ba第一个二元学习者gydF4y2Ba
ans = CompactClassificationSVM ResponseName: 'Y' CategoricalPredictors: [] ClassNames: [-1 1] ScoreTransform: 'none' Beta: [4x1 double] Bias: 1.4492 KernelParameters: [1x1 struct] Properties, Methods . txt: [gydF4y2Ba

再代入分類誤差を計算します。gydF4y2Ba

错误= resubLoss (Mdl)gydF4y2Ba
错误= 0.0067gydF4y2Ba

学習データに対する分類誤差は小さくなっていますが,分類器が過適合モデルになる可能性があります。代わりに,gydF4y2BacrossvalgydF4y2Baを使用して分類器を交差検証し,交差検証分類誤差を計算することができます。gydF4y2Ba

SVMバイナリ学習器を使用してECOC分類器に学習をさせます。次に,ドット表記を使用して,バイナリ学習器のプロパティ(推定パラメーターなど)にアクセスします。gydF4y2Ba

フィッシャーのアヤメのデータセットを読み込みます。予測子として花弁の寸法を,応答として種の名前を指定します。gydF4y2Ba

负载gydF4y2BafisheririsgydF4y2BaX =量(:,3:4);Y =物种;gydF4y2Ba

SVMバイナリ学習器および既定の符号化設計(1対1)を使用してECOC分類器に学習をさせます。予測子を標準化し,サポートベクターを保存します。gydF4y2Ba

t = templateSVM (gydF4y2Ba“标准化”gydF4y2Ba,真的,gydF4y2Ba“Save金宝appSupportVectors”gydF4y2Ba,真正的);predictorNames = {gydF4y2Ba“petalLength”gydF4y2Ba,gydF4y2Ba“petalWidth”gydF4y2Ba};responseName =gydF4y2Ba“irisSpecies”gydF4y2Ba;一会= {gydF4y2Ba“setosa”gydF4y2Ba,gydF4y2Ba“多色的”gydF4y2Ba,gydF4y2Ba“virginica”gydF4y2Ba};gydF4y2Ba指定类顺序gydF4y2BaMdl = fitcecoc (X, Y,gydF4y2Ba“学习者”gydF4y2BatgydF4y2Ba“ResponseName”gydF4y2BaresponseName,gydF4y2Ba...gydF4y2Ba“PredictorNames”gydF4y2BapredictorNames,gydF4y2Ba“类名”gydF4y2Ba类名)gydF4y2Ba
Mdl = ClassificationECOC PredictorNames: {'petalLength' 'petalWidth'} ResponseName: 'irisSpecies' CategoricalPredictors: [] ClassNames: {'setosa' 'versicolor' 'virginica'} ScoreTransform: 'none' BinaryLearners: {3x1 cell} CodingName: 'onevsone'属性,方法gydF4y2Ba

tgydF4y2BaはSVM分類のオプションを含むテンプレートオブジェクトです。関数gydF4y2BafitcecocgydF4y2Baは空(gydF4y2Ba[]gydF4y2Ba)のプロパティについて既定値を使用します。gydF4y2BaMdlgydF4y2BaはgydF4y2BaClassificationECOCgydF4y2Ba分類器です。ドット表記を使用してgydF4y2BaMdlgydF4y2Baのプロパティにアクセスできます。gydF4y2Ba

クラス名および符号化設計行列を表示します。gydF4y2Ba

Mdl。一会gydF4y2Ba
ans =gydF4y2Ba3 x1细胞gydF4y2Ba{'setosa'} {'versicolor'} {'virginica'}gydF4y2Ba
Mdl。CodingMatrixgydF4y2Ba
ans =gydF4y2Ba3×3gydF4y2Ba1 1 0 1 0 1 1gydF4y2Ba

列はSVMバイナリ学習器に対応し,行は個々のクラスに対応します。行の順序は,gydF4y2BaMdlgydF4y2BaのgydF4y2Ba一会gydF4y2Baプロパティにおける順序と同じです。各列について:gydF4y2Ba

  • 1gydF4y2Baは,対応するクラスの観測値を正のグループのメンバーとして使用してgydF4y2BafitcecocgydF4y2BaがSVMに学習をさせることを示します。gydF4y2Ba

  • 1gydF4y2Baは,対応するクラスの観測値を負のグループのメンバーとして使用してgydF4y2BafitcecocgydF4y2BaがSVMに学習をさせることを示します。gydF4y2Ba

  • 0gydF4y2Baは,対応するクラスの観測値をSVMが使用しないことを示します。gydF4y2Ba

たとえば1番目のSVMでgydF4y2BafitcecocgydF4y2Baはすべての観測値をgydF4y2Ba“setosa”gydF4y2BaまたはgydF4y2Ba“多色的”gydF4y2Baに割り当てていますが,gydF4y2Ba“virginica”gydF4y2Baには割り当てていません。gydF4y2Ba

セルの添字とドット表記を使用して,SVMのプロパティにアクセスします。各支持向量机の標準化されたサポートベクターを保存します。サポートベクターを非標準化します。gydF4y2Ba

L =大小(Mdl.CodingMatrix, 2);gydF4y2Ba%支持向量机个数gydF4y2Basv =细胞(L, 1);gydF4y2Ba%预分配支持向量索引金宝appgydF4y2Ba为gydF4y2Baj = 1:L SVM = Mdl.BinaryLearners{j};sv {j} = SVM金宝app.SupportVectors;sv {j} = sv {j}。* SVM。σ+ SVM.Mu;gydF4y2Ba结束gydF4y2Ba

svgydF4y2Baは,SVMの非標準化されたサポートベクターを含む行列の细胞配列です。gydF4y2Ba

データをプロットし,サポートベクターを特定します。gydF4y2Ba

图gscatter (X (: 1), (:, 2), Y);持有gydF4y2Ba在gydF4y2Ba标记= {gydF4y2Ba“柯”gydF4y2Ba,gydF4y2Ba“罗”gydF4y2Ba,gydF4y2Ba“波”gydF4y2Ba};gydF4y2Ba%的长度为LgydF4y2Ba为gydF4y2Baj = 1:L svs = sv{j};情节(sv (: 1), sv(:, 2),标记{j},gydF4y2Ba...gydF4y2Ba“MarkerSize”gydF4y2Ba,10 + (j - 1)*3;gydF4y2Ba结束gydF4y2Ba标题(gydF4y2BaFisher' s虹膜- ECOC支持载体金宝appgydF4y2Ba) xlabel(predictorNames{1}) ylabel(predictorNames{2}) legend([classNames,{gydF4y2Ba支金宝app持向量机1gydF4y2Ba,gydF4y2Ba...gydF4y2Ba支金宝app持向量机2gydF4y2Ba,gydF4y2Ba支金宝app持向量机3gydF4y2Ba}),gydF4y2Ba...gydF4y2Ba“位置”gydF4y2Ba,gydF4y2Ba“最佳”gydF4y2Ba)举行gydF4y2Ba从gydF4y2Ba

图中包含一个坐标轴。标题为Fisher's Iris - ECOC支持向量的轴包含6个类型为line的对金宝app象。这些对象代表setosa, versicolor, virginica,支持向量- SVM 1,支持向量- S金宝appVM 2,支持向量- SVM 3。gydF4y2Ba

次の関数にgydF4y2BaMdlgydF4y2Baを渡すことができます。gydF4y2Ba

  • 预测gydF4y2Ba。新しい観測値を分類します。gydF4y2Ba

  • resubLossgydF4y2Ba。学習データに対する分類誤差を推定します。gydF4y2Ba

  • crossvalgydF4y2Ba。10分割交差検証を実行します。

SVMバイナリ学習器によるECOC分類器を交差検証し,一般化分類誤差を推定します。gydF4y2Ba

フィッシャーのアヤメのデータセットを読み込みます。予測子データgydF4y2BaXgydF4y2Baと応答データgydF4y2BaYgydF4y2Baを指定します。gydF4y2Ba

负载gydF4y2BafisheririsgydF4y2BaX =量;Y =物种;rng (1);gydF4y2Ba%的再现性gydF4y2Ba

SVMテンプレートを作成し,予測子を標準化します。gydF4y2Ba

t = templateSVM (gydF4y2Ba“标准化”gydF4y2Ba,真正的)gydF4y2Ba
t =适合分类支持向量机的模板。α:[0 x1双]BoxConstraint: [] CacheSize: [] CachingMethod:“ClipAlphas: [] DeltaGradientTolerance:[]ε:[]GapTolerance: [] KKTTolerance: [] IterationLimit: [] KernelFunction:“KernelScale: [] KernelOffset: [] KernelPolynomialOrder: [] NumPrint:[]ν:[]OutlierFraction: [] RemoveDuplicates: [] ShrinkagePeriod:[]解算器:"标准化数据:1 SaveSupportVector金宝apps: [] VerbosityLevel:[]版本:2方法:'SVM'类型:'分类'gydF4y2Ba

tgydF4y2BaはSVMテンプレートです。テンプレートオブジェクトのプロパティは,ほとんとが空です。ECOC分類器に学習をさせると,該当するプロパティが既定値に設定されます。gydF4y2Ba

ECOC分類器に学習をさせ,クラスの順序を指定します。gydF4y2Ba

Mdl = fitcecoc (X, Y,gydF4y2Ba“学习者”gydF4y2BatgydF4y2Ba...gydF4y2Ba“类名”gydF4y2Ba, {gydF4y2Ba“setosa”gydF4y2Ba,gydF4y2Ba“多色的”gydF4y2Ba,gydF4y2Ba“virginica”gydF4y2Ba});gydF4y2Ba

MdlgydF4y2BaはgydF4y2BaClassificationECOCgydF4y2Ba分類器です。ドット表記を使用してプロパティにアクセスできます。gydF4y2Ba

10分割交差検証を使用してgydF4y2BaMdlgydF4y2Baを交差検証します。gydF4y2Ba

CVMdl = crossval (Mdl);gydF4y2Ba

CVMdlgydF4y2BaはgydF4y2BaClassificationPartitionedECOCgydF4y2Ba交差検証ECOC分類器です。gydF4y2Ba

一般化分類誤差を推定します。gydF4y2Ba

genError = kfoldLoss (CVMdl)gydF4y2Ba
genError = 0.0400gydF4y2Ba

一般化分類誤差が4%なので,ECOC分類器がかなり良好に一般化を行うことがわかります。gydF4y2Ba

詳細gydF4y2Ba

すべて展開するgydF4y2Ba

アルゴリズムgydF4y2Ba

すべて展開するgydF4y2Ba

代替機能gydF4y2Ba

これらの代替アルゴリズムを使用してマルチクラスモデルに学習させることができます。gydF4y2Ba

参照gydF4y2Ba

[1] Furnkranz,约翰。“循环赛分类”。机器学习研究,2002年第2卷,第721-747页。gydF4y2Ba

Pujol, S. Escalera, S. O. Pujol, P. Radeva。用于纠错输出码稀疏设计的三元码的可分性。模式识别Letters, Vol. 30, Issue 3, 2009, pp. 285-297。gydF4y2Ba

拡張機能gydF4y2Ba

R2014bで導入gydF4y2Ba