ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

fitcdiscr

判別分析分類器の近似

構文

Mdl = fitcdiscr(Tbl,ResponseVarName)
Mdl = fitcdiscr(Tbl,formula)
Mdl = fitcdiscr(Tbl,Y)
Mdl = fitcdiscr(X,Y)
Mdl = fitcdiscr(___,Name,Value)

説明

Mdl = fitcdiscr(Tbl,ResponseVarName) は、テーブル Tbl に含まれている入力変数 (予測子、特徴量または属性とも呼ばれます) と ResponseVarName に含まれている出力 (応答またはラベル) に基づいてあてはめた判別分析モデルを返します。

Mdl = fitcdiscr(Tbl,formula) は、テーブル Tbl に含まれている入力変数に基づいてあてはめた判別分析モデルを返します。formula は、Mdl のあてはめに使用する応答および Tbl 内の予測子変数サブセットの説明モデルです。

Mdl = fitcdiscr(Tbl,Y) は、テーブル Tbl に含まれている入力変数、および応答 Y に基づいてあてはめた判別分析モデルを返します。

Mdl = fitcdiscr(X,Y) は、入力変数 X と応答 Y に基づいて判別分析分類器を返します。

Mdl = fitcdiscr(___,Name,Value) は、前の構文のいずれかを使用し、1 つ以上の名前と値のペアの引数で指定されたオプションを追加して、分類器をあてはめます。たとえば、モデルの交差検証損失を最小化するようにハイパーパラメーターを最適化したり、誤分類コスト、各クラスの事前確率、観測値の重みを指定できます。

すべて折りたたむ

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

load fisheriris

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

Mdl = fitcdiscr(meas,species)
Mdl = 
  ClassificationDiscriminant
             ResponseName: 'Y'
    CategoricalPredictors: []
               ClassNames: {'setosa'  'versicolor'  'virginica'}
           ScoreTransform: 'none'
          NumObservations: 150
              DiscrimType: 'linear'
                       Mu: [3x4 double]
                   Coeffs: [3x3 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 に渡します。

この例では、fitcdiscr を使用して自動的にハイパーパラメーターを最適化する方法を示します。この例では、フィッシャーのアヤメのデータを使用します。

データを読み込みます。

load fisheriris

自動的なハイパーパラメーター最適化を使用して、5 分割交差検証損失を最小化するハイパーパラメーターを求めます。

再現性を得るために、乱数シードを設定し、'expected-improvement-plus' の獲得関数を使用します。

rng(1)
Mdl = fitcdiscr(meas,species,'OptimizeHyperparameters','auto',...
    'HyperparameterOptimizationOptions',...
    struct('AcquisitionFunctionName','expected-improvement-plus'))

|=====================================================================================================|
| Iter | Eval   | Objective   | Objective   | BestSoFar   | BestSoFar   |        Delta |        Gamma |
|      | result |             | runtime     | (observed)  | (estim.)    |              |              |
|=====================================================================================================|
|    1 | Best   |     0.66667 |     0.60501 |     0.66667 |     0.66667 |       13.261 |      0.25218 |
|    2 | Best   |        0.02 |      0.1803 |        0.02 |    0.064227 |   2.7404e-05 |     0.073264 |
|    3 | Accept |        0.04 |     0.16415 |        0.02 |    0.020084 |   3.2455e-06 |      0.46974 |
|    4 | Accept |     0.66667 |     0.18992 |        0.02 |    0.020118 |       14.879 |      0.98622 |
|    5 | Accept |    0.046667 |     0.18482 |        0.02 |    0.019907 |   0.00031449 |      0.97362 |
|    6 | Accept |        0.04 |     0.12656 |        0.02 |    0.028438 |   4.5092e-05 |      0.43616 |
|    7 | Accept |    0.046667 |     0.14202 |        0.02 |    0.031424 |   2.0973e-05 |       0.9942 |
|    8 | Accept |        0.02 |     0.14795 |        0.02 |    0.022424 |   1.0554e-06 |    0.0024286 |
|    9 | Accept |        0.02 |     0.18125 |        0.02 |    0.021105 |   1.1232e-06 |   0.00014039 |
|   10 | Accept |        0.02 |     0.16636 |        0.02 |    0.020948 |   0.00011837 |    0.0032994 |
|   11 | Accept |        0.02 |     0.26222 |        0.02 |    0.020172 |   1.0292e-06 |     0.027725 |
|   12 | Accept |        0.02 |     0.22586 |        0.02 |    0.020105 |   9.7792e-05 |    0.0022817 |
|   13 | Accept |        0.02 |     0.16695 |        0.02 |    0.020038 |   0.00036014 |    0.0015136 |
|   14 | Accept |        0.02 |     0.23526 |        0.02 |    0.019597 |   0.00021059 |    0.0044789 |
|   15 | Accept |        0.02 |      0.4876 |        0.02 |    0.019461 |   1.1911e-05 |    0.0010135 |
|   16 | Accept |        0.02 |     0.26512 |        0.02 |     0.01993 |    0.0017896 |   0.00071115 |
|   17 | Accept |        0.02 |     0.37888 |        0.02 |    0.019551 |   0.00073745 |    0.0066899 |
|   18 | Accept |        0.02 |     0.26492 |        0.02 |    0.019776 |   0.00079304 |   0.00011509 |
|   19 | Accept |        0.02 |     0.30541 |        0.02 |    0.019678 |     0.007292 |    0.0007911 |
|   20 | Accept |    0.046667 |     0.22041 |        0.02 |    0.019785 |    0.0074408 |      0.99945 |
|=====================================================================================================|
| Iter | Eval   | Objective   | Objective   | BestSoFar   | BestSoFar   |        Delta |        Gamma |
|      | result |             | runtime     | (observed)  | (estim.)    |              |              |
|=====================================================================================================|
|   21 | Accept |        0.02 |     0.24315 |        0.02 |    0.019043 |    0.0036004 |    0.0024547 |
|   22 | Accept |        0.02 |     0.21012 |        0.02 |    0.019755 |   2.5238e-05 |    0.0015542 |
|   23 | Accept |        0.02 |     0.17511 |        0.02 |      0.0191 |   1.5478e-05 |    0.0026899 |
|   24 | Accept |        0.02 |     0.22678 |        0.02 |    0.019081 |    0.0040557 |   0.00046815 |
|   25 | Accept |        0.02 |     0.19077 |        0.02 |    0.019333 |    2.959e-05 |    0.0011358 |
|   26 | Accept |        0.02 |     0.20154 |        0.02 |    0.019369 |   2.3111e-06 |    0.0029205 |
|   27 | Accept |        0.02 |     0.15246 |        0.02 |    0.019455 |   3.8898e-05 |    0.0011665 |
|   28 | Accept |        0.02 |      0.1455 |        0.02 |    0.019449 |    0.0035925 |    0.0020278 |
|   29 | Accept |     0.66667 |     0.24242 |        0.02 |    0.019479 |       998.93 |     0.064276 |
|   30 | Accept |        0.02 |     0.55157 |        0.02 |     0.01947 |   8.1557e-06 |    0.0008004 |

__________________________________________________________
Optimization completed.
MaxObjectiveEvaluations of 30 reached.
Total function evaluations: 30
Total elapsed time: 56.7389 seconds.
Total objective function evaluation time: 7.2404

Best observed feasible point:
      Delta        Gamma  
    __________    ________

    2.7404e-05    0.073264

Observed objective function value = 0.02
Estimated objective function value = 0.01947
Function evaluation time = 0.1803

Best estimated feasible point (according to models):
      Delta         Gamma  
    __________    _________

    2.5238e-05    0.0015542

Estimated objective function value = 0.01947
Estimated function evaluation time = 0.22173
Mdl = 
  ClassificationDiscriminant
                         ResponseName: 'Y'
                CategoricalPredictors: []
                           ClassNames: {'setosa'  'versicolor'  'virginica'}
                       ScoreTransform: 'none'
                      NumObservations: 150
    HyperparameterOptimizationResults: [1x1 BayesianOptimization]
                          DiscrimType: 'linear'
                                   Mu: [3x4 double]
                               Coeffs: [3x3 struct]


  Properties, Methods

このあてはめでは、既定の 5 分割交差検証について損失が約 2% になりました。

この例では、tall 配列を使用する判別分析モデルのハイパーパラメーターを自動的に最適化する方法を示します。標本データセット airlinesmall.csv は、飛行機のフライト データについての表形式ファイルが含まれている大規模なデータセットです。この例では、データが含まれている tall table を作成して、最適化手順を実行するために使用します。

データがあるフォルダーの場所を参照するデータストアを作成します。処理する変数のサブセットを選択します。datastoreNaN 値に置き換えるため、'NA' 値を欠損データとして扱います。データストア内のデータを含む tall table を作成します。

ds = datastore('airlinesmall.csv');
ds.SelectedVariableNames = {'Month','DayofMonth','DayOfWeek',...
                            'DepTime','ArrDelay','Distance','DepDelay'};
ds.TreatAsMissing = 'NA';
tt  = tall(ds) % Tall table
tt =

  M×7 tall table

    Month    DayofMonth    DayOfWeek    DepTime    ArrDelay    Distance    DepDelay
    _____    __________    _________    _______    ________    ________    ________

     10          21            3          642          8         308          12   
     10          26            1         1021          8         296           1   
     10          23            5         2055         21         480          20   
     10          23            5         1332         13         296          12   
     10          22            4          629          4         373          -1   
     10          28            3         1446         59         308          63   
     10           8            4          928          3         447          -2   
     10          10            6          859         11         954          -1   
      :          :             :           :          :           :           :
      :          :             :           :          :           :           :

tall 配列の計算を実行する場合、既定の実行環境ではローカルの MATLAB セッションまたは (Parallel Computing Toolbox™ がある場合は) ローカルの並列プールが使用されます。関数 mapreducer を使用して実行環境を変更できます。

フライトが遅れた場合に真になる論理変数を定義することにより、10 分以上遅れたフライトを判別します。この変数にクラス ラベルを含めます。この変数のプレビューには、はじめの数行が含まれています。

Y = tt.DepDelay > 10 % Class labels
Y =

  M×1 tall logical array

   1
   0
   1
   1
   0
   1
   0
   0
   :
   :

予測子データの tall 配列を作成します。

X = tt{:,1:end-1} % Predictor data
X =

  M×6 tall double matrix

          10          21           3         642           8         308
          10          26           1        1021           8         296
          10          23           5        2055          21         480
          10          23           5        1332          13         296
          10          22           4         629           4         373
          10          28           3        1446          59         308
          10           8           4         928           3         447
          10          10           6         859          11         954
          :           :            :          :           :           :
          :           :            :          :           :           :

欠損データが含まれている X および Y の行を削除します。

R = rmmissing([X Y]); % Data with missing entries removed
X = R(:,1:end-1); 
Y = R(:,end); 

予測子変数を標準化します。

Z = zscore(X);

名前と値のペアの引数 'OptimizeHyperparameters' を使用して、自動的にハイパーパラメーターを最適化します。ホールドアウト交差検証損失が最小になる最適な 'DiscrimType' の値を求めます ('auto' を指定すると 'DiscrimType' が使用されます)。再現性を得るために、tall 配列の乱数シードを設定し、'expected-improvement-plus' の獲得関数を使用します。

rng('default') % For reproducibility
[Mdl,FitInfo,HyperparameterOptimizationResults] = fitcdiscr(Z,Y,...
    'OptimizeHyperparameters','auto',...
    'HyperparameterOptimizationOptions',struct('Holdout',0.3,...
    'AcquisitionFunctionName','expected-improvement-plus'))

Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 3: Completed in 0.81 sec
- Pass 2 of 3: Completed in 0.92 sec
- Pass 3 of 3: Completed in 1.9 sec
Evaluation completed in 5.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.8 sec
Evaluation completed in 1.9 sec
|======================================================================================|
| Iter | Eval   | Objective   | Objective   | BestSoFar   | BestSoFar   |  DiscrimType |
|      | result |             | runtime     | (observed)  | (estim.)    |              |
|======================================================================================|
|    1 | Best   |     0.11389 |      12.875 |     0.11389 |     0.11389 |    quadratic |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.8 sec
Evaluation completed in 2.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 1.9 sec
|    2 | Accept |     0.11389 |       8.694 |     0.11389 |     0.11389 | pseudoQuadra |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.3 sec
Evaluation completed in 2.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.8 sec
Evaluation completed in 2 sec
|    3 | Accept |     0.12886 |      8.6973 |     0.11389 |     0.11888 | pseudoLinear |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 2.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 1.9 sec
|    4 | Accept |     0.12768 |      8.5794 |     0.11389 |     0.12108 |   diagLinear |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.8 sec
Evaluation completed in 2.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 1.9 sec
|    5 | Accept |     0.12886 |      8.8975 |     0.11389 |     0.12263 |       linear |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 2.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 1.9 sec
|    6 | Best   |     0.11348 |      8.4306 |     0.11348 |     0.12111 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.8 sec
Evaluation completed in 2.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 1.9 sec
|    7 | Accept |     0.11348 |      8.4227 |     0.11348 |     0.11348 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 2.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 1.8 sec
|    8 | Accept |     0.11348 |      8.4649 |     0.11348 |     0.11348 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 2.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 1.9 sec
|    9 | Accept |     0.11348 |      8.3351 |     0.11348 |     0.11348 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.8 sec
Evaluation completed in 2.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 1.9 sec
|   10 | Accept |     0.11348 |      8.3894 |     0.11348 |     0.11348 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.8 sec
Evaluation completed in 2.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 1.9 sec
|   11 | Accept |     0.11348 |      8.6772 |     0.11348 |     0.11348 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.8 sec
Evaluation completed in 2.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 1.9 sec
|   12 | Accept |     0.11348 |      8.6703 |     0.11348 |     0.11348 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.8 sec
Evaluation completed in 2.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.8 sec
Evaluation completed in 2 sec
|   13 | Accept |     0.11348 |      8.7461 |     0.11348 |     0.11348 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.8 sec
Evaluation completed in 2.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 1.9 sec
|   14 | Accept |     0.11348 |      8.7499 |     0.11348 |     0.11348 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.8 sec
Evaluation completed in 2.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 1.9 sec
|   15 | Accept |     0.11348 |      8.4213 |     0.11348 |     0.11348 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 2.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 1.9 sec
|   16 | Accept |     0.11348 |      8.4668 |     0.11348 |     0.11348 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 2.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 1.9 sec
|   17 | Accept |     0.11348 |      8.5569 |     0.11348 |     0.11348 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.8 sec
Evaluation completed in 2.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 1.9 sec
|   18 | Accept |     0.11348 |      8.5857 |     0.11348 |     0.11348 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 2.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 1.9 sec
|   19 | Accept |     0.11348 |      8.4792 |     0.11348 |     0.11348 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 2.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 1.9 sec
|   20 | Accept |     0.11348 |      8.4806 |     0.11348 |     0.11348 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.8 sec
Evaluation completed in 2.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 1.9 sec
|======================================================================================|
| Iter | Eval   | Objective   | Objective   | BestSoFar   | BestSoFar   |  DiscrimType |
|      | result |             | runtime     | (observed)  | (estim.)    |              |
|======================================================================================|
|   21 | Accept |     0.11348 |      8.5015 |     0.11348 |     0.11348 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.8 sec
Evaluation completed in 2.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 1.9 sec
|   22 | Accept |     0.11389 |      8.3472 |     0.11348 |     0.11348 |    quadratic |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 2.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 1.9 sec
|   23 | Accept |     0.11389 |      8.3919 |     0.11348 |     0.11348 | pseudoQuadra |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.3 sec
Evaluation completed in 2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 1.9 sec
|   24 | Accept |     0.11348 |      7.7406 |     0.11348 |     0.11348 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.8 sec
Evaluation completed in 2.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 1.9 sec
|   25 | Accept |     0.11389 |        8.48 |     0.11348 |     0.11348 | pseudoQuadra |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 2.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 1.9 sec
|   26 | Accept |     0.11348 |      8.4785 |     0.11348 |     0.11348 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.8 sec
Evaluation completed in 2.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 1.9 sec
|   27 | Accept |     0.11348 |      8.4486 |     0.11348 |     0.11348 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.8 sec
Evaluation completed in 2.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 1.9 sec
|   28 | Accept |     0.11389 |       8.545 |     0.11348 |     0.11348 |    quadratic |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 2.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 1.9 sec
|   29 | Accept |     0.11348 |       8.243 |     0.11348 |     0.11348 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.8 sec
Evaluation completed in 2.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.7 sec
Evaluation completed in 1.9 sec
|   30 | Accept |     0.11348 |      8.3413 |     0.11348 |     0.11348 | diagQuadrati |

__________________________________________________________
Optimization completed.
MaxObjectiveEvaluations of 30 reached.
Total function evaluations: 30
Total elapsed time: 293.7336 seconds.
Total objective function evaluation time: 259.1373

Best observed feasible point:
     DiscrimType 
    _____________

    diagQuadratic

Observed objective function value = 0.11348
Estimated objective function value = 0.11348
Function evaluation time = 8.4306

Best estimated feasible point (according to models):
     DiscrimType 
    _____________

    diagQuadratic

Estimated objective function value = 0.11348
Estimated function evaluation time = 8.5034

Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.1 sec
Evaluation completed in 2 sec
Mdl = 
  classreg.learning.classif.CompactClassificationDiscriminant
           PredictorNames: {'x1'  'x2'  'x3'  'x4'  'x5'  'x6'}
             ResponseName: 'Y'
    CategoricalPredictors: []
               ClassNames: [0 1]
           ScoreTransform: 'none'
              DiscrimType: 'diagQuadratic'
                       Mu: [2×6 double]
                   Coeffs: [2×2 struct]


  Properties, Methods

FitInfo = struct with no fields.


HyperparameterOptimizationResults = 
  BayesianOptimization with properties:

                      ObjectiveFcn: @createObjFcn/tallObjFcn
              VariableDescriptions: [1×1 optimizableVariable]
                           Options: [1×1 struct]
                      MinObjective: 0.1135
                   XAtMinObjective: [1×1 table]
             MinEstimatedObjective: 0.1135
          XAtMinEstimatedObjective: [1×1 table]
           NumObjectiveEvaluations: 30
                  TotalElapsedTime: 293.7336
                         NextPoint: [1×1 table]
                            XTrace: [30×1 table]
                    ObjectiveTrace: [30×1 double]
                  ConstraintsTrace: []
                     UserDataTrace: {30×1 cell}
      ObjectiveEvaluationTimeTrace: [30×1 double]
                IterationTimeTrace: [30×1 double]
                        ErrorTrace: [30×1 double]
                  FeasibilityTrace: [30×1 logical]
       FeasibilityProbabilityTrace: [30×1 double]
               IndexOfMinimumTrace: [30×1 double]
             ObjectiveMinimumTrace: [30×1 double]
    EstimatedObjectiveMinimumTrace: [30×1 double]

入力引数

すべて折りたたむ

モデルを学習させるために使用する標本データ。テーブルとして指定します。Tbl の各行は 1 つの観測値に、各列は 1 つの予測子変数に対応します。オプションとして、Tbl に応答変数用の列を 1 つ追加できます。文字ベクトルの cell 配列ではない cell 配列と複数列の変数は使用できません。

Tbl に応答変数が含まれている場合に Tbl 内の他の変数をすべて予測子として使用するには、ResponseVarName を使用して応答変数を指定します。

Tbl に応答変数が含まれている場合に Tbl 内の他の変数の一部のみを予測子として使用するには、formula を使用して式を指定します。

Tbl に応答変数が含まれていない場合は、Y を使用して応答変数を指定します。応答変数の長さと Tbl の行数は等しくなければなりません。

データ型: テーブル

応答変数の名前。Tbl 内の変数の名前で指定します。

ResponseVarName には文字ベクトルまたは string スカラーを指定しなければなりません。たとえば、応答変数 YTbl.Y として格納されている場合、'Y' として指定します。それ以外の場合、モデルを学習させるときに、Tbl の列は Y を含めてすべて予測子として扱われます。

応答変数は、categorical 配列、文字配列、string 配列、logical ベクトル、数値ベクトル、または文字ベクトルの cell 配列でなければなりません。Y が文字配列である場合、応答変数の各要素は配列の 1 つの行に対応しなければなりません。

名前と値のペアの引数 ClassNames を使用してクラスの順序を指定することをお勧めします。

データ型: char | string

予測子変数のサブセットおよび応答の説明モデル。'Y~X1+X2+X3' という形式の文字ベクトルまたは string スカラーを指定します。この式では、Y は応答変数を、X1X2 および X3 は予測子変数を表します。変数は、Tbl (Tbl.Properties.VariableNames) に含まれている変数の名前でなければなりません。

モデルに学習をさせるための予測子として Tbl 内の変数のサブセットを指定するには、式を使用します。式を指定した場合、formula に現れない Tbl 内の変数は使用されません。

データ型: char | string

クラス ラベル。categorical 配列、文字配列、string 配列、logical ベクトル、数値ベクトル、または文字ベクトルの cell 配列を指定します。Y の各行は、X の対応する行の分類を表します。

Y 内の NaN'' (空の文字ベクトル)、"" (空の string)、<missing>、および <undefined> 値は欠損値と見なされます。このため、欠損応答がある観測値は学習に使用されません。

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

予測子の値。数値行列として指定します。X の各列が 1 つの変数を表し、各行が 1 つの観測値を表します。

fitcdiscrXNaN 値を欠損値として認識します。fitcdiscr は、X の近似において、欠損値のある観測値を使用しません。

データ型: single | double

名前と値のペアの引数

オプションの引数 Name,Value のコンマ区切りペアを指定します。Name は引数名で、Value は対応する値です。Name は引用符で閉じなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。

例: 'DiscrimType','quadratic','SaveMemory','on' は 2 次判別分類器を指定しますが、共分散行列は出力オブジェクトに格納されません。

メモ

交差検証の名前と値のペアの引数を名前と値のペアの引数 'OptimizeHyperparameters' と同時に使用することはできません。'OptimizeHyperparameters' の場合の交差検証は、名前と値のペアの引数 'HyperparameterOptimizationOptions' を使用することのみによって変更できます。

モデル パラメーター

すべて折りたたむ

学習に使用するクラスの名前。'ClassNames' と categorical 配列、文字配列、string 配列、logical ベクトル、数値ベクトル、または文字ベクトルの cell 配列から構成されるコンマ区切りのペアとして指定します。ClassNames のデータ型は Y と同じでなければなりません。

ClassNames が文字配列の場合、各要素は配列の 1 つの "行" に対応しなければなりません。

ClassNames の使用目的は次のとおりです。

  • 学習時のクラスの順序を指定する。

  • クラスの順序に対応する入力または出力引数の次元の順序を指定する。たとえば、Cost の次元の順序や predict によって返される分類スコアの列の順序を指定するために ClassNames を使用します。

  • 学習用にクラスのサブセットを選択する。たとえば、Y に含まれているすべての異なるクラス名の集合が {'a','b','c'} であるとします。クラス 'a' および 'c' のみの観測値を使用してモデルに学習をさせるには、'ClassNames',{'a','c'} を指定します。

ClassNames の既定値は、Y に含まれているすべての異なるクラス名の集合です。

例: 'ClassNames',{'b','g'}

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

点の誤分類のコスト。'Cost' と以下のいずれかで構成されるコンマ区切りペアとして指定されます。

  • 正方行列。Cost(i,j) は真のクラスが i である場合に 1 つの点をクラス j に分類するためのコストです (行は真のクラス、列は予測したクラスに対応します)。Cost の対応する行および列についてクラスの順序を指定するには、名前と値のペアの引数 ClassNames をさらに指定します。

  • 2 つのフィールドをもつ S を構成します。2 つのフィールドは、Y と同じ型のグループ名を表す変数が格納されている S.ClassNames と、コスト行列が格納されている S.ClassificationCosts です。

既定値は、i~=j の場合は Cost(i,j)=1i=j の場合は Cost(i,j)=0 です。

データ型: single | double | 構造体

Coeffs プロパティ フラグ。'FillCoeffs''on' または 'off' で構成されるコンマ区切りのペアとして指定します。このフラグを 'on' に設定すると Coeffs プロパティが分類器オブジェクトに埋め込まれます。これにより計算量が増加する可能性があります (特に交差検証時)。既定値は 'on' です。ただし、交差検証の名前と値のペアを指定した場合は、このフラグの既定値は 'off' になります。

例: 'FillCoeffs','off'

予測子変数名。'PredictorNames' と一意な名前の string 配列または一意な文字ベクトルの cell 配列から構成されるコンマ区切りのペアとして指定します。'PredictorNames' の機能は、学習データの提供方法によって決まります。

  • XY を指定した場合、'PredictorNames' を使用して X の名前で予測子変数を指定できます。

    • PredictorNames 内の名前の順序は、X の列の順序に一致しなければなりません。つまり、PredictorNames{1}X(:,1) の名前、PredictorNames{2}X(:,2) の名前であり、他も同様です。また、size(X,2)numel(PredictorNames) は等しくなければなりません。

    • 既定では PredictorNames{'x1','x2',...} です。

  • Tbl が与えられた場合、'PredictorNames' を使用して学習に使用する予測子変数を選択できます。つまり、fitcdiscrPredictorNames の予測子変数と応答変数のみを学習で使用します。

    • PredictorNamesTbl.Properties.VariableNames のサブセットでなければならず、応答変数の名前を含めることはできません。

    • 既定では、すべての予測子変数の名前が PredictorNames に格納されます。

    • 'PredictorNames'formula のいずれか一方のみを使用して学習用の予測子を指定することをお勧めします。

例: 'PredictorNames',{'SepalLength','SepalWidth','PetalLength','PetalWidth'}

データ型: string | cell

各クラスの事前確率。'Prior' と次の表の値から構成されるコンマ区切りのペアとして指定します。

説明
'empirical'クラスの事前確率は、Y のクラスの相対的頻度です。
'uniform'クラスの事前確率はいずれも 1/K (K はクラス数) となります。
数値ベクトル各要素はクラスの事前確率です。Mdl.ClassNames に従って要素を並べ替えるか、ClassNames 名前と値のペアの引数を使用して順序を指定します。要素は合計が 1 になるように正規化されます。
構造体

構造体 S には 2 つのフィールドがあります。

  • S.ClassNames: Y と同じ型の変数のクラス名が格納されます。

  • S.ClassProbs: 対応する事前確率のベクトルが格納されます。要素は合計が 1 になるように正規化されます。

WeightsPrior の両方に値を設定した場合は、重みは再正規化され、それぞれのクラスの事前確率の値に加算されます。

例: 'Prior','uniform'

データ型: char | string | single | double | 構造体

応答変数名。'ResponseName' と文字ベクトルまたは string スカラーから構成されるコンマ区切りのペアとして指定します。

  • Y を指定した場合、'ResponseName' を使用して応答変数の名前を指定できます。

  • ResponseVarName または formula を指定した場合、'ResponseName' を使用することはできません。

例: 'ResponseName','response'

データ型: char | string

共分散行列を保存するためのフラグ。'SaveMemory''on' または 'off' のいずれかで構成されるコンマ区切りのペアとして指定します。'on' を指定した場合、fitcdiscr にはフルの共分散行列ではなく、行列を計算するために十分な情報が格納されます。predict メソッドは予測のためにフルの共分散行列を計算し、行列は格納しません。'off' を指定すると、fitcdiscr はフルの共分散行列を計算し、Mdl に格納します。

入力行列に数千個もの予測子がある場合は、SaveMemory'on' に設定します。

例: 'SaveMemory','on'

スコア変換。'ScoreTransform' と文字ベクトル、string スカラー、または関数ハンドルから構成されるコンマ区切りのペアとして指定します。

次の表は、使用可能な文字ベクトルおよび string スカラーをまとめています。

説明
'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® 関数またはユーザー定義関数の場合は、スコア変換用の関数ハンドルを使用します。関数ハンドルは、行列 (元のスコア) を受け入れて同じサイズの行列 (変換したスコア) を返さなければなりません。

例: 'ScoreTransform','logit'

データ型: char | string | 関数ハンドル

観測値の重み。'Weights' と、正の値の数値ベクトルまたは Tbl 内の変数の名前から構成されるコンマ区切りのペアとして指定します。X または Tbl の各行に含まれている観測値は、Weights の対応する値で重み付けされます。Weights のサイズは、X または Tbl の行数と等しくなければなりません。

入力データをテーブル Tbl として指定した場合、Weights は数値ベクトルが含まれている Tbl 内の変数の名前にすることができます。この場合、Weights には文字ベクトルまたは string スカラーを指定しなければなりません。たとえば、重みベクトル WTbl.W として格納されている場合、'W' として指定します。それ以外の場合、モデルに学習をさせるときに、Tbl の列は W を含めてすべて予測子または応答として扱われます。

合計が各クラスの事前確率の値と等しくなるように Weights が正規化されます。

既定の設定では、Weightsones(n,1) です。nX または Tbl の観測値数です。

データ型: double | single | char | string

交差検証

すべて折りたたむ

交差検証フラグ。'Crossval''on' または 'off' から構成されるコンマ区切りのペアとして指定します。

'on' を指定した場合、10 分割の交差検証が実施されます。

この交差検証の設定をオーバーライドするには、名前と値のペアの引数 CVPartitionHoldoutKFoldLeaveout のいずれかを使用します。交差検証済みモデルを作成するために使用できる交差検証の名前と値のペアの引数は、一度に 1 つだけです。

または、後で Mdlcrossval に渡して交差検証を実行します。

例: 'CrossVal','on'

交差検証分割。'CVPartition'cvpartition により作成された cvpartition 分割オブジェクトで構成されるコンマ区切りのペアとして指定します。分割オブジェクトは、交差検証のタイプと、学習セットおよび検証セットのインデックス付けを指定します。

交差検証済みモデルの作成に使用できる名前と値のペアの引数は、'CVPartition''Holdout''KFold''Leaveout' の 4 つのうちのいずれかのみです。

例: cvp = cvpartition(500,'KFold',5) を使用して、500 個の観測値に対する 5 分割交差検証について無作為な分割を作成するとします。この場合、'CVPartition',cvp を使用して交差検証済みモデルを指定できます。

ホールドアウト検定に使用されるデータの比率。'Holdout' と範囲 (0,1) のスカラー値から構成されるコンマ区切りのペアとして指定します。'Holdout',p を指定した場合、以下の手順が実行されます。

  1. p*100% のデータを無作為に選択して検証データとして確保し、残りのデータを使用してモデルに学習をさせる。

  2. コンパクトな学習済みモデルを交差検証済みモデルの Trained プロパティに格納する。

交差検証済みモデルの作成に使用できる名前と値のペアの引数は、CVPartitionHoldoutKFoldLeaveout の 4 つのうちのいずれかのみです。

例: 'Holdout',0.1

データ型: double | single

交差検証済みモデルで使用する分割数。'KFold' と 1 より大きい正の整数から構成されるコンマ区切りのペアとして指定します。'KFold',k を指定した場合、以下の手順が実行されます。

  1. データを無作為に k 個のセットに分割する。

  2. 各セットについて、そのセットを検定データとして確保し、他の k - 1 個のセットを使用してモデルに学習をさせる。

  3. k 個のコンパクトな学習済みモデルを、交差検証済みモデルの Trained プロパティに含まれている k 行 1 列の cell ベクトルのセルに格納する。

交差検証済みモデルの作成に使用できる名前と値のペアの引数は、CVPartitionHoldoutKFoldLeaveout の 4 つのうちのいずれかのみです。

例: 'KFold',5

データ型: single | double

Leave-one-out 法の交差検証のフラグ。'Leaveout''on' または 'off' で構成されるコンマ区切りのペアとして指定します。'Leaveout','on' を指定した場合、n 個の観測値 (n は、モデルの NumObservations プロパティで指定される、欠損観測値を除外した観測値の個数) のそれぞれについて以下の手順が実行されます。

  1. その観測値を検証データとして確保し、他の n - 1 個の観測値を使用してモデルに学習をさせる。

  2. n 個のコンパクトな学習済みモデルを、交差検証済みモデルの Trained プロパティに含まれている n 行 1 列の cell ベクトルのセルに格納する。

交差検証済みモデルの作成に使用できる名前と値のペアの引数は、CVPartitionHoldoutKFoldLeaveout の 4 つのうちのいずれかのみです。

例: 'Leaveout','on'

ハイパーパラメーターの最適化

すべて折りたたむ

線形係数のしきい値。'Delta' と非負のスカラー値で構成されるコンマ区切りのペアとして指定します。Mdl の係数の大きさが Delta よりも小さい場合、Mdl はこの係数を 0 に設定します。また、対応する予測子をモデルから削除できます。Delta を高い値に設定すると、削除できる予測子が多くなります。

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

データ型: single | double

判別タイプ。'DiscrimType' と次の表の文字ベクトルまたは string スカラーから構成されるコンマ区切りのペアとして指定します。

説明予測子の共分散の処理
'linear'正則化された線形判別分析 (LDA)
  • すべてのクラスで同じ共分散行列になります。

  • Σ^γ=(1γ)Σ^+γdiag(Σ^).

    Σ^ は経験的なプールされた共分散行列、γ は正則化の量です。

'diaglinear'LDAすべてのクラスで同じ対角共分散行列になります。
'pseudolinear'LDAすべてのクラスで同じ共分散行列になります。共分散行列の逆行列には疑似逆行列が使用されます。
'quadratic'2 次判別分析 (QDA)共分散行列はクラスによって異なる可能性があります。
'diagquadratic'QDA共分散行列は対角行列になり、クラスによって異なる可能性があります。
'pseudoquadratic'QDA共分散行列はクラスによって異なる可能性があります。共分散行列の逆行列には疑似逆行列が使用されます。

メモ

正則化を使用するには、'linear' を指定しなければなりません。正則化の量を指定するには、名前と値のペアの引数 Gamma を使用します。

例: 'DiscrimType','quadratic'

予測子の共分散行列を推定するときに適用する正則化の量。'Gamma' と区間 [0,1] にあるスカラー値から構成されるコンマ区切りのペアとして指定します。Gamma を使用すると、共分散行列の構造を DiscrimType より細かく調節できます。

  • 0 を指定した場合、正則化を使用する共分散行列の調整は行われません。つまり、制限がない経験的な共分散行列が推定および使用されます。

    • 線形判別分析では、経験的な共分散行列が特異である場合、共分散行列の逆行列を計算するために必要な最小の正則化が自動的に適用されます。選択された正則化の量は、コマンド ラインで Mdl.Gamma と入力することにより表示できます。

    • 2 次判別分析では、特異である経験的共分散行列が少なくとも 1 つのクラスにある場合、エラーがスローされます。

  • 区間 (0,1) にある値を指定した場合、線形判別分析を実装しなければなりません。そうしないとエラーがスローされます。この結果、DiscrimType'linear' に設定されます。

  • 1 を指定した場合、最大の正則化が共分散行列の推定に使用されます。つまり、共分散行列は対角行列に制限されます。または、対角共分散行列にするため、DiscrimType'diagLinear' または 'diagQuadratic' に設定できます。

例: 'Gamma',1

データ型: single | double

ハイパーパラメーターの最適化

すべて折りたたむ

最適化するパラメーター。'OptimizeHyperparameters' と次のいずれかから構成されるコンマ区切りのペアとして指定します。

  • 'none' — 最適化を行いません。

  • 'auto'{'Delta','Gamma'} を使用します。

  • 'all' — すべての使用可能パラメーターを最適化します。

  • 使用可能パラメーター名の string 配列または cell 配列。

  • optimizableVariable オブジェクトのベクトル。通常は hyperparameters の出力です。

最適化では、パラメーターを変化させることにより、fitcdiscr の交差検証損失 (誤差) を最小化しようとします。(各種の状況における) 交差検証損失の詳細については、分類損失を参照してください。交差検証のタイプおよびその他の最適化の側面を制御するには、名前と値のペア HyperparameterOptimizationOptions を使用します。

メモ

'OptimizeHyperparameters' の値は、他の名前と値のペアの引数を使用して設定した値より優先されます。たとえば、'OptimizeHyperparameters''auto' に設定すると、'auto' の値が適用されます。

fitcdiscr では、以下のパラメーターを使用できます。

  • Deltafitcdiscr は、既定では範囲 [1e-6,1e3] の対数スケールで、正の値を探索します。

  • DiscrimTypefitcdiscr は、'linear''quadratic''diagLinear''diagQuadratic''pseudoLinear' および 'pseudoQuadratic' で探索します。

  • Gammafitcdiscr は範囲 [0,1] の実数値を探索します。

既定以外のパラメーターを設定するには、既定以外の値が含まれている optimizableVariable オブジェクトのベクトルを渡します。例えば、

load fisheriris
params = hyperparameters('fitcdiscr',meas,species);
params(1).Range = [1e-4,1e6];

OptimizeHyperparameters の値として params を渡します。

既定では、コマンド ラインに反復表示が表示され、最適化のハイパーパラメーターの個数に従ってプロットが表示されます。最適化とプロットにおける目的関数は、回帰の場合は log(1 + 交差検証損失)、分類の場合は誤分類率です。反復表示を制御するには、名前と値のペアの引数 'HyperparameterOptimizationOptions'Verbose フィールドを設定します。プロットを制御するには、名前と値のペアの引数 'HyperparameterOptimizationOptions'ShowPlots フィールドを設定します。

例については、判別分析モデルの最適化を参照してください。

例: 'auto'

最適化のオプション。'HyperparameterOptimizationOptions' と構造体から構成されるコンマ区切りのペアとして指定します。この引数を指定すると、名前と値のペアの引数 OptimizeHyperparameters の効果が変化します。この構造体のフィールドは、すべてオプションです。

フィールド名既定の設定
Optimizer
  • 'bayesopt' — ベイズ最適化を使用。内部的には bayesopt が呼び出されます。

  • 'gridsearch' — 次元ごとに NumGridDivisions の値があるグリッド探索を使用。

  • 'randomsearch'MaxObjectiveEvaluations 個の点で無作為に探索。

'gridsearch' では、グリッドからの一様な非復元抽出により、無作為な順序で探索します。最適化後、sortrows(Mdl.HyperparameterOptimizationResults) コマンドを使用してグリッド順のテーブルを取得できます。

'bayesopt'
AcquisitionFunctionName

  • 'expected-improvement-per-second-plus'

  • 'expected-improvement'

  • 'expected-improvement-plus'

  • 'expected-improvement-per-second'

  • 'lower-confidence-bound'

  • 'probability-of-improvement'

詳細については、bayesopt の名前と値のペアの引数 AcquisitionFunctionName または獲得関数のタイプを参照してください。

'expected-improvement-per-second-plus'
MaxObjectiveEvaluations目的関数評価の最大数。'bayesopt' または 'randomsearch' の場合は 30'gridsearch' の場合はグリッド全体
MaxTime

制限時間。正の実数を指定します。制限時間の単位は、tictoc によって測定される秒です。MaxTime は関数評価を中断させないため、実行時間が MaxTime を超える可能性があります。

Inf
NumGridDivisions'gridsearch' における各次元の値の個数。値は、各次元の値の個数を表す正の整数のベクトル、またはすべての次元に適用されるスカラーが可能です。カテゴリカル変数の場合、このフィールドは無視されます。10
ShowPlotsプロットを表示するかどうかを示す論理値。true の場合、最良の目的関数の値が反復回数に対してプロットされます。1 つまたは 2 つの最適化パラメーターがあり、Optimizer'bayesopt' である場合、ShowPlots はパラメーターに対する目的関数のモデルのプロットも行います。true
SaveIntermediateResultsOptimizer'bayesopt' である場合に結果を保存するかどうかを示す論理値。true の場合、'BayesoptResults' という名前のワークスペース変数が反復ごとに上書きされます。この変数は BayesianOptimization オブジェクトです。false
Verbose

コマンド ラインへの表示。

  • 0 — 反復表示なし

  • 1 — 反復表示あり

  • 2 — 追加情報付きで反復表示あり

詳細については、bayesopt の名前と値のペアの引数 Verbose を参照してください。

1
UseParallelベイズ最適化を並列実行するかどうかを示す論理値。並列実行には Parallel Computing Toolbox™ が必要です。詳細については、並列ベイズ最適化を参照してください。false
Repartition

反復ごとに交差検証を再分割するかどうかを示す論理値。false の場合、オプティマイザーは単一の分割を最適化に使用します。

分割ノイズが考慮されるので、通常は true にすると最も確実な結果が得られます。ただし、true で良好な結果を得るには、2 倍以上の関数評価が必要になります。

false
以下の 3 つのフィールド名は 1 つだけ使用できます。
CVPartitioncvpartition によって作成される cvpartition オブジェクト。交差検証フィールドが指定されていない場合 'Kfold',5
Holdoutホールドアウトの比率を表す範囲 (0,1) のスカラー。
Kfold1 より大きい整数。

例: 'HyperparameterOptimizationOptions',struct('MaxObjectiveEvaluations',60)

データ型: 構造体

出力引数

すべて折りたたむ

学習済みの判別分析分類モデル。ClassificationDiscriminant モデル オブジェクトまたは ClassificationPartitionedModel 交差検証済みモデル オブジェクトとして返されます。

名前と値のペアの引数 KFoldHoldoutCrossValCVPartition のいずれかを設定した場合、MdlClassificationPartitionedModel 交差検証済みモデル オブジェクトになります。それ以外の場合、MdlClassificationDiscriminant モデル オブジェクトになります。

Mdl のプロパティを参照するには、ドット表記を使用します。たとえば、コマンド ウィンドウで推定成分平均を表示するには、Mdl.Mu を入力します。

詳細

すべて折りたたむ

判別分類

判別分析のモデルは次のとおりです。

  • 各クラス (Y) では、多変量正規分布を使用してデータ (X) を生成します。つまり、このモデルは X に混合ガウス分布 (gmdistribution) があることを前提としています。

    • 線形判別分析の場合、モデルでは各クラスの共分散は同じで、平均のみ変わります。

    • 2 次判別分析の場合、各クラスの平均と共分散の両方が異なります。

predict は、予測される分類コストが最小になるように分類します。

y^=argminy=1,...,Kk=1KP^(k|x)C(y|k),

ここで、

  • y^ は、予測された分類です。

  • K は、クラスの数です。

  • P^(k|x) は、観測値 x のクラス k の事後確率です。

  • C(y|k) は、真のクラスが k の場合に観測値を y として分類するコストです。

詳細については、判別分析モデルの使用による予測を参照してください。

ヒント

モデルに学習をさせた後で、新しいデータについてラベルを予測する C/C++ コードを生成できます。C/C++ コードの生成には MATLAB Coder™ が必要です。詳細については、コード生成の紹介を参照してください。

代替機能

関数

関数 classify も判別分析を実行します。通常、classify のほうが、以下の点で使い方が複雑な関数です。

  • classify では、新しい予測を実行するたびに、分類器を近似しなくてはなりません。

  • classify は、交差検証もハイパーパラメーターの最適化も実行しません。

  • classify では、事前確率を変更するときに、分類器を近似しなくてはなりません。

拡張機能

R2014a で導入