メインコンテンツ

ClassificationDiscriminant

判別分析による分類

説明

ClassificationDiscriminant オブジェクトは、判別分析分類器をカプセル化したもので、データ生成用の混合ガウス モデルになります。ClassificationDiscriminant オブジェクトでは、新しいデータに対する応答を predict メソッドを使用して予測できます。オブジェクトには学習に使用したデータが格納されているため、再代入予測を計算できます。

作成

ClassificationDiscriminant オブジェクトの作成には fitcdiscr を使用します。

プロパティ

すべて展開する

判別分析のプロパティ

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

クラス間共分散。pp 列の行列として指定します。ここで、p は予測子の数です。

データ型: double

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

係数行列。kk 列の構造体として指定します。ここで、k はクラスの数です。分類器の作成時に fitcdiscr で名前と値のペア FillCoeffs'off' に設定した場合、Coeffs は空 ([]) になります。

Coeffs(i,j) には、クラス ij の間の線形境界または 2 次境界の係数が格納されます。Coeffs(i,j) のフィールドは次のとおりです。

  • DiscrimType

  • Class1ClassNames(i)

  • Class2ClassNames(j)

  • Const — スカラー

  • Linearp 個の成分をもつベクトル (pX の列数)

  • Quadraticpp 列の行列 (2 次の DiscrimType 用)

クラス i とクラス j の間の境界方程式は次のようになります。

Const + Linear * x + x' * Quadratic * x = 0

ここで、x は長さ p の列ベクトルです。

データ型: struct

線形判別モデルのデルタしきい値の値。非負のスカラーとして指定します。obj の係数の大きさが Delta よりも小さい場合、この係数は obj0 に設定されるため、対応する予測子をモデルから削除できます。Delta を高い値に設定すると、削除できる予測子が多くなります。

2 次判別モデルでは Delta0 でなければなりません。

Delta を変更するには、ドット表記 obj.Delta = newDelta を使用します。

データ型: double

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

モデルに含める予測子に対応するデルタ係数の最小値。長さ p の行ベクトルとして指定します。ここで、pobj の予測子の数です。DeltaPredictor(i) < Delta の場合、モデルの係数 i0 になります。

obj が 2 次判別分析モデルの場合、DeltaPredictor のすべての要素が 0 になります。

データ型: double

判別タイプ。文字ベクトルまたは string として指定します。使用可能な値は次のとおりです。

  • 'linear'

  • 'quadratic'

  • 'diagLinear'

  • 'diagQuadratic'

  • 'pseudoLinear'

  • 'pseudoQuadratic'

DiscrimType を変更するには、ドット表記 obj.DiscrimType = newDiscrimType を使用します。線形タイプ間または 2 次タイプ間での変更は可能ですが、線形タイプと 2 次タイプの間の変更はできません。

データ型: char | string

ガンマ正則化パラメーターの値。01 のスカラーとして指定します。Gamma を変更するには、ドット表記 obj.Gamma = newGamma を使用します。

  • 線形判別に対して 1 を設定すると、判別タイプが 'diagLinear' に設定されます。

  • 線形判別に対して MinGamma1 の値を設定すると、判別タイプが 'linear' に設定されます。

  • MinGamma プロパティの値より小さい値は設定できません。

  • 2 次判別に対しては、0 (DiscrimType 'quadratic') または 1 (DiscrimType 'diagQuadratic') のいずれかを設定できます。

データ型: double

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

クラス内共分散行列の行列式の対数。スカラーまたはベクトルとして返されます。LogDetSigma の型は判別タイプによって異なります。

  • 線形判別分析の場合はスカラー

  • 2 次判別分析の場合は長さ K のベクトル (K はクラスの数)

データ型: double

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

相関行列が可逆になるガンマ パラメーターの最小値。非負のスカラーとして指定します。相関行列が特異でない場合、MinGamma0 です。

データ型: double

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

モデルの学習に使用したパラメーター。DiscriminantParams オブジェクトとして返されます。返されるパラメーターには次のプロパティがあります。

プロパティ
DiscrimType
  • 'linear'

  • 'quadratic'

  • 'diagLinear'

  • 'diagQuadratic'

  • 'pseudoLinear'

  • 'pseudoQuadratic'

Gamma01 のスカラー
Delta非負のスカラー
FillCoeffslogical スカラー
SaveMemorylogical スカラー
Versionスカラー
Method'Discriminant'
Type'classification'

予測子のプロパティ

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

カテゴリカル予測子のインデックス。常に空 ([]) です。

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

クラス平均。実数値の Kp 列の行列として指定します。K はクラスの数、p は予測子の数です。Mu の各行は、対応するクラスの多変量正規分布の平均を表します。クラス インデックスは、ClassNames 属性にあります。

データ型: double

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

予測子変数の名前。cell 配列として返されます。名前の順序は、学習データ X に現れる順序になります。

データ型: cell

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

クラス内共分散。数値配列として返されます。次元は DiscrimType によって異なります。

  • 'linear' (既定) — pp 列のサイズの行列 (p は予測子の数)

  • 'quadratic'p×p×K のサイズの配列 (K はクラスの数)

  • 'diagLinear' — 長さ p の行ベクトル

  • 'diagQuadratic'1×p×K のサイズの配列

  • 'pseudoLinear'pp 列のサイズの行列

  • 'pseudoQuadratic'p×p×K のサイズの配列

データ型: double

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

予測子の値。実数行列として返されます。X の各列が 1 つの予測子 (変数) を表し、各行が 1 つの観測値を表します。

データ型: single | double

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

クラス平均を減算した X のデータ。実数行列として返されます。Y(i) のクラスが j の場合、次のようになります。

Xcentered(i,:) = X(i,:)Mu(j,:)(1)

ここで、Mu はクラス平均のプロパティです。

データ型: single | double

応答のプロパティ

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

重複を削除した学習データ Y 内のクラスの名前。ClassNames のデータ型は学習データ内の引数 Y のデータと同じです。ClassNames のデータ型は次のいずれかになります。

  • categorical 配列

  • 文字ベクトルの cell 配列

  • 文字配列

  • logical ベクトル

  • 数値ベクトル

(string 配列は文字ベクトルの cell 配列として扱われます)。

データ型: single | double | logical | char | string | cell | categorical

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

応答変数 Y の名前。文字ベクトルとして返されます。

データ型: char | string

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

行の分類。X と同じ行数の categorical 配列、文字ベクトルの cell 配列、文字配列、logical ベクトル、または数値ベクトルとして返されます。Y の各行は、X の対応する行の分類を表します。

データ型: single | double | logical | char | string | cell | categorical

その他のデータのプロパティ

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

ハイパーパラメーターの交差検証最適化の説明。BayesianOptimization オブジェクト、またはハイパーパラメーターと関連する値の table として返されます。モデルを作成するときに名前と値の引数 OptimizeHyperparameters が空以外であった場合、このプロパティは空以外になります。HyperparameterOptimizationResults の値は、モデル作成時の HyperparameterOptimizationOptionsOptimizer オプションの設定に依存します。

  • "bayesopt" (既定) — BayesianOptimization クラスのオブジェクト

  • "gridsearch" または "randomsearch" — 使用したハイパーパラメーター、観測された目的関数の値 (交差検証損失)、および最低 (最良) から最高 (最悪) までの観測値の順位が格納された table

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

学習データ内の観測値の数。正の整数として返されます。入力データまたは応答データに欠損値がある場合、NumObservations は入力データの行数よりも少なくなることがあります。

データ型: double

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

当てはめに使用される元の予測子データ X の行。n 要素の logical ベクトルとして返されます。ここで、nX の行数です。オブジェクトの作成に X のすべての行を使用する場合、RowsUsed は空の配列 ([]) になります。

データ型: logical

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

スケーリングされた観測値の weights。長さ n の数値ベクトルとして返されます。ここで、nX の行数です。

データ型: double

他の分類のプロパティ

点を分類するコスト。正方行列として指定します。Cost(i,j) は、真のクラスが i である場合に点をクラス j に分類するコストです (行は真のクラス、列は予測クラスに対応します)。Cost の行と列の順序は、ClassNames のクラスの順序に対応します。Cost の行および列の数は、応答に含まれている一意なクラスの数です。

Cost 行列を変更するには、ドット表記 obj.Cost = costMatrix を使用します。

データ型: double

各クラスの事前確率。数値ベクトルとして返されます。Prior の要素の順序は、ClassNames のクラスの順序に対応します。

Prior ベクトルを追加または変更するには、ドット表記 obj.Prior = priorVector を使用します。

データ型: double

スコア変換関数。組み込みの変換関数を表す文字ベクトルまたは string として指定するか、スコア変換用の関数ハンドルとして指定します。'none' は変換なしを意味します。つまり、'none'@(x)x と同じ意味になります。組み込みの変換関数の一覧とカスタム変換関数の構文については、fitcdiscr を参照してください。

ドット表記を実装して ScoreTransform 関数を追加または変更するには、次のいずれかを使用します。

  • cobj.ScoreTransform = 'function'

  • cobj.ScoreTransform = @function

データ型: char | string | function_handle

オブジェクト関数

compact機械学習モデルのサイズの縮小
compareHoldout新しいデータを使用して 2 つの分類モデルの精度を比較
crossval機械学習モデルの交差検証
cvshrink線形判別の正則化の交差検証
edge判別分析分類器の分類エッジ
limeLocal Interpretable Model-agnostic Explanations (LIME)
logpLog unconditional probability density for discriminant analysis classifier
loss判別分析分類器の分類損失
mahal判別分析分類器のクラスの平均に対するマハラノビス距離
margin判別分析分類器の分類マージン
nLinearCoeffsNumber of nonzero linear coefficients in discriminant analysis classifier
partialDependence部分依存の計算
plotPartialDependence部分依存プロット (PDP) および個別条件付き期待値 (ICE) プロットの作成
predict判別分析分類器の使用によるラベルの予測
resubEdge判別分析分類器の再代入分類エッジ
resubLoss判別分析分類器の再代入分類損失
resubMargin判別分析分類器の再代入分類マージン
resubPredict再代入による判別分析分類器の観測値の分類
shapleyシャープレイ値
testckfold交差検証の反復により 2 つの分類モデルの精度を比較

すべて折りたたむ

フィッシャーのアヤメのデータ セットを読み込みます。

load fisheriris

データ セット全体を使用して、判別分析モデルに学習をさせます。

Mdl = fitcdiscr(meas,species)
Mdl = 
  ClassificationDiscriminant
             ResponseName: 'Y'
    CategoricalPredictors: []
               ClassNames: {'setosa'  'versicolor'  'virginica'}
           ScoreTransform: 'none'
          NumObservations: 150
              DiscrimType: 'linear'
                       Mu: [3×4 double]
                   Coeffs: [3×3 struct]


  Properties, Methods

MdlClassificationDiscriminant モデルです。プロパティにアクセスするには、ドット表記を使用します。たとえば、各予測子のグループ平均を表示します。

Mdl.Mu
ans = 3×4

    5.0060    3.4280    1.4620    0.2460
    5.9360    2.7700    4.2600    1.3260
    6.5880    2.9740    5.5520    2.0260

新しい観測値のラベルを予測するには、Mdl と予測子データを predict に渡します。

詳細

すべて展開する

参照

[1] Guo, Y., T. Hastie, and R. Tibshirani. "Regularized linear discriminant analysis and its application in microarrays." Biostatistics, Vol. 8, No. 1, pp. 86–100, 2007.

拡張機能

すべて展開する

バージョン履歴

R2011b で導入

すべて展開する