ClassificationNeuralNetwork
説明
ClassificationNeuralNetwork
オブジェクトは、分類用の全結合の学習済みフィードフォワード ニューラル ネットワークです。ニューラル ネットワークの最初の全結合層にはネットワーク入力 (予測子データ X
) からの結合があり、後続の各層には前の層からの結合があります。各全結合層では、入力に重み行列 (LayerWeights
) が乗算されてからバイアス ベクトル (LayerBiases
) が加算されます。各全結合層の後には活性化関数 (Activations
および OutputLayerActivation
) が続きます。最終全結合層とそれに続くソフトマックス活性化関数によってネットワークの出力、つまり分類スコア (事後確率) および予測ラベルが生成されます。詳細については、ニューラル ネットワークの構造を参照してください。
作成
ClassificationNeuralNetwork
オブジェクトの作成には fitcnet
を使用します。
プロパティ
ニューラル ネットワークのプロパティ
LayerSizes
— 全結合層のサイズ
正の整数ベクトル
この プロパティ は読み取り専用です。
ニューラル ネットワーク モデル内の全結合層のサイズ。正の整数ベクトルとして返されます。LayerSizes
の i 番目の要素は、ニューラル ネットワーク モデルの i 番目の全結合層の出力数です。
LayerSizes
には最終全結合層のサイズは含まれません。この層の出力数は常に K で、K は Y
内のクラス数です。
データ型: single
| double
LayerWeights
— 学習済みの層の重み
cell 配列
この プロパティ は読み取り専用です。
全結合層の学習済みの層の重み。cell 配列として返されます。cell 配列内の i 番目のエントリは、i 番目の全結合層の層の重みに対応します。たとえば、Mdl.LayerWeights{1}
は、モデル Mdl
の最初の全結合層についての重みを返します。
LayerWeights
には最終全結合層の重みが含まれます。
データ型: cell
LayerBiases
— 学習済みの層のバイアス
cell 配列
この プロパティ は読み取り専用です。
全結合層の学習済みの層のバイアス。cell 配列として返されます。cell 配列内の i 番目のエントリは、i 番目の全結合層の層のバイアスに対応します。たとえば、Mdl.LayerBiases{1}
は、モデル Mdl
の最初の全結合層についてのバイアスを返します。
LayerBiases
には最終全結合層のバイアスが含まれます。
データ型: cell
Activations
— 全結合層の活性化関数
'relu'
| 'tanh'
| 'sigmoid'
| 'none'
| 文字ベクトルの cell 配列
この プロパティ は読み取り専用です。
ニューラル ネットワーク モデルの全結合層の活性化関数。次の表の値をもつ文字ベクトルまたは文字ベクトルの cell 配列として返されます。
値 | 説明 |
---|---|
'relu' | 正規化線形ユニット (ReLU) 関数 — 各入力要素に対して、0 より小さい値については 0 に設定するという次のしきい値演算を実行します。 |
'tanh' | 双曲線正接 (tanh) 関数 — 各入力要素に関数 |
'sigmoid' | シグモイド関数 — 各入力要素に対して次の演算を実行します。 |
'none' | 恒等関数 — 変換を実行せずに、各入力要素を次のようにそのまま返します。f(x) = x |
Activations
に活性化関数が 1 つだけ含まれている場合は、ニューラル ネットワーク モデルの最終全結合層を除くすべての全結合層の活性化関数になります。最終全結合層の活性化関数は常にソフトマックス (OutputLayerActivation
) です。Activations
が活性化関数の配列の場合は、i 番目の要素がニューラル ネットワーク モデルの i 番目の層の活性化関数になります。
データ型: char
| cell
OutputLayerActivation
— 最終全結合層の活性化関数
'softmax'
この プロパティ は読み取り専用です。
最終全結合層の活性化関数。'softmax'
として返されます。関数は入力 xi を取り、各入力について次を返します。K は応答変数内のクラスの数です。
結果は予測分類スコア (または事後確率) に対応します。
ModelParameters
— モデルの学習に使用されるパラメーター値
NeuralNetworkParams
オブジェクト
この プロパティ は読み取り専用です。
ClassificationNeuralNetwork
モデルの学習に使用されたパラメーター値。NeuralNetworkParams
オブジェクトとして返されます。ModelParameters
には、ニューラル ネットワーク分類器の学習に使用された名前と値の引数などのパラメーター値が格納されます。
ModelParameters
のプロパティにアクセスするには、ドット表記を使用します。たとえば、モデル Mdl
の全結合層の重みの初期化に使用する関数にアクセスするには Mdl.ModelParameters.LayerWeightsInitializer
を使用します。
収束制御のプロパティ
ConvergenceInfo
— 収束情報
構造体配列
この プロパティ は読み取り専用です。
収束情報。構造体配列として返されます。
フィールド | 説明 |
---|---|
Iterations | ニューラル ネットワーク モデルの学習に使用された学習反復の数 |
TrainingLoss | 返されたモデルの学習クロスエントロピー損失 (モデル Mdl の resubLoss(Mdl,'LossFun','crossentropy') ) |
Gradient | 返されたモデルに対応する反復における重みとバイアスに関する損失関数の勾配 |
Step | 返されたモデルに対応する反復におけるステップ サイズ |
Time | すべての反復に費やした合計時間 (秒) |
ValidationLoss | 返されたモデルの検証クロスエントロピー損失 |
ValidationChecks | 検証損失が連続で検証損失の最小値以上になった最大回数 |
ConvergenceCriterion | 収束の基準 |
History | TrainingHistory を参照 |
データ型: struct
TrainingHistory
— 学習履歴
テーブル
この プロパティ は読み取り専用です。
学習履歴。table として返されます。
列 | 説明 |
---|---|
Iteration | 学習反復 |
TrainingLoss | この反復におけるモデルの学習クロスエントロピー損失 |
Gradient | この反復における重みとバイアスに関する損失関数の勾配 |
Step | この反復におけるステップ サイズ |
Time | この反復に費やした時間 (秒) |
ValidationLoss | この反復におけるモデルの検証クロスエントロピー損失 |
ValidationChecks | 検証損失が連続で検証損失の最小値以上になっている現在までの回数 |
データ型: table
Solver
— ニューラル ネットワーク モデルの学習に使用されたソルバー
'LBFGS'
この プロパティ は読み取り専用です。
ニューラル ネットワーク モデルの学習に使用されたソルバー。'LBFGS'
として返されます。fitcnet
による ClassificationNeuralNetwork
モデルの作成では、メモリ制限 Broyden-Fletcher-Goldfarb-Shanno 準ニュートン アルゴリズム (LBFGS) が損失関数の最小化手法として使用され、クロスエントロピー損失が最小化されます。
予測子のプロパティ
PredictorNames
— 予測子変数名
文字ベクトルの cell 配列
この プロパティ は読み取り専用です。
予測子変数名。文字ベクトルの cell 配列として返されます。PredictorNames
の要素の順序は、予測子名が学習データに現れる順序に対応します。
データ型: cell
CategoricalPredictors
— カテゴリカル予測子のインデックス
正の整数のベクトル | []
この プロパティ は読み取り専用です。
カテゴリカル予測子のインデックス。正の整数のベクトルとして返されます。予測子データの行に観測値が含まれていると仮定すると、CategoricalPredictors
には、カテゴリカル予測子が含まれている予測子データの列に対応するインデックス値が格納されます。どの予測子もカテゴリカルではない場合、このプロパティは空 ([]
) になります。
データ型: double
ExpandedPredictorNames
— 展開された予測子名
文字ベクトルの cell 配列
この プロパティ は読み取り専用です。
展開された予測子名。文字ベクトルの cell 配列として返されます。モデルがカテゴリカル変数用のエンコーディングを使用している場合、ExpandedPredictorNames
には展開された変数を表す名前が格納されます。それ以外の場合、ExpandedPredictorNames
は PredictorNames
と同じです。
データ型: cell
X
— 標準化されていない予測子
数値行列 | テーブル
この プロパティ は読み取り専用です。
ニューラル ネットワーク モデルの学習に使用された標準化されていない予測子。数値行列または table として返されます。X
では、fitcnet
を呼び出したときの名前と値の引数 ObservationsIn
の値に応じて、元の向きで行または列に観測値が格納されます。
データ型: single
| double
| table
応答のプロパティ
ClassNames
— 一意のクラス名
数値ベクトル | categorical ベクトル | logical ベクトル | 文字配列 | 文字ベクトルの cell 配列
この プロパティ は読み取り専用です。
学習に使用された一意のクラス名。数値ベクトル、categorical ベクトル、logical ベクトル、文字配列、または文字ベクトルの cell 配列として返されます。ClassNames
のデータ型はクラス ラベル Y
と同じです。(string 配列は文字ベクトルの cell 配列として扱われます)。ClassNames
はクラスの順序も決定します。
データ型: single
| double
| categorical
| logical
| char
| cell
ResponseName
— 応答変数名
文字ベクトル
この プロパティ は読み取り専用です。
応答変数名。文字ベクトルとして返されます。
データ型: char
Y
— クラス ラベル
数値ベクトル | categorical ベクトル | logical ベクトル | 文字配列 | 文字ベクトルの cell 配列
この プロパティ は読み取り専用です。
モデルの学習に使用されたクラス ラベル。数値ベクトル、categorical ベクトル、logical ベクトル、文字配列、または文字ベクトルの cell 配列として返されます。Y
のデータ型はモデルの学習に使用された応答変数と同じです。(string 配列は文字ベクトルの cell 配列として扱われます)。
Y
の各行は、X
の対応する観測値の分類を表します。
データ型: single
| double
| categorical
| logical
| char
| cell
その他のデータのプロパティ
HyperparameterOptimizationResults
— ハイパーパラメーターの交差検証最適化
BayesianOptimization
オブジェクト | テーブル
この プロパティ は読み取り専用です。
ハイパーパラメーターの交差検証最適化。ハイパーパラメーターおよび関連する値が含まれているテーブルまたは BayesianOptimization
オブジェクトを指定します。モデルを作成するときに名前と値のペアの引数 'OptimizeHyperparameters'
が空以外であった場合、このプロパティは空以外になります。HyperparameterOptimizationResults
の値は、モデル作成時の構造体 HyperparameterOptimizationOptions
の Optimizer
フィールドの設定によって変化します。
Optimizer フィールドの値 | HyperparameterOptimizationResults の値 |
---|---|
'bayesopt' (既定の設定) | BayesianOptimization クラスのオブジェクト |
'gridsearch' または 'randomsearch' | 使用したハイパーパラメーター、観測された目的関数の値 (交差検証損失)、および最低 (最良) から最高 (最悪) までの観測値の順位が格納されているテーブル |
NumObservations
— 観測値の数
正の数値スカラー
この プロパティ は読み取り専用です。
X
および Y
に格納されている学習データ内の観測値の個数。正の数値スカラーとして返されます。
データ型: double
RowsUsed
— 当てはめに使用した行
[]
| logical ベクトル
この プロパティ は読み取り専用です。
モデルの当てはめに使用された元の学習データの行。logical ベクトルとして返されます。すべての行を使用した場合、このプロパティは空になります。
データ型: logical
W
— 観測値の重み
数値ベクトル
この プロパティ は読み取り専用です。
モデルの学習に使用された観測値の重み。n 行 1 列の数値ベクトルとして返されます。n は観測値の個数 (NumObservations
) です。
特定のクラスにおける W
の要素の合計がそのクラスの事前確率になるように、名前と値の引数 Weights
で指定された観測値の重みが正規化されます。
データ型: single
| double
他の分類のプロパティ
Cost
— 誤分類のコスト
数値正方行列
誤分類コスト。数値正方行列として返されます。Cost(i,j)
は、真のクラスが i
である場合に点をクラス j
に分類するコストです。コスト行列は、i ~= j
の場合は Cost(i,j) = 1
、i = j
の場合は Cost(i,j) = 0
という形式に必ずなります。行は真のクラスに、列は予測するクラスに対応します。Cost
の行と列の順序は、ClassNames
のクラスの順序に対応します。
Cost
の値は予測に使用されますが、学習には使用されません。学習済みモデルの Cost
プロパティの値はドット表記を使用して変更できます。
データ型: double
Prior
— 事前クラス確率
数値ベクトル
この プロパティ は読み取り専用です。
事前クラス確率。数値ベクトルとして返されます。Prior
の要素の順序は ClassNames
の要素に対応します。
データ型: double
ScoreTransform
— スコア変換
文字ベクトル | 関数ハンドル
スコア変換。文字ベクトルまたは関数ハンドルを指定します。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
は、行列 (元のスコア) を受け入れて同じサイズの行列 (変換したスコア) を返さなければなりません。
データ型: char
| function_handle
オブジェクト関数
CompactClassificationNeuralNetwork
の作成
compact | 機械学習モデルのサイズの縮小 |
ClassificationPartitionedModel
の作成
crossval | 機械学習モデルの交差検証 |
予測の解釈
lime | Local Interpretable Model-agnostic Explanations (LIME) |
partialDependence | 部分従属の計算 |
plotPartialDependence | 部分依存プロット (PDP) および個別条件付き期待値 (ICE) プロットの作成 |
shapley | シャープレイ値 |
新しい観測値での予測性能の評価
学習データでの予測性能の評価
resubEdge | 再代入分類エッジ |
resubLoss | 再代入分類損失 |
resubMargin | 再代入分類マージン |
resubPredict | 学習済み分類器を使用した学習データの分類 |
精度の比較
compareHoldout | 新しいデータを使用して 2 つの分類モデルの精度を比較 |
testckfold | 交差検証の反復により 2 つの分類モデルの精度を比較 |
例
ニューラル ネットワーク分類器の学習
ニューラル ネットワーク分類器に学習させ、テスト セットで分類器の性能を評価します。
標本ファイル CreditRating_Historical.dat
を table に読み取ります。予測子データは、法人顧客リストの財務比率と業種の情報で構成されます。応答変数は、格付機関が割り当てた格付けから構成されます。データセットの最初の数行をプレビューします。
creditrating = readtable("CreditRating_Historical.dat");
head(creditrating)
ID WC_TA RE_TA EBIT_TA MVE_BVTD S_TA Industry Rating _____ ______ ______ _______ ________ _____ ________ _______ 62394 0.013 0.104 0.036 0.447 0.142 3 {'BB' } 48608 0.232 0.335 0.062 1.969 0.281 8 {'A' } 42444 0.311 0.367 0.074 1.935 0.366 1 {'A' } 48631 0.194 0.263 0.062 1.017 0.228 4 {'BBB'} 43768 0.121 0.413 0.057 3.647 0.466 12 {'AAA'} 39255 -0.117 -0.799 0.01 0.179 0.082 4 {'CCC'} 62236 0.087 0.158 0.049 0.816 0.324 2 {'BBB'} 39354 0.005 0.181 0.034 2.597 0.388 7 {'AA' }
変数 ID
の各値は一意の顧客 ID であるため (つまり、length(unique(creditrating.ID))
は creditrating
に含まれる観測値の数に等しい)、変数 ID
は予測子としては適切ではありません。変数 ID
を table から削除し、変数 Industry
を categorical
変数に変換します。
creditrating = removevars(creditrating,"ID");
creditrating.Industry = categorical(creditrating.Industry);
応答変数 Rating
を順序 categorical
変数に変換します。
creditrating.Rating = categorical(creditrating.Rating, ... ["AAA","AA","A","BBB","BB","B","CCC"],"Ordinal",true);
データを学習セットとテスト セットに分割します。観測値の約 80% をニューラル ネットワーク モデルの学習に使用し、観測値の約 20% を学習済みモデルの新しいデータでの性能のテストに使用します。cvpartition
を使用してデータを分割します。
rng("default") % For reproducibility of the partition c = cvpartition(creditrating.Rating,"Holdout",0.20); trainingIndices = training(c); % Indices for the training set testIndices = test(c); % Indices for the test set creditTrain = creditrating(trainingIndices,:); creditTest = creditrating(testIndices,:);
学習データ creditTrain
を関数 fitcnet
に渡して、ニューラル ネットワーク分類器に学習させます。
Mdl = fitcnet(creditTrain,"Rating")
Mdl = ClassificationNeuralNetwork PredictorNames: {'WC_TA' 'RE_TA' 'EBIT_TA' 'MVE_BVTD' 'S_TA' 'Industry'} ResponseName: 'Rating' CategoricalPredictors: 6 ClassNames: [AAA AA A BBB BB B CCC] ScoreTransform: 'none' NumObservations: 3146 LayerSizes: 10 Activations: 'relu' OutputLayerActivation: 'softmax' Solver: 'LBFGS' ConvergenceInfo: [1x1 struct] TrainingHistory: [1000x7 table] Properties, Methods
Mdl
は学習させた ClassificationNeuralNetwork
分類器です。ドット表記を使用して Mdl
のプロパティにアクセスできます。たとえば、Mdl.TrainingHistory
と指定すると、ニューラル ネットワーク モデルの学習履歴についての詳細情報を取得できます。
テスト セットの分類誤差を計算して、テスト セットで分類器の性能を評価します。混同行列を使用して結果を可視化します。
testAccuracy = 1 - loss(Mdl,creditTest,"Rating", ... "LossFun","classiferror")
testAccuracy = 0.8003
confusionchart(creditTest.Rating,predict(Mdl,creditTest))
ニューラル ネットワーク分類器のアーキテクチャの指定
全結合層のサイズなど、ニューラル ネットワーク分類器の構造を指定します。
レーダー信号のデータを含む ionosphere
データ セットを読み込みます。X
に予測子データが格納されており、応答変数の Y
にレーダー信号が良好 ("g") か不良 ("b") かを表す値が格納されます。
load ionosphere
層化ホールドアウト分割を使用して、データを学習データ (XTrain
および YTrain
) とテスト データ (XTest
および YTest
) に分割します。観測値の約 30% をテスト用に予約し、残りの観測値を学習に使用します。
rng("default") % For reproducibility of the partition cvp = cvpartition(Y,"Holdout",0.3); XTrain = X(training(cvp),:); YTrain = Y(training(cvp)); XTest = X(test(cvp),:); YTest = Y(test(cvp));
ニューラル ネットワーク分類器に学習させます。最初の全結合層の出力数を 35、2 番目の全結合層の出力数を 20 に指定します。既定では、どちらの層でも正規化線形ユニット (ReLU) 活性化関数が使用されます。全結合層の活性化関数は、名前と値の引数 Activations
を使用して変更できます。
Mdl = fitcnet(XTrain,YTrain, ... "LayerSizes",[35 20])
Mdl = ClassificationNeuralNetwork ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' 'g'} ScoreTransform: 'none' NumObservations: 246 LayerSizes: [35 20] Activations: 'relu' OutputLayerActivation: 'softmax' Solver: 'LBFGS' ConvergenceInfo: [1x1 struct] TrainingHistory: [47x7 table] Properties, Methods
Mdl
の LayerWeights
プロパティと LayerBiases
プロパティを使用して、学習させた分類器の全結合層の重みとバイアスにアクセスします。各プロパティの最初の 2 つの要素が最初の 2 つの全結合層の値に対応し、3 番目の要素が分類用のソフトマックス活性化関数をもつ最終全結合層の値に対応します。たとえば、2 番目の全結合層の重みとバイアスを表示します。
Mdl.LayerWeights{2}
ans = 20×35
0.0481 0.2501 -0.1535 -0.0934 0.0760 -0.0579 -0.2465 1.0411 0.3712 -1.2007 1.1162 0.4296 0.4045 0.5005 0.8839 0.4624 -0.3154 0.3454 -0.0487 0.2648 0.0732 0.5773 0.4286 0.0881 0.9468 0.2981 0.5534 1.0518 -0.0224 0.6894 0.5527 0.7045 -0.6124 0.2145 -0.0790
-0.9489 -1.8343 0.5510 -0.5751 -0.8726 0.8815 0.0203 -1.6379 2.0315 1.7599 -1.4153 -1.4335 -1.1638 -0.1715 1.1439 -0.7661 1.1230 -1.1982 -0.5409 -0.5821 -0.0627 -0.7038 -0.0817 -1.5773 -1.4671 0.2053 -0.7931 -1.6201 -0.1737 -0.7762 -0.3063 -0.8771 1.5134 -0.4611 -0.0649
-0.1910 0.0246 -0.3511 0.0097 0.3160 -0.0693 0.2270 -0.0783 -0.1626 -0.3478 0.2765 0.4179 0.0727 -0.0314 -0.1798 -0.0583 0.1375 -0.1876 0.2518 0.2137 0.1497 0.0395 0.2859 -0.0905 0.4325 -0.2012 0.0388 -0.1441 -0.1431 -0.0249 -0.2200 0.0860 -0.2076 0.0132 0.1737
-0.0415 -0.0059 -0.0753 -0.1477 -0.1621 -0.1762 0.2164 0.1710 -0.0610 -0.1402 0.1452 0.2890 0.2872 -0.2616 -0.4204 -0.2831 -0.1901 0.0036 0.0781 -0.0826 0.1588 -0.2782 0.2510 -0.1069 -0.2692 0.2306 0.2521 0.0306 0.2524 -0.4218 0.2478 0.2343 -0.1031 0.1037 0.1598
1.1848 1.6142 -0.1352 0.5774 0.5491 0.0103 0.0209 0.7219 -0.8643 -0.5578 1.3595 1.5385 1.0015 0.7416 -0.4342 0.2279 0.5667 1.1589 0.7100 0.1823 0.4171 0.7051 0.0794 1.3267 1.2659 0.3197 0.3947 0.3436 -0.1415 0.6607 1.0071 0.7726 -0.2840 0.8801 0.0848
0.2486 -0.2920 -0.0004 0.2806 0.2987 -0.2709 0.1473 -0.2580 -0.0499 -0.0755 0.2000 0.1535 -0.0285 -0.0520 -0.2523 -0.2505 -0.0437 -0.2323 0.2023 0.2061 -0.1365 0.0744 0.0344 -0.2891 0.2341 -0.1556 0.1459 0.2533 -0.0583 0.0243 -0.2949 -0.1530 0.1546 -0.0340 -0.1562
-0.0516 0.0640 0.1824 -0.0675 -0.2065 -0.0052 -0.1682 -0.1520 0.0060 0.0450 0.0813 -0.0234 0.0657 0.3219 -0.1871 0.0658 -0.2103 0.0060 -0.2831 -0.1811 -0.0988 0.2378 -0.0761 0.1714 -0.1596 -0.0011 0.0609 0.4003 0.3687 -0.2879 0.0910 0.0604 -0.2222 -0.2735 -0.1155
-0.6192 -0.7804 -0.0506 -0.4205 -0.2584 -0.2020 -0.0008 0.0534 1.0185 -0.0307 -0.0539 -0.2020 0.0368 -0.1847 0.0886 -0.4086 -0.4648 -0.3785 0.1542 -0.5176 -0.3207 0.1893 -0.0313 -0.5297 -0.1261 -0.2749 -0.6152 -0.5914 -0.3089 0.2432 -0.3955 -0.1711 0.1710 -0.4477 0.0718
0.5049 -0.1362 -0.2218 0.1637 -0.1282 -0.1008 0.1445 0.4527 -0.4887 0.0503 0.1453 0.1316 -0.3311 -0.1081 -0.7699 0.4062 -0.1105 -0.0855 0.0630 -0.1469 -0.2533 0.3976 0.0418 0.5294 0.3982 0.1027 -0.0973 -0.1282 0.2491 0.0425 0.0533 0.1578 -0.8403 -0.0535 -0.0048
1.1109 -0.0466 0.4044 0.6366 0.1863 0.5660 0.2839 0.8793 -0.5497 0.0057 0.3468 0.0980 0.3364 0.4669 0.1466 0.7883 -0.1743 0.4444 0.4535 0.1521 0.7476 0.2246 0.4473 0.2829 0.8881 0.4666 0.6334 0.3105 0.9571 0.2808 0.6483 0.1180 -0.4558 1.2486 0.2453
⋮
Mdl.LayerBiases{2}
ans = 20×1
0.6147
0.1891
-0.2767
-0.2977
1.3655
0.0347
0.1509
-0.4839
-0.3960
0.9248
⋮
最終全結合層の出力は 2 つで、応答変数内のクラスごとに 1 つずつとなります。層の出力の数は、層の重みと層のバイアスの最初の次元に対応します。
size(Mdl.LayerWeights{end})
ans = 1×2
2 20
size(Mdl.LayerBiases{end})
ans = 1×2
2 1
学習させた分類器の性能を推定するには、Mdl
のテスト セットの分類誤差を計算します。
testError = loss(Mdl,XTest,YTest, ... "LossFun","classiferror")
testError = 0.0774
accuracy = 1 - testError
accuracy = 0.9226
Mdl
でテスト セットの観測値の約 92% が正確に分類されています。
拡張機能
バージョン履歴
R2021a で導入R2023a: ニューラル ネットワーク分類器での誤分類コストと事前確率のサポート
fitcnet
でニューラル ネットワーク分類器の誤分類コストと事前確率がサポートされます。モデルを作成するときに、名前と値の引数 Cost
および Prior
を指定します。あるいは、モデルに学習させた後に誤分類コストを指定するには、ドット表記を使用して Cost
プロパティの値を変更できます。
Mdl.Cost = [0 2; 1 0];
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)