主要内容

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

紧凑分类

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

説明

紧凑分类は,コンパクトなバージョンのマルチクラス誤り訂正出力符号(ECOC)モデルです。コンパクトな分類器には,マルチクラスECOCモデルの学習に使用したデータが格納されません。このため,コンパクトな分類器を使用しても,交差検証など一部のタスクは実行できません。コンパクトなマルチクラスECOCモデルは,新しいデータの分類(预测) などのタスクに使用します。

作成

紧凑分类モデルは 2.つの方法で作成できます。

  • オブジェクト関数紧凑的を使用して、学習済みの分类モデルからコンパクトなECOCモデルを作成する。

  • 関数fitcecocを使用し、名前と値のペアの引数“学习者”として“线性”“内核”templateLinearオブジェクト,模板核オブジェクト,またはこれらのオブジェクトの细胞配列を指定して,コンパクトなECOCモデルを作成する。

プロパティ

すべて展開する

紧凑分类モデルオブジェクトを作成した後で,ドット表記を使用してプロパティにアクセスできます。たとえば,经济合作分類器の学習と交差検証を参照してください。

经济合作のプロパティ

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

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

データ型:单间牢房

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

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

データ型:字符

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

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

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

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

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

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

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

データ型:|

他の分類のプロパティ

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

データ型:|

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

データ型:分类|字符|必然的|||单间牢房

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

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

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

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

データ型:

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

データ型:单间牢房

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

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

データ型:单间牢房

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

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

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

データ型:

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

データ型:字符

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

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

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

    Mdl.ScoreTransform='函数';

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

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

    Mdl。ScoreTransform = @function;

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

データ型:字符|功能手柄

オブジェクト関数

比较控股 新しいデータを使用して2つの分類モデルの精度を比較
丢弃支持向量万博1manbetx ECOCモデルの線形SVMバイナリ学習器のサポートベクターを破棄
マルチクラス誤り訂正出力符号(ECOC)モデルの分類エッジ
石灰 局部可解释模型不可知解释(LIME)
损失 マルチクラス誤り訂正出力符号 (经济合作委员会)モデルの分類損失
保证金 マルチクラス誤り訂正出力符号(ECOC)モデルの分類マージン
部分依赖 部分従属の計算
plotPartialDependence 部分依存プロット(PDP)および個別条件付き期待値(ICE)プロットの作成
预测 マルチクラス誤り訂正出力符号(ECOC)モデルを使用して観測値を分類
夏普利 シャープレイ値
选择模型 バイナリ分类线性学習器から構成されるマルチクラス 经济合作モデルのサブセットを選択
更新 コード生成用にモデルパラメーターを更新

すべて折りたたむ

学習データを削除することにより,完全なECOCモデルのサイズを縮小します。完全な 经济合作モデル (分类モデル) には、学習データが保持されます。効率を向上させるため、より小さい分類器を使用します。

フィッシャーのアヤメのデータセットを読み込みます。予測子データX、応答データY、およびY内のクラスの順序を指定します。

负载鱼腥草X =量;Y =分类(物种);classOrder =独特(Y);

SVMバイナリ分類器を使用してECOCモデルを学習させます。SVMテンプレートTを使用して予測子データを標準化し、クラスの順序を指定します。学習時に、Tの空のオプションについては既定値が使用されます。

t = templateSVM (“标准化”,真);Mdl=FITCECOCC(X,Y,“学习者”t“类名”, classOrder);

Mdl分类モデルです。

经济合作モデルのサイズを小さくします。

CompactMdl =紧凑(Mdl)
CompactMdl = CompactClassificationECOC ResponseName: 'Y' CategoricalPredictors: [] ClassNames: [setosa versicolor virginica] ScoreTransform: 'none' BinaryLearners: {3x1 cell} CodingMatrix: [3x3 double]属性,方法

CompactMdl紧凑分类モデルです。CompactMdlでは、Mdlで保存されるすべてのプロパティが保存されるわけではありません。具体的には,学習データが保存されません。

各分類器が使用するメモリの量を表示します。

谁(“CompactMdl”,“Mdl”)
名称大小字节类属性CompactMdl 1x1 15116 classreg.learning.classif.CompactClassificationCoc Mdl 1x1 28357 ClassificationCoc

完全な 经济合作モデル (Mdl) はコンパクトな 经济合作モデル (CompactMdl)のほぼ2倍のサイズです。

新しい観測値のラベルを効率的に設定するため、MdlをMATLAB®ワークスペースから削除し,CompactMdlと新しい予測子の値を预测に渡すことができます。

複数の異なるバイナリ学習器および1対他の符号化設計を使用して,ECOC分類器に学習をさせ交差検証を実行します。

フィッシャーのアヤメのデータセットを読み込みます。予測子データXと応答データYを指定します。クラスの名前と個数を調べます。

负载鱼腥草X=meas;Y=species;类名=unique(species(~strcmp(species,'')))%删除空类
类名=3x1电池{'setosa'}{'versicolor'}{'virginica'}
K =元素个数(类名)%类数
K = 3

类名を使用して学習中のクラスの順序を指定できます。

この例では1対他の符号化設計用にK= 3個のバイナリ学習器を使用します。次のようにバイナリ学習器のテンプレートを指定します。

  • バイナリ学習器 1.および 2.は単純ベイズ分類器である。既定では、各予測子は与えられたラベルに対して条件付きで正規分布になります。

  • バイナリ学習器 3.は 支持向量机分類器である。ガウス カーネルの使用を指定します。

rng (1);%的再现性tNB=templateNaiveBayes();tSVM=templateSVM(“内核函数”,“高斯”);tLearners={tNB tNB tSVM};

tNBtSVMはそれぞれ単純ベイズおよび 支持向量机学習のテンプレート オブジェクトです。これらのオブジェクトは、学習時に使用するオプションを指定します。名前と値のペアの引数で指定したものを除き、ほとんどのプロパティは空です。学習時は、空のプロパティに対して既定値が設定されます。

バイナリ学習器テンプレートおよび1対他の符号化設計を使用して,ECOC分類器に学習をさせ交差検証を実行します。クラスの順序を指定します。既定では,単純ベイズ分類器はスコアとして事後確率を使用しますが,支持向量机分類器は判定境界からの距離を使用します。したがって,バイナリ学習器を集約するには,事後確率をあてはめるように指定しなければなりません。

CVMdl = fitcecoc (X, Y,“类名”一会,“克罗斯瓦尔”,“开”,...“学习者”tLearners,“菲特莱斯特”,真正的);

CVMdlは、ClassificationPartitionedECOC交差検証済みモデルです。既定では、10分割交差検証が実行されます。スコアはバイナリ学習器間で同じ形式 (つまり事後確率) なので、バイナリ分類の結果を正しく集約できます。

ドット表記を使用して,学習させた分割のいずれかを検査します。

CVMdl。训练有素的{1}
ans = CompactClassificationECOC ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'setosa' 'versicolor' 'virginica'} ScoreTransform: 'none' BinaryLearners: {3x1 cell} CodingMatrix: [3x3 double]属性,方法

各分割はデータの90%で学習させた紧凑分类モデルです。

バイナリ学習器の結果には、ドット表記およびセルのインデックス付けを使用してアクセスできます。最初の分割内で学習させた 支持向量机分類器 (3 番目のバイナリ学習器) を表示します。

CVMdl.Trained {1} .BinaryLearners {3}
ans=CompactClassificationSVM ResponseName:'Y'分类预测值:[]类名:[-11]分数转换:“@(S)sigmoid(S,-4.016735e+00,-3.243061e-01)”Alpha:[33x1双精度]偏差:-0.1345内核参数:[1x1结构]支持向量:[33x4双精度]支持向量标签:[33x1双精度]属性、方法万博1manbetx

汎化誤差を推定します。

genError = kfoldLoss (CVMdl)
genError = 0.0333

平均すると汎化誤差は約 3% です。

アルゴリズム

すべて展開する

参照

[1] 约翰内斯·弗恩克兰兹,《循环分类》,《机器学习研究杂志》,2002年第2卷,第721-747页。

[2] 《用于纠错输出码稀疏设计的三元码的可分性》,《模式识别快报》,第30卷,2009年第3期,第285-297页。

拡張機能

R2014bで導入