ドキュメンテーション
最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
クラス: ClassificationNaiveBayes
交差検証した単純ベイズ分類器
CVMdl = crossval(Mdl)
CVMdl = crossval(Mdl,Name,Value)
例
CVMdl = crossval(Mdl) は学習させた単純ベイズ分類器 (Mdl) から分割された単純ベイズ分類器 (CVSMdl) を返します。
CVMdl
Mdl
CVSMdl
既定の設定では、crossval は 学習データに 10 分割交差検証を使用して、CVMdl を作成します。
crossval
CVMdl = crossval(Mdl,Name,Value) は、1 つ以上の Name,Value のペアの引数で指定された追加オプションを使用して、分割された単純ベイズ分類器を返します。
Name,Value
たとえば、ホールドアウト標本比率を指定できます。
すべて展開する
ClassificationNaiveBayes
完全な学習済み単純ベイズ分類器。fitcnb で学習させた ClassificationNaiveBayes モデルとして指定します。
fitcnb
オプションの Name,Value 引数のコンマ区切りペアを指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を、任意の順番で指定できます。
Name
Value
Name1,Value1,...,NameN,ValueN
'CVPartition'
[]
cvpartition
交差検証分割。'CVPartition' と、cvpartition で作成した cvpartition 分割オブジェクトから構成されるコンマ区切りのペアとして指定します。分割オブジェクトは、交差検証のタイプと、学習セットおよび検証セットのインデックス付けを指定します。
交差検証済みモデルの作成に使用できる名前と値のペアの引数は、CVPartition、Holdout、KFold、Leaveout の 4 つのうちのいずれかのみです。
CVPartition
Holdout
KFold
Leaveout
例: cvp = cvpartition(500,'KFold',5) を使用して、500 個の観測値に対する 5 分割交差検証について無作為な分割を作成するとします。この場合、'CVPartition',cvp を使用して交差検証済みモデルを指定できます。
cvp = cvpartition(500,'KFold',5)
'CVPartition',cvp
'Holdout'
ホールドアウト検定に使用されるデータの比率。'Holdout' と範囲 (0,1) のスカラー値から構成されるコンマ区切りのペアとして指定します。'Holdout',p を指定した場合、以下の手順が実行されます。
'Holdout',p
p*100% のデータを無作為に選択して検証データとして確保し、残りのデータを使用してモデルに学習をさせる。
p*100
コンパクトな学習済みモデルを交差検証済みモデルの Trained プロパティに格納する。
Trained
例: 'Holdout',0.1
'Holdout',0.1
データ型: double | single
double
single
'KFold'
10
交差検証済みモデルで使用する分割数。'KFold' と 1 より大きい正の整数から構成されるコンマ区切りのペアとして指定します。'KFold',k を指定した場合、以下の手順が実行されます。
'KFold',k
データを無作為に k 個のセットに分割する。
k
各セットについて、そのセットを検定データとして確保し、他の k - 1 個のセットを使用してモデルに学習をさせる。
k 個のコンパクトな学習済みモデルを、交差検証済みモデルの Trained プロパティに含まれている k 行 1 列の cell ベクトルのセルに格納する。
例: 'KFold',5
'KFold',5
データ型: single | double
'Leaveout'
'off'
'on'
Leave-one-out 法の交差検証のフラグ。'Leaveout' と 'on' または 'off' で構成されるコンマ区切りのペアとして指定します。'Leaveout','on' を指定した場合、n 個の観測値 (n は、モデルの NumObservations プロパティで指定される、欠損観測値を除外した観測値の個数) のそれぞれについて以下の手順が実行されます。
'Leaveout','on'
NumObservations
その観測値を検証データとして確保し、他の n - 1 個の観測値を使用してモデルに学習をさせる。
n 個のコンパクトな学習済みモデルを、交差検証済みモデルの Trained プロパティに含まれている n 行 1 列の cell ベクトルのセルに格納する。
例: 'Leaveout','on'
ClassificationPartitionedModel
交差検証した単純ベイズ分類器。ClassificationPartitionedModel モデルとして返されます。
ionosphere データセットを読み込みます。
ionosphere
load ionosphere X = X(:,3:end); % Remove first two predictors for stability rng(1); % For reproducibility
単純ベイズ分類器を学習させます。クラスの順序を定義することをお勧めします。ラベルが与えられる場合、各予測子は条件付きで正規分布すると仮定します。
Mdl = fitcnb(X,Y,'ClassNames',{'b','g'});
Mdl は学習させた ClassificationNaiveBayes 分類器です。'b' は陰性のクラス、'g' は陽性のクラスです。
'b'
'g'
10 分割交差検証を使用して分類器を交差検証します。
CVMdl = classreg.learning.partition.ClassificationPartitionedModel CrossValidatedModel: 'NaiveBayes' PredictorNames: {1x32 cell} ResponseName: 'Y' NumObservations: 351 KFold: 10 Partition: [1x1 cvpartition] ClassNames: {'b' 'g'} ScoreTransform: 'none' Properties, Methods
FirstModel = CVMdl.Trained{1}
FirstModel = classreg.learning.classif.CompactClassificationNaiveBayes ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' 'g'} ScoreTransform: 'none' DistributionNames: {1x32 cell} DistributionParameters: {2x32 cell} Properties, Methods
CVMdl は ClassificationPartitionedModel 交差検証分類器です。次の処理が実行されます。
データを無作為に同じサイズの 10 個の組に分割します。
9 個の組で単純ベイズ分類器を学習させます。
手順 1 および 2 を k = 10 回繰り返します。各回につき 1 つの分割を除外し、他の 9 つの分割で学習させます。
分割ごとに汎化統計値を結合します。
FirstModel は 10 個の学習させた分類器のうち最初のものです。これは CompactClassificationNaiveBayes モデルです。
FirstModel
CompactClassificationNaiveBayes
CVMdl を kfoldLoss に渡すと、汎化誤差を推定できます。
kfoldLoss
既定では、crossval は 10 分割交差検証を使用して単純ベイズ分類器を交差検証します。この他にも、異なる分割数またはホールドアウト標本比率を指定するなどのオプションがあります。この例では、ホールドアウト標本比率を指定する方法を説明します。
単純ベイズ分類器を学習させます。ラベルが与えられる場合、各予測子は条件付きで正規分布すると仮定します。クラスの順序を定義することをお勧めします。
30% のホールドアウト標本を指定して分類器を交差検証します。
CVMdl = crossval(Mdl,'Holdout',0.30)
CVMdl = classreg.learning.partition.ClassificationPartitionedModel CrossValidatedModel: 'NaiveBayes' PredictorNames: {1x32 cell} ResponseName: 'Y' NumObservations: 351 KFold: 1 Partition: [1x1 cvpartition] ClassNames: {'b' 'g'} ScoreTransform: 'none' Properties, Methods
TrainedModel = CVMdl.Trained{1}
TrainedModel = classreg.learning.classif.CompactClassificationNaiveBayes ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' 'g'} ScoreTransform: 'none' DistributionNames: {1x32 cell} DistributionParameters: {2x32 cell} Properties, Methods
CVMdl は ClassificationPartitionedModel です。TrainedModel はデータの 70% を使用して学習させた CompactClassificationNaiveBayes 分類器です。
TrainedModel
汎化誤差を推定します。
kfoldLoss(CVMdl)
ans = 0.2571
標本外の誤分類誤差は約 2.6% です。
関数 "kfold" と kfoldLoss などの CVMdl のプロパティを使用して交差検証されたデータにおいて、Mdl の予測パフォーマンスを評価します。
単純ベイズ分類器を作成し、その後に交差検証分類器を作成するのではなく、fitcnb を使用して次のいずれかの名前と値のペアの引数を指定し、交差検証分類器を直接作成してください。'CrossVal'、'CVPartition'、'Holdout'、'Leaveout' または 'KFold' です。
'CrossVal'
ClassificationNaiveBayes | ClassificationPartitionedModel | CompactClassificationNaiveBayes | fitcnb | kfoldLoss
A modified version of this example exists on your system. Do you want to open this version instead? (ja_JP)
MATLAB のコマンドを実行するリンクがクリックされました。
このリンクは、Web ブラウザーでは動作しません。MATLAB コマンド ウィンドウに以下を入力すると、このコマンドを実行できます。
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:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Contact your local office