Main Content

CompactClassificationGAM

バイナリ分類用のコンパクトな一般化加法モデル (GAM)

R2021a 以降

    説明

    CompactClassificationGAM は、ClassificationGAM モデル オブジェクト (バイナリ分類用の GAM) のコンパクトなバージョンです。コンパクトなモデルには、分類器の学習に使用されたデータが含まれません。このため、コンパクトなモデルを使用しても、交差検証など一部のタスクは実行できません。コンパクトなモデルは、新しいデータに対するラベルの予測などのタスクに使用します。

    作成

    CompactClassificationGAM オブジェクトは、compact を使用して完全な ClassificationGAM モデル オブジェクトから作成します。

    プロパティ

    すべて展開する

    GAM のプロパティ

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

    交互作用項のインデックス。正の整数の t 行 2 列の行列を指定します。ここで、t はモデル内の交互作用項の数です。行列の各行は 1 つの交互作用項を表し、交互作用項の予測子データ X の列インデックスを格納します。モデルに交互作用項が含まれない場合、このプロパティは空 ([]) になります。

    交互作用項は、p 値に基づく重要度の順序でモデルに追加されます。交互作用項がモデルに追加される順序を確認するには、このプロパティを使用します。

    データ型: double

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

    モデルの切片 (定数) 項。予測子木と交互作用木における切片項の和です。数値スカラーを指定します。

    データ型: single | double

    他の分類のプロパティ

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

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

    データ型: double

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

    学習で使用する一意なクラス ラベル。categorical 配列、文字配列、logical ベクトル、数値ベクトル、または文字ベクトルの cell 配列を指定します。ClassNames のデータ型はクラス ラベル Y と同じです。(string 配列は文字ベクトルの cell 配列として扱われます)。ClassNames はクラスの順序も決定します。

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

    誤分類コスト。2 行 2 列の数値行列として指定されます。

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

    Cost の値は予測に使用されますが、学習には使用されません。値はドット表記を使用して変更できます。

    例: Mdl.Cost = C;

    データ型: double

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

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

    ExpandedPredictorNames は、一般化加法モデルの PredictorNames と同じです。

    データ型: cell

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

    予測子変数の名前。文字ベクトルの cell 配列を指定します。PredictorNames の要素の順序は、予測子名が学習データに現れる順序に対応します。

    データ型: cell

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

    クラスの事前確率。2 要素の数値ベクトルとして指定されます。要素の順序は ClassNames における要素の順序に対応します。

    データ型: double

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

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

    データ型: char

    スコア変換。文字ベクトルまたは関数ハンドルを指定します。ScoreTransform は、組み込みの変換関数または予測した分類スコアを変換する関数のハンドルを表します。

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

    • 組み込み関数の場合は、文字ベクトルを入力します。

      Mdl.ScoreTransform = 'function';

      次の表は、使用可能な組み込み関数の一覧です。

      説明
      'doublelogit'1/(1 + e–2x)
      'invlogit'log(x / (1 – x))
      'ismax'最大のスコアをもつクラスのスコアを 1 に設定し、他のすべてのクラスのスコアを 0 に設定する
      'logit'1/(1 + e–x)
      'none' または 'identity'x (変換なし)
      'sign'x < 0 のとき –1
      x = 0 のとき 0
      x > 0 のとき 1
      'symmetric'2x – 1
      'symmetricismax'最大のスコアをもつクラスのスコアを 1 に設定し、他のすべてのクラスのスコアを –1 に設定する
      'symmetriclogit'2/(1 + e–x) – 1

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

      Mdl.ScoreTransform = @function;

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

    このプロパティによって、predictmarginedge などのオブジェクト関数で使用する出力スコアの計算が決まります。事後確率の計算には 'logit'、事後確率のロジットの計算には 'none' を使用します。

    データ型: char | function_handle

    オブジェクト関数

    すべて展開する

    limeLocal Interpretable Model-agnostic Explanations (LIME)
    partialDependence部分依存の計算
    plotLocalEffects一般化加法モデル (GAM) 内の項のローカルな効果のプロット
    plotPartialDependence部分依存プロット (PDP) および個別条件付き期待値 (ICE) プロットの作成
    shapleyシャープレイ値
    predict一般化加法モデル (GAM) を使用した観測値の分類
    loss一般化加法モデル (GAM) の分類損失
    margin一般化加法モデル (GAM) の分類マージン
    edge一般化加法モデル (GAM) の分類エッジ
    compareHoldout新しいデータを使用して 2 つの分類モデルの精度を比較

    すべて折りたたむ

    学習データを削除することにより、完全な一般化加法モデル (GAM) のサイズを縮小します。完全なモデルには、学習データが保持されます。コンパクトなモデルを使用すると、メモリ効率を向上させることができます。

    ionosphere データ セットを読み込みます。このデータ セットには、レーダー反射についての 34 個の予測子と、不良 ('b') または良好 ('g') という 351 個の二項反応が含まれています。

    load ionosphere

    予測子 X とクラス ラベル Y を使用して、GAM に学習させます。クラス名を指定することが推奨されます。

    Mdl = fitcgam(X,Y,'ClassNames',{'b','g'})
    Mdl = 
      ClassificationGAM
                 ResponseName: 'Y'
        CategoricalPredictors: []
                   ClassNames: {'b'  'g'}
               ScoreTransform: 'logit'
                    Intercept: 2.2715
              NumObservations: 351
    
    
    

    MdlClassificationGAM モデル オブジェクトです。

    分類器のサイズを縮小します。

    CMdl = compact(Mdl)
    CMdl = 
      CompactClassificationGAM
                 ResponseName: 'Y'
        CategoricalPredictors: []
                   ClassNames: {'b'  'g'}
               ScoreTransform: 'logit'
                    Intercept: 2.2715
    
    
    

    CMdlCompactClassificationGAM モデル オブジェクトです。

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

    whos('Mdl','CMdl')
      Name      Size              Bytes  Class                                                 Attributes
    
      CMdl      1x1             1030188  classreg.learning.classif.CompactClassificationGAM              
      Mdl       1x1             1231165  ClassificationGAM                                               
    

    完全な分類器 (Mdl) の方がコンパクトな分類器 (CMdl) より大きくなっています。

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

    バージョン履歴

    R2021a で導入