このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
ClassificationNaiveBayes
マルチクラス分類のための単純ベイズ分類
説明
ClassificationNaiveBayes
はマルチクラス学習のための単純ベイズ分類器です。学習させた ClassificationNaiveBayes
分類器は学習データ、パラメーター値、データ分布および事前確率を格納します。これらの分類器を使用して、再代入予測値の推定 (resubPredict
を参照)、新しいデータのラベルや事後確率の予測 (predict
を参照) などのタスクを実行します。
作成
ClassificationNaiveBayes
オブジェクトの作成には fitcnb
を使用します。
プロパティ
予測子のプロパティ
PredictorNames
— 予測子名
文字ベクトルの cell 配列
この プロパティ は読み取り専用です。
予測子名。文字ベクトルの cell 配列を指定します。PredictorNames
の要素の順序は、予測子名が学習データ X
に現れる順序に対応します。
ExpandedPredictorNames
— 展開された予測子名
文字ベクトルの cell 配列
この プロパティ は読み取り専用です。
展開された予測子名。文字ベクトルの cell 配列を指定します。
モデルでカテゴリカル変数用にダミー変数のエンコードを使用している場合、ExpandedPredictorNames
には展開された変数を表す名前が含まれます。それ以外の場合、ExpandedPredictorNames
は PredictorNames
と同じです。
CategoricalPredictors
— カテゴリカル予測子のインデックス
正の整数のベクトル | []
この プロパティ は読み取り専用です。
カテゴリカル予測子のインデックス。正の整数のベクトルとして指定します。CategoricalPredictors
には、対応する予測子がカテゴリカルであることを示すインデックス値が格納されます。インデックス値の範囲は 1 ~ p
です。p
はモデルの学習に使用した予測子の数です。どの予測子もカテゴリカルではない場合、このプロパティは空 ([]
) になります。
データ型: single
| double
CategoricalLevels
— 多変量多項レベル
cell 配列
この プロパティ は読み取り専用です。
多変量多項レベル。cell 配列として指定します。CategoricalLevels
の長さは予測子の数 (size(X,2)
) と同じです。
CategoricalLevels
のセルは、学習中に 'mvmn'
として指定した予測子に対応します。つまり、多変量多項分布になります。多変量多項分布に対応しないセルは空です ([]
)。
予測子 j が多変量多項の場合、CategoricalLevels{
j}
は標本内の予測子 j のすべての異なる値のリストです。NaN
は unique(X(:,j))
から削除されます。
X
— 標準化されていない予測子
数値行列
この プロパティ は読み取り専用です。
単純ベイズ分類器の学習に使用する、標準化されていない予測子。数値行列として指定します。X
の各行は 1 つの観測値に対応し、各列は 1 つの変数に対応します。ソフトウェアは、欠損値が少なくとも 1 つ含まれている観測値を除外し、対応する要素を Y から削除します。
予測子分布のプロパティ
DistributionNames
— 予測子分布
'normal'
(既定値) | 'kernel'
| 'mn'
| 'mvmn'
| 文字ベクトルの cell 配列
この プロパティ は読み取り専用です。
予測子分布。文字ベクトル、または文字ベクトルの cell 配列として指定します。fitcnb
は予測子分布を使用して予測子をモデル化します。次の表は、使用できる分布の一覧です。
値 | 説明 |
---|---|
'kernel' | カーネル平滑化密度推定 |
'mn' | 多項分布。mn を指定するとすべての特徴量は多項分布の成分となります。したがって、'mn' を文字ベクトルの cell 配列または string 配列の要素として含めることはできません。詳細については、多項分布の推定確率を参照してください。 |
'mvmn' | 多変量多項分布。詳細については、多変量多項分布の推定確率を参照してください。 |
'normal' | 正規 (ガウス) 分布 |
DistributionNames
が文字ベクトルによる 1 行 P 列の cell 配列である場合、fitcnb
は cell 配列の要素 j の分布を使用して特徴量 j をモデル化します。
例: 'mn'
例: {'kernel','normal','kernel'}
データ型: char
| string
| cell
DistributionParameters
— 分布パラメーターの推定
cell 配列
この プロパティ は読み取り専用です。
cell 配列として指定する、分布パラメーターの推定。DistributionParameters
は K 行 D 列の cell 配列です。ここで、セル (k,d) はクラス k における予測子 d のインスタンスを推定した分布パラメーターを含みます。行の順序は ClassNames
プロパティのクラスの順序に、予測子の順序は X
の列の順序に対応します。
クラス k
に予測子 j
の観測値がない場合、Distribution{
は空 (k
,j
}[]
) です。
DistributionParameters
の要素は予測子の分布に依存します。次の表は、DistributionParameters{
の値について説明しています。k
,j
}
予測子 j の分布 | 予測子 j およびクラス k の cell 配列の値 |
---|---|
kernel | KernelDistribution モデル。セルのインデックス付けおよびドット表記を使用してプロパティを表示します。たとえば、3 番目のクラスの予測子 2 のカーネル密度に推定される帯域幅を表示するには、Mdl.DistributionParameters{3,2}.Bandwidth を使用します。 |
mn | トークン j がクラス k に出現する確率を表すスカラー。詳細については、多項分布の推定確率を参照してください。 |
mvmn | クラス k の予測子 j の可能なレベルそれぞれの確率を含む数値ベクトル確率は予測子 j (プロパティ CategoricalLevels 内に格納されています) のすべての一意なレベルが並べ替えられた順序に並べられます。詳細については、多変量多項分布の推定確率を参照してください。 |
normal | 2 行 1 列の数値ベクトル。最初の要素は標本平均で、2 番目の要素は標本標準偏差です。詳細については、正規分布の推定器を参照してください。 |
Kernel
— カーネル平滑化のタイプ
'normal'
(既定値) | 'box'
| cell 配列 | ...
この プロパティ は読み取り専用です。
カーネル平滑化のタイプ。カーネルの名前、またはカーネル名の cell 配列として指定します。Kernel
の長さは予測子の数 (size(X,2)
) と同じです。Kernel{
j}
は予測子 j に対応し、カーネル平滑化のタイプを表す文字ベクトルを格納します。セルが空 ([]
) の場合、fitcnb
はカーネル分布を対応する予測子に当てはめません。
次の表はサポートされるカーネル平滑化のタイプについて説明しています。I{u} はインジケーター関数を表します。
値 | カーネル | 式 |
---|---|---|
'box' | ボックス (一様) |
|
'epanechnikov' | Epanechnikov |
|
'normal' | ガウス |
|
'triangle' | 三角形 |
|
例: 'box'
例: {'epanechnikov','normal'}
データ型: char
| string
| cell
Mu
— 予測子の平均
数値ベクトル | []
R2023b 以降
この プロパティ は読み取り専用です。
予測子の平均。数値ベクトルを指定します。fitcnb
を使用して単純ベイズ分類器に学習させるときに Standardize
を 1
または true
として指定した場合、ベクトル Mu
の長さは予測子の数と等しくなります。カテゴリカル予測子などのカーネル分布以外をもつ予測子については、ベクトルに値 0
が格納されます (DistributionNames
を参照)。
fitcnb
を使用して単純ベイズ分類器に学習させるときに Standardize
を 0
または false
に設定した場合、Mu
の値は空ベクトル ([]
) になります。
データ型: double
Sigma
— 予測子の標準偏差
数値ベクトル | []
R2023b 以降
この プロパティ は読み取り専用です。
予測子の標準偏差。数値ベクトルを指定します。fitcnb
を使用して単純ベイズ分類器に学習させるときに Standardize
を 1
または true
として指定した場合、ベクトル Sigma
の長さは予測子の数と等しくなります。カテゴリカル予測子などのカーネル分布以外をもつ予測子については、ベクトルに値 1
が格納されます (DistributionNames
を参照)。
fitcnb
を使用して単純ベイズ分類器に学習させるときに Standardize
を 0
または false
に設定した場合、Sigma
の値は空ベクトル ([]
) になります。
データ型: double
Support
— カーネル平滑化密度のサポート
cell 配列
この プロパティ は読み取り専用です。
カーネル平滑化密度のサポート。cell 配列として指定します。Support
の長さは予測子の数 (size(X,2)
) と同じです。セルは fitcnb
がカーネル密度を適用する領域を表します。セルが空 ([]
) の場合、fitcnb
はカーネル分布を対応する予測子に当てはめません。
次の表はサポートされるオプションについて説明します。
値 | 説明 |
---|---|
1 行 2 列の数値行ベクトル | 密度のサポートは指定された範囲 ([L,U] など) に適用されます。ここで、L と U はそれぞれ下限と上限を表します。 |
'positive' | 密度のサポートはすべての正の実数に適用されます。 |
'unbounded' | 密度のサポートはすべての実数に適用されます。 |
Width
— カーネル平滑化ウィンドウの幅
数値行列
この プロパティ は読み取り専用です。
カーネル平滑化ウィンドウの幅。数値行列として指定します。Width
は K 行 P 列の行列であり、K はデータ内のクラスの数、P は予測子の数 (size(X,2)
) です。
Width(
はクラス k
,j
)k
に含まれる予測子 j
のカーネル平滑化密度のカーネル平滑化ウィンドウ幅です。列 j
に含まれる NaN
は、fitcnb
が、カーネル密度を使用して予測子 j
を当てはめなかったことを示しています。
応答のプロパティ
ClassNames
— 一意のクラス名
categorical 配列 | 文字配列 | logical ベクトル | 数値ベクトル | 文字ベクトルの cell 配列
この プロパティ は読み取り専用です。
モデルの学習に使用した一意なクラス名。categorical 配列、文字配列、logical ベクトル、数値ベクトルのいずれか、あるいは文字ベクトルの cell 配列として指定します。
ClassNames
は Y
と同じデータ型であり、文字配列の場合は K 個の要素 (行) が含まれます。(string 配列は文字ベクトルの cell 配列として扱われます)。
データ型: categorical
| char
| string
| logical
| double
| cell
ResponseName
— 応答変数名
文字ベクトル
この プロパティ は読み取り専用です。
応答変数名。文字ベクトルを指定します。
データ型: char
| string
Y
— クラス ラベル
categorical 配列 | 文字配列 | logical ベクトル | 数値ベクトル | 文字ベクトルの cell 配列
この プロパティ は読み取り専用です。
単純ベイズ分類器の学習に使用したクラス ラベル。categorical 配列、文字配列、logical ベクトル、数値ベクトルのいずれか、あるいは文字ベクトルの cell 配列として指定します。Y
の各行は、X
の対応する行の観測された分類を表します。
Y
のデータ型は、モデルの学習に使用した Y
のデータと同じです。(string 配列は文字ベクトルの cell 配列として扱われます)。
データ型: single
| double
| logical
| char
| string
| cell
| categorical
学習プロパティ
ModelParameters
— モデルの学習に使用されるパラメーター値
オブジェクト
この プロパティ は読み取り専用です。
ClassificationNaiveBayes
モデルの学習に使用するパラメーター値。オブジェクトとして指定します。ModelParameters
には、単純ベイズ分類器の学習に使用する名前と値のペアの引数値などのパラメーター値が格納されます。
ModelParameters
のプロパティにアクセスするには、ドット表記を使用します。たとえば、Mdl.ModelParameters.Support
を用いてカーネル サポートにアクセスします。
NumObservations
— 学習観測値の数
数値スカラー
この プロパティ は読み取り専用です。
X
および Y
に格納されている学習データ内の学習観測値の個数。数値スカラーとして指定します。
Prior
— 事前確率
数値ベクトル
事前確率。数値ベクトルとして指定します。Prior
の要素の順序は Mdl.ClassNames
の要素に対応します。
fitcnb
は、設定された事前確率を、名前と値のペアの引数 'Prior'
を使用して正規化するため、sum(Prior)
= 1
となります。
Prior
の値は最適な当てはめのモデルに影響しません。したがって、ドット表記を使用して Mdl
に学習させた後、Prior
をリセットすることができます。
例: Mdl.Prior = [0.2 0.8]
データ型: double
| single
W
— 観測値の重み
非負値のベクトル。
この プロパティ は読み取り専用です。
観測値の重み。Y
と同じ行数をもつ非負値のベクトルを指定します。W
の各エントリは、Y
で対応する観測値の相対的な重要性を指定します。fitcnb
によって、名前と値のペアの引数 'Weights'
に設定した値が正規化され、特定のクラス内の重みはそのクラスの事前確率の合計となります。
分類器のプロパティ
Cost
— 誤分類のコスト
正方行列
誤分類コスト。数値正方行列を指定します。Cost(i,j)
は、真のクラスが i
である場合に点をクラス j
に分類するコストです。行は真のクラスに、列は予測するクラスに対応します。Cost
の行と列の順序は、ClassNames
のクラスの順序に対応します。
誤分類コスト行列は対角線上に 0 をもたなければなりません。
Cost
の値は学習に影響しません。ドット表記を使用して Mdl
に学習させた後、Cost
をリセットすることができます。
例: Mdl.Cost = [0 0.5 ; 1 0]
データ型: double
| single
HyperparameterOptimizationResults
— ハイパーパラメーターの交差検証最適化
BayesianOptimization
オブジェクト | テーブル
この プロパティ は読み取り専用です。
ハイパーパラメーターの交差検証最適化。ハイパーパラメーターおよび関連する値が含まれているテーブルまたは BayesianOptimization
オブジェクトを指定します。モデルを作成するときに名前と値のペアの引数 'OptimizeHyperparameters'
が空以外であった場合、このプロパティは空以外になります。HyperparameterOptimizationResults
の値は、モデル作成時の構造体 HyperparameterOptimizationOptions
の Optimizer
フィールドの設定によって変化します。
Optimizer フィールドの値 | HyperparameterOptimizationResults の値 |
---|---|
'bayesopt' (既定の設定) | BayesianOptimization クラスのオブジェクト |
'gridsearch' または 'randomsearch' | 使用したハイパーパラメーター、観測された目的関数の値 (交差検証損失)、および最低 (最良) から最高 (最悪) までの観測値の順位が格納されているテーブル |
ScoreTransform
— 分類スコア変換
'none'
(既定値) | 'doublelogit'
| 'invlogit'
| 'ismax'
| 'logit'
| 関数ハンドル | ...
分類スコア変換。文字ベクトルまたは関数ハンドルとして指定します。次の表は、使用可能な文字ベクトルをまとめています。
値 | 説明 |
---|---|
"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 = 'logit'
データ型: char
| string
| function handle
オブジェクト関数
compact | 機械学習モデルのサイズの縮小 |
compareHoldout | 新しいデータを使用して 2 つの分類モデルの精度を比較 |
crossval | 機械学習モデルの交差検証 |
edge | 単純ベイズ分類器の分類エッジ |
incrementalLearner | 単純ベイズ分類モデルのインクリメンタル学習器への変換 |
lime | Local Interpretable Model-agnostic Explanations (LIME) |
logp | 単純ベイズ分類器の対数条件なし確率密度 |
loss | 単純ベイズ分類器の分類損失 |
margin | 単純ベイズ分類器の分類マージン |
partialDependence | 部分依存の計算 |
plotPartialDependence | 部分依存プロット (PDP) および個別条件付き期待値 (ICE) プロットの作成 |
predict | 単純ベイズ分類器の使用による観測値の分類 |
resubEdge | 再代入分類エッジ |
resubLoss | 再代入分類損失 |
resubMargin | 再代入分類マージン |
resubPredict | 学習済み分類器を使用した学習データの分類 |
shapley | シャープレイ値 |
testckfold | 交差検証の反復により 2 つの分類モデルの精度を比較 |
例
単純ベイズ分類器の学習
フィッシャーのアヤメのデータ セット用に単純ベイズ分類器を作成します。また、分類器の学習後に事前確率を指定します。
fisheriris
データ セットを読み込みます。150 本のアヤメについて 4 つの花弁の測定値が含まれる数値行列 X
を作成します。対応するアヤメの種類が含まれる文字ベクトルの cell 配列 Y
を作成します。
load fisheriris
X = meas;
Y = species;
予測子 X
とクラス ラベル Y
を使用して、単純ベイズ分類器の学習を行います。fitcnb
では、各予測子が独立しており、既定の設定で正規分布を使用して各予測子を当てはめると仮定しています。
Mdl = fitcnb(X,Y)
Mdl = ClassificationNaiveBayes ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'setosa' 'versicolor' 'virginica'} ScoreTransform: 'none' NumObservations: 150 DistributionNames: {'normal' 'normal' 'normal' 'normal'} DistributionParameters: {3x4 cell}
Mdl
は学習させた ClassificationNaiveBayes
分類器です。一部の Mdl
プロパティはコマンド ウィンドウに表示されます。
ドット表記を使用して、Mdl
のプロパティを表示します。たとえば、クラスの名前と事前確率を表示します。
Mdl.ClassNames
ans = 3x1 cell
{'setosa' }
{'versicolor'}
{'virginica' }
Mdl.Prior
ans = 1×3
0.3333 0.3333 0.3333
Mdl.Prior
でのクラスの事前確率の順序は、Mdl.ClassNames
でのクラスの順序に対応します。既定では、事前確率はデータ内のクラスのそれぞれの相対的頻度です。または、fitcnb
を呼び出すときに名前と値のペアの引数 'Prior'
を使用することにより、事前確率を設定できます。
ドット表記を使用して、分類器の学習後に事前確率を設定します。たとえば、事前確率をそれぞれ 0.5、0.2 および 0.3 に設定します。
Mdl.Prior = [0.5 0.2 0.3];
これで、この学習済みの分類器を使用して追加タスクを実行できるようになりました。たとえば、predict
を使用して新しい測定値にラベルを付けることや、crossval
を使用して分類器を交差検証することができます。
単純ベイズ分類器の学習と交差検証
単純ベイズ分類器の学習と交差検証を行います。fitcnb
が既定で 10 分割交差検証を実装します。次に、交差検証分類誤差を推定します。
ionosphere
データ セットを読み込みます。安定させるため、最初の 2 つの予測子を削除します。
load ionosphere X = X(:,3:end); rng('default') % for reproducibility
予測子 X
とクラス ラベル Y
を使用して、単純ベイズ分類器の学習と交差検証を行います。クラス名を指定することが推奨されます。fitcnb
は、各予測子が条件付き正規分布に従うと仮定しています。
CVMdl = fitcnb(X,Y,'ClassNames',{'b','g'},'CrossVal','on')
CVMdl = ClassificationPartitionedModel CrossValidatedModel: 'NaiveBayes' PredictorNames: {'x1' 'x2' 'x3' 'x4' 'x5' 'x6' 'x7' 'x8' 'x9' 'x10' 'x11' 'x12' 'x13' 'x14' 'x15' 'x16' 'x17' 'x18' 'x19' 'x20' 'x21' 'x22' 'x23' 'x24' 'x25' 'x26' 'x27' 'x28' 'x29' 'x30' 'x31' 'x32'} ResponseName: 'Y' NumObservations: 351 KFold: 10 Partition: [1x1 cvpartition] ClassNames: {'b' 'g'} ScoreTransform: 'none'
CVMdl
は、交差検証した単純ベイズ分類器 ClassificationPartitionedModel
です。あるいは、学習済みの ClassificationNaiveBayes
モデルをcrossval
に渡すことにより、このモデルを交差検証できます。
ドット表記を使用して、CVMdl
の最初の学習分割を表示します。
CVMdl.Trained{1}
ans = CompactClassificationNaiveBayes ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' 'g'} ScoreTransform: 'none' DistributionNames: {1x32 cell} DistributionParameters: {2x32 cell}
各分割はデータの 90% で学習させたCompactClassificationNaiveBayes
モデルです。
完全でコンパクトな単純ベイズ モデルは、新しいデータの予測に使用されません。代わりに、CVMdl
を kfoldLoss
に渡すことにより、そのモデルを使用して汎化誤差を推定してください。
genError = kfoldLoss(CVMdl)
genError = 0.1852
平均すると汎化誤差は約 19% です。
予測子に別の条件付き分布を指定することや、条件付き分布パラメーターを調整して汎化誤差を減らすことができます。
詳細
bag-of-tokens モデル
bag-of-tokens モデルでは、予測子 j の値は観測値のトークン j の発生数を表す非負の数値です。この多項モデルのカテゴリ (ビン) の数は、異なるトークンの数 (予測子の数) です。
単純ベイズ
"単純ベイズ" は密度推定をデータに適用する分類アルゴリズムです。
アルゴリズムはベイズの定理を活用し、クラスが与えられる場合、予測子が条件付きで独立していると (単純に) 仮定します。通常、実際はこの仮定に反して、単純ベイズ分類器から得られる事後分布は、バイアス付きのクラス密度を推定する場合、特に事後分布が 0.5 (判定境界) であれば、信頼性が高い傾向があります[1]。
単純ベイズ分類器は観測を最も確率の高いクラスに割り当てます (つまり、"最大事後確率" 決定ルールです)。明示的に、アルゴリズムは以下の手順を実行します。
各クラス内の予測子の密度を推定します。
ベイズ ルールに従って、事後確率をモデル化します。つまり、すべての k = 1,...,K について、次のようになります。
ここで
Y は観測のクラス インデックスに対応する確率変数です。
X1,...,XP は観測の無作為な予測子です。
は、クラス インデックスが k である事前確率です。
各クラスの事後確率を推定して観測値を分類し、最大の事後確率を発生するクラスに観測値を割り当てます。
予測子が多項分布を構成する場合、事後確率は になります。ここで、 は多項分布の確率密度関数です。
アルゴリズム
正規分布の推定器
予測子変数 j
が条件付き正規分布をもつ場合 (DistributionNames
プロパティを参照)、クラス固有の加重平均、および加重標準偏差の不偏推定を計算することにより、この分布がデータに当てはめられます。各クラス k に対して以下を実行します。
予測子 j の加重平均は次のようになります。
ここで wi は観測値 i の重みです。クラス内の重みは、その合計がクラスの事前確率になるように正規化されます。
予測子 j の加重標準偏差の不偏推定器は次のようになります。
ここで z1|k はクラス k 内の重みの合計、z2|k はクラス k 内の重みの 2 乗の合計です。
多項分布の推定確率
すべての予測子変数が条件付き多項分布を構成する場合 (DistributionNames
プロパティを参照)、bag-of-tokens モデルを使用して、この分布が当てはめられます。トークン j
がプロパティ DistributionParameters{
のクラス k
,j
}k
に出現する確率が保存されます。加法平滑化[2]を使用すると、推定確率は次のようになります。
ここで、以下になります。
はクラス k におけるトークン j の重み付き発生数です。
nk はクラス k 内の観測数です。
は観測値 i の重みです。クラス内の重みは、その合計がクラスの事前確率になるように正規化されます。
は、クラス k に含まれているすべてのトークンの重み付き発生数の合計です。
多変量多項分布の推定確率
予測子変数 j
が条件付き多変量多項分布をもつ場合 (DistributionNames
プロパティを参照)、次のような手順になります。
一意のレベルのリストが収集され、並べ替えられたリストは
CategoricalLevels
に保存され、各レベルはビンと見なされます。予測子とクラスの各組み合わせは、個別の独立した多項確率変数です。各クラス k に対して、
CategoricalLevels{
に保存されたリストを使用して、カテゴリカル レベルごとのインスタンスがカウントされます。j
}クラス
k
の予測子j
が、プロパティDistributionParameters{
においてレベル L をもつ場合、すべてのレベルの確率はk
,j
}CategoricalLevels{
に保存されます。加法平滑化[2]を使用すると、推定確率は次のようになります。j
}ここで、以下になります。
は、クラス k 内の予測子 j が L に等しい観測値の重み付き個数です。
nk はクラス k 内の観測数です。
xij = L の場合は 、それ以外の場合は 0 です。
は観測値 i の重みです。クラス内の重みは、その合計がクラスの事前確率になるように正規化されます。
mj は予測子 j の異なるレベルの数です。
mk はクラス k 内の重み付けされた観測値の数です。
参照
[1] Hastie, Trevor, Robert Tibshirani, and Jerome Friedman. The Elements of Statistical Learning: Data Mining, Inference, and Prediction. 2nd ed. Springer Series in Statistics. New York, NY: Springer, 2009. https://doi.org/10.1007/978-0-387-84858-7.
[2] Manning, Christopher D., Prabhakar Raghavan, and Hinrich Schütze. Introduction to Information Retrieval, NY: Cambridge University Press, 2008.
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意事項および制限事項:
関数
predict
はコード生成をサポートします。fitcnb
を使用して単純ベイズ モデルに学習をさせる場合、以下の制限が適用されます。名前と値のペアの引数
'DistributionNames'
の値に'mn'
を含めることはできません。名前と値のペアの引数
'ScoreTransform'
の値を無名関数にすることはできません。
詳細は、コード生成の紹介を参照してください。
バージョン履歴
R2014b で導入R2023b: 単純ベイズ モデルでカーネル分布をもつ予測子の標準化をサポート
fitcnb
でカーネル分布をもつ予測子の標準化がサポートされます。つまり、名前と値の引数 DistributionNames
に "kernel"
分布が少なくとも 1 つ含まれている場合に、名前と値の引数 Standardize
を true
として指定できます。単純ベイズ モデルに含まれる Mu
プロパティと Sigma
プロパティに、学習前の予測子の標準化に使用される平均と標準偏差がそれぞれ格納されます。これらのプロパティは、fitcnb
で標準化が一切実行されない場合は空になります。
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)