crossval
機械学習モデルの交差検証
説明
例
ionosphere データ セットを読み込みます。このデータ セットには、レーダー反射についての 34 個の予測子と、不良 ('b') または良好 ('g') という 351 個の二項反応が含まれています。
load ionosphere rng(1); % For reproducibility
サポート ベクター マシン (SVM) 分類器に学習させます。予測子データを標準化し、クラスの順序を指定します。
SVMModel = fitcsvm(X,Y,'Standardize',true,'ClassNames',{'b','g'});
SVMModel は学習させた ClassificationSVM 分類器です。'b' は陰性のクラス、'g' は陽性のクラスです。
10 分割交差検証を使用して分類器を交差検証します。
CVSVMModel = crossval(SVMModel)
CVSVMModel =
ClassificationPartitionedModel
CrossValidatedModel: 'SVM'
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' 'x33' 'x34'}
ResponseName: 'Y'
NumObservations: 351
KFold: 10
Partition: [1×1 cvpartition]
ClassNames: {'b' 'g'}
ScoreTransform: 'none'
Properties, Methods
CVSVMModel は ClassificationPartitionedModel 交差検証分類器です。交差検証時は、以下の手順が実行されます。
データを同じサイズの 10 個のセットに無作為に分割する。
9 個のセットに対して SVM 分類器に学習をさせる。
手順 1 および 2 を k = 10 回繰り返す。毎回、1 個の分割が除外され、残りの 9 個について学習が行われます。
各分割について汎化統計量を結合する。
CVSVMModel.Trained 内の最初のモデルを表示します。
FirstModel = CVSVMModel.Trained{1}FirstModel =
CompactClassificationSVM
ResponseName: 'Y'
CategoricalPredictors: []
ClassNames: {'b' 'g'}
ScoreTransform: 'none'
Alpha: [78×1 double]
Bias: -0.2209
KernelParameters: [1×1 struct]
Mu: [0.8888 0 0.6320 0.0406 0.5931 0.1205 0.5361 0.1286 0.5083 0.1879 0.4779 0.1567 0.3924 0.0875 0.3360 0.0789 0.3839 9.6066e-05 0.3562 -0.0308 0.3398 -0.0073 0.3590 -0.0628 0.4064 -0.0664 0.5535 -0.0749 0.3835 … ] (1×34 double)
Sigma: [0.3149 0 0.5033 0.4441 0.5255 0.4663 0.4987 0.5205 0.5040 0.4780 0.5649 0.4896 0.6293 0.4924 0.6606 0.4535 0.6133 0.4878 0.6250 0.5140 0.6075 0.5150 0.6068 0.5222 0.5729 0.5103 0.5061 0.5478 0.5712 0.5032 … ] (1×34 double)
SupportVectors: [78×34 double]
SupportVectorLabels: [78×1 double]
Properties, Methods
FirstModel は 10 個の学習させた分類器のうち最初のものです。これは CompactClassificationSVM 分類器です。
CVSVMModel を kfoldLoss に渡すと、汎化誤差を推定できます。
交差検証のホールドアウト標本比率を指定します。既定では、crossval は 10 分割交差検証を使用して単純ベイズ分類器を交差検証します。しかし、交差検証には他のいくつかのオプションがあります。たとえば、異なる分割数またはホールドアウト標本比率を指定できます。
ionosphere データ セットを読み込みます。このデータ セットには、レーダー反射についての 34 個の予測子と、不良 ('b') または良好 ('g') という 351 個の二項反応が含まれています。
load ionosphere安定させるため、最初の 2 つの予測子を削除します。
X = X(:,3:end); rng('default'); % For reproducibility
予測子 X とクラス ラベル Y を使用して、単純ベイズ分類器に学習させます。クラス名を指定することが推奨されます。'b' は陰性クラスで、'g' は陽性クラスです。fitcnb は、各予測子が条件付き正規分布に従うと仮定しています。
Mdl = fitcnb(X,Y,'ClassNames',{'b','g'});
Mdl は学習させた ClassificationNaiveBayes 分類器です。
30% のホールドアウト標本を指定して、分類器を交差検証します。
CVMdl = crossval(Mdl,'Holdout',0.3)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: 1
Partition: [1×1 cvpartition]
ClassNames: {'b' 'g'}
ScoreTransform: 'none'
Properties, Methods
CVMdl は、交差検証した単純ベイズ分類器 ClassificationPartitionedModel です。
70% のデータを使用して学習させた分類器のプロパティを表示します。
TrainedModel = CVMdl.Trained{1}TrainedModel =
CompactClassificationNaiveBayes
ResponseName: 'Y'
CategoricalPredictors: []
ClassNames: {'b' 'g'}
ScoreTransform: 'none'
DistributionNames: {1×32 cell}
DistributionParameters: {2×32 cell}
Properties, Methods
TrainedModel は CompactClassificationNaiveBayes 分類器です。
CVMdl を kfoldloss に渡して、汎化誤差を推定します。
kfoldLoss(CVMdl)
ans = 0.2095
標本外の誤分類誤差は約 21% です。
上位 5 つの重要な予測子を選択して、汎化誤差を減らします。
idx = fscmrmr(X,Y); Xnew = X(:,idx(1:5));
新しい予測子向けに単純ベイズ分類器の学習を行います。
Mdlnew = fitcnb(Xnew,Y,'ClassNames',{'b','g'});
30% のホールドアウト標本を指定して新しい分類器を交差検証し、汎化誤差を推定します。
CVMdlnew = crossval(Mdlnew,'Holdout',0.3);
kfoldLoss(CVMdlnew)ans = 0.1429
標本外の誤分類誤差が約 21% から約 14% まで減っています。
fitrgam を使用して回帰一般化加法モデル (GAM) に学習させ、crossval とホールドアウト オプションを使用して交差検証済み GAM を作成します。その後、kfoldPredict を使用し、学習分割観測値に対して学習をさせたモデルを使用して、検証分割観測値の応答を予測します。
patients データ セットを読み込みます。
load patients予測子変数 (Age、Diastolic、Smoker、Weight、Gender、SelfAssessedHealthStatus) と応答変数 (Systolic) を格納する table を作成します。
tbl = table(Age,Diastolic,Smoker,Weight,Gender,SelfAssessedHealthStatus,Systolic);
予測子の線形項が格納されている GAM に学習させます。
Mdl = fitrgam(tbl,'Systolic');Mdl は RegressionGAM モデル オブジェクトです。
30% のホールドアウト標本を指定して、モデルを交差検証します。
rng('default') % For reproducibility CVMdl = crossval(Mdl,'Holdout',0.3)
CVMdl =
RegressionPartitionedGAM
CrossValidatedModel: 'GAM'
PredictorNames: {'Age' 'Diastolic' 'Smoker' 'Weight' 'Gender' 'SelfAssessedHealthStatus'}
CategoricalPredictors: [3 5 6]
ResponseName: 'Systolic'
NumObservations: 100
KFold: 1
Partition: [1×1 cvpartition]
NumTrainedPerFold: [1×1 struct]
ResponseTransform: 'none'
IsStandardDeviationFit: 0
Properties, Methods
関数 crossval は、ホールドアウト オプションを使用して RegressionPartitionedGAM モデル オブジェクトの CVMdl を作成します。交差検証時は、以下の手順が実行されます。
30% のデータを無作為に選択して検証データとして確保し、残りのデータを使用してモデルに学習をさせる。
コンパクトな学習済みモデルを交差検証済みモデル オブジェクト
RegressionPartitionedGAMのTrainedプロパティに格納する。
名前と値の引数 'CrossVal'、'CVPartition'、'KFold' または 'Leaveout' を使用すると、別の交差検証の設定を選択できます。
kfoldPredict を使用して検証分割観測値の応答を予測します。この関数は、学習分割観測値に対して学習をさせたモデルを使用して、検証分割観測値の応答を予測します。この関数では、学習分割観測値に NaN が割り当てられます。
yFit = kfoldPredict(CVMdl);
検証分割観測値のインデックスを検出して、観測値のインデックス、観測された応答値および予測された応答値が格納されている table を作成します。table の最初の 8 行を表示します。
idx = find(~isnan(yFit)); t = table(idx,tbl.Systolic(idx),yFit(idx), ... 'VariableNames',{'Obseraction Index','Observed Value','Predicted Value'}); head(t)
Obseraction Index Observed Value Predicted Value
_________________ ______________ _______________
1 124 130.22
6 121 124.38
7 130 125.26
12 115 117.05
20 125 121.82
22 123 116.99
23 114 107
24 128 122.52
検証分割観測値の回帰誤差 (平均二乗誤差) を計算します。
L = kfoldLoss(CVMdl)
L = 43.8715
SVM バイナリ学習器による ECOC 分類器を交差検証し、一般化分類誤差を推定します。
フィッシャーのアヤメのデータ セットを読み込みます。予測子データ X と応答データ Y を指定します。
load fisheriris X = meas; Y = species; rng(1); % For reproducibility
SVM テンプレートを作成し、予測子を標準化します。
t = templateSVM('Standardize',true)t =
Fit template for SVM.
Standardize: 1
t は SVM テンプレートです。テンプレート オブジェクトのプロパティは、ほとんとが空です。ECOC 分類器に学習をさせると、該当するプロパティが既定値に設定されます。
ECOC 分類器に学習をさせ、クラスの順序を指定します。
Mdl = fitcecoc(X,Y,'Learners',t,... 'ClassNames',{'setosa','versicolor','virginica'});
Mdl は ClassificationECOC 分類器です。ドット表記を使用してプロパティにアクセスできます。
10 分割交差検証を使用して Mdl を交差検証します。
CVMdl = crossval(Mdl);
CVMdl は ClassificationPartitionedECOC 交差検証 ECOC 分類器です。
一般化分類誤差を推定します。
genError = kfoldLoss(CVMdl)
genError = 0.0400
一般化分類誤差が 4% なので、ECOC 分類器がかなり良好に一般化を行うことがわかります。
最初にホールドアウト検証を使用して分割し、次に 5 分割交差検証を使用して分割した分位点ニューラル ネットワーク回帰モデルについて、それぞれの分位点損失を計算します。2 つの損失を比較します。
carbig データ セットを読み込みます。このデータ セットには、1970 年代と 1980 年代初期に製造された自動車の測定値が格納されています。Acceleration、Cylinders、Displacement などの予測子変数と応答変数 MPG が格納された table を作成します。最初の 8 つの観測値を表示します。
load carbig cars = table(Acceleration,Cylinders,Displacement, ... Horsepower,Model_Year,Origin,Weight,MPG); head(cars)
Acceleration Cylinders Displacement Horsepower Model_Year Origin Weight MPG
____________ _________ ____________ __________ __________ _______ ______ ___
12 8 307 130 70 USA 3504 18
11.5 8 350 165 70 USA 3693 15
11 8 318 150 70 USA 3436 18
12 8 304 150 70 USA 3433 16
10.5 8 302 140 70 USA 3449 17
10 8 429 198 70 USA 4341 15
9 8 454 220 70 USA 4354 14
8.5 8 440 215 70 USA 4312 14
cars から table に欠損値がある行を削除します。
cars = rmmissing(cars);
米国製かどうかに基づいて、自動車を分類します。
cars.Origin = categorical(cellstr(cars.Origin)); cars.Origin = mergecats(cars.Origin,["France","Japan",... "Germany","Sweden","Italy","England"],"NotUSA");
データの分割には cvpartition を使用します。まず、観測値の約 80% を学習データ、約 20% をテスト データに使用して、ホールドアウト検証用の分割を作成します。次に、5 分割交差検証用の分割を作成します。
rng(0,"twister") % For reproducibility holdoutPartition = cvpartition(height(cars),Holdout=0.20); kfoldPartition = cvpartition(height(cars),KFold=5);
cars のデータを使用して分位点ニューラル ネットワーク回帰モデルに学習させます。MPG を応答変数として指定し、数値予測子を標準化します。既定の 0.5 分位数 (中央値) を使用します。
Mdl = fitrqnet(cars,"MPG",Standardize=true);crossval を使用して、分割された分位点回帰モデルを作成します。
holdoutMdl = crossval(Mdl,CVPartition=holdoutPartition)
holdoutMdl =
RegressionPartitionedQuantileModel
CrossValidatedModel: 'QuantileNeuralNetwork'
PredictorNames: {'Acceleration' 'Cylinders' 'Displacement' 'Horsepower' 'Model_Year' 'Origin' 'Weight'}
CategoricalPredictors: 6
ResponseName: 'MPG'
NumObservations: 392
KFold: 1
Partition: [1×1 cvpartition]
ResponseTransform: 'none'
Quantiles: 0.5000
Properties, Methods
kfoldMdl = crossval(Mdl,CVPartition=kfoldPartition)
kfoldMdl =
RegressionPartitionedQuantileModel
CrossValidatedModel: 'QuantileNeuralNetwork'
PredictorNames: {'Acceleration' 'Cylinders' 'Displacement' 'Horsepower' 'Model_Year' 'Origin' 'Weight'}
CategoricalPredictors: 6
ResponseName: 'MPG'
NumObservations: 392
KFold: 5
Partition: [1×1 cvpartition]
ResponseTransform: 'none'
Quantiles: 0.5000
Properties, Methods
kfoldLoss オブジェクト関数を使用して、holdoutMdl と kfoldMdl の分位点損失を計算します。
holdoutL = kfoldLoss(holdoutMdl)
holdoutL = 0.9488
kfoldL = kfoldLoss(kfoldMdl)
kfoldL = 0.9628
holdoutL は 1 つのホールドアウト セットを使用して計算された分位点損失で、kfoldL は 5 つのホールドアウト セットを使用して計算された平均分位点損失です。未観測データに対するモデルの性能については、交差検証のメトリクスの方が優れた指標となる傾向があります。
入力引数
機械学習モデル。分類、回帰、または分位点回帰の完全なモデル オブジェクトとして指定します。サポートされるモデルは以下の表に記載されています。
分類モデル オブジェクト
| モデル | 完全な分類モデル オブジェクト |
|---|---|
| 判別分析分類器 | ClassificationDiscriminant |
| マルチクラス誤り訂正出力符号 (ECOC) モデル | ClassificationECOC |
| アンサンブル分類器 | ClassificationEnsemble, ClassificationBaggedEnsemble |
| 一般化加法モデル | ClassificationGAM |
| k 最近傍モデル | ClassificationKNN |
| 単純ベイズ モデル | ClassificationNaiveBayes |
| ニューラル ネットワーク モデル | ClassificationNeuralNetwork |
| 1 クラスおよびバイナリ分類用のサポート ベクター マシン | ClassificationSVM |
| マルチクラス分類用の二分決定木 | ClassificationTree |
回帰モデル オブジェクト
| モデル | 完全な回帰モデル オブジェクト |
|---|---|
| アンサンブル回帰モデル | RegressionEnsemble, RegressionBaggedEnsemble |
| ガウス過程回帰 (GPR) モデル | RegressionGP (fitrgp の呼び出しでカスタムの ActiveSet 値を指定した場合は GPR モデルの交差検証は実行できない) |
| 一般化加法モデル (GAM) | RegressionGAM |
| ニューラル ネットワーク モデル | RegressionNeuralNetwork (fitrnet の呼び出しで複数の応答変数を使用した場合はニューラル ネットワーク モデルの交差検証は実行できない) |
| サポート ベクター マシン回帰モデル | RegressionSVM |
| 回帰木モデル | RegressionTree |
分位点回帰モデル オブジェクト
| モデル | 完全な分位点回帰モデル オブジェクト |
|---|---|
分位点線形回帰モデル (R2025a 以降) | RegressionQuantileLinear |
回帰用の分位点ニューラル ネットワーク モデル (R2025a 以降) | RegressionQuantileNeuralNetwork |
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name を引用符で囲みます。
例: crossval(Mdl,KFold=3) は、交差検証済みモデルで 3 個の分割を使用するように指定します。
交差検証分割。交差検証のタイプと学習セットおよび検証セットのインデックス付けを指定する cvpartition オブジェクトとして指定します。
交差検証済みモデルの作成で指定できる名前と値の引数は、CVPartition、Holdout、KFold、Leaveout の 4 つのうちのいずれかのみです。
例: cvp = cvpartition(500,KFold=5) を使用して、500 個の観測値に対する 5 分割交差検証について無作為な分割を作成するとします。この場合、CVPartition=cvp を設定して交差検証分割を指定できます。
ホールドアウト検証に使用するデータの比率。範囲 (0,1) のスカラー値として指定します。Holdout=p を指定した場合、以下の手順が実行されます。
p*100% のデータを無作為に選択して検証データとして確保し、残りのデータを使用してモデルに学習をさせる。コンパクトな学習済みモデルを交差検証済みモデルの
Trainedプロパティに格納する。
交差検証済みモデルの作成で指定できる名前と値の引数は、CVPartition、Holdout、KFold、Leaveout の 4 つのうちのいずれかのみです。
例: Holdout=0.1
データ型: double | single
交差検証済みモデルで使用する分割の数。1 より大きい正の整数値として指定します。KFold=k を指定した場合、以下の手順が実行されます。
データを無作為に
k個のセットに分割する。各セットについて、そのセットを検証データとして確保し、他の
k– 1 個のセットを使用してモデルに学習をさせる。k個のコンパクトな学習済みモデルを、交差検証済みモデルのTrainedプロパティに含まれているk行 1 列の cell ベクトルに格納する。
交差検証済みモデルの作成で指定できる名前と値の引数は、CVPartition、Holdout、KFold、Leaveout の 4 つのうちのいずれかのみです。
例: KFold=5
データ型: single | double
Leave-one-out 法の交差検証のフラグ。"on" または "off" として指定します。Leaveout="on" を指定した場合、n 個の観測値 (n は、モデルの NumObservations プロパティで指定される、欠損観測値を除外した観測値の個数) のそれぞれについて以下の手順が実行されます。
いずれかの観測値を検証データとして確保し、他の n - 1 個の観測値を使用してモデルに学習をさせる。
n 個のコンパクトな学習済みモデルを、交差検証済みモデルの
Trainedプロパティに含まれている n 行 1 列の cell ベクトルに格納する。
交差検証済みモデルの作成で指定できる名前と値の引数は、CVPartition、Holdout、KFold、Leaveout の 4 つのうちのいずれかのみです。
例: Leaveout="on"
データ型: char | string
出力頻度。正の整数または "off" として指定します。
これまでに学習させた分割の数を追跡するには、正の整数 m を指定します。m 個の分割の学習が完了するたびにコマンド ラインにメッセージが表示されます。
"off" を指定した場合、分割の学習が完了してもメッセージは表示されません。
メモ
Nprint は Mdl が ClassificationEnsemble モデル オブジェクトまたは RegressionEnsemble モデル オブジェクトの場合のみ指定できます。
例: NPrint=5
データ型: single | double | char | string
並列計算のオプション。構造体として指定します。statset を使用して Options 構造体を作成します。
並列計算を行うには、Parallel Computing Toolbox™ が必要です。
Options は Mdl が ClassificationECOC モデル オブジェクトの場合のみ指定できます。
例: Options=statset(UseParallel=true)
データ型: struct
出力引数
交差検証された機械学習モデル。入力モデル Mdl に応じて、次の表の交差検証された (分割された) モデル オブジェクトのいずれかとして返されます。
分類モデル オブジェクト
| モデル | 分類モデル (Mdl) | 交差検証済みモデル (CVMdl) |
|---|---|---|
| 判別分析分類器 | ClassificationDiscriminant | ClassificationPartitionedModel |
| マルチクラス誤り訂正出力符号 (ECOC) モデル | ClassificationECOC | ClassificationPartitionedECOC |
| アンサンブル分類器 | ClassificationEnsemble, ClassificationBaggedEnsemble | ClassificationPartitionedEnsemble |
| 一般化加法モデル | ClassificationGAM | ClassificationPartitionedGAM |
| k 最近傍モデル | ClassificationKNN | ClassificationPartitionedModel |
| 単純ベイズ モデル | ClassificationNaiveBayes | ClassificationPartitionedModel |
| ニューラル ネットワーク モデル | ClassificationNeuralNetwork | ClassificationPartitionedModel |
| 1 クラスおよびバイナリ分類用のサポート ベクター マシン | ClassificationSVM | ClassificationPartitionedModel |
| マルチクラス分類用の二分決定木 | ClassificationTree | ClassificationPartitionedModel |
回帰モデル オブジェクト
| モデル | 回帰モデル (Mdl) | 交差検証済みモデル (CVMdl) |
|---|---|---|
| アンサンブル回帰モデル | RegressionEnsemble, RegressionBaggedEnsemble | RegressionPartitionedEnsemble |
| ガウス過程回帰モデル | RegressionGP | RegressionPartitionedGP |
| 一般化加法モデル | RegressionGAM | RegressionPartitionedGAM |
| ニューラル ネットワーク モデル | RegressionNeuralNetwork | RegressionPartitionedNeuralNetwork |
| サポート ベクター マシン回帰モデル | RegressionSVM | RegressionPartitionedSVM |
| 回帰木モデル | RegressionTree | RegressionPartitionedModel |
分位点回帰モデル オブジェクト
| モデル | 分位点回帰モデル (Mdl) | 交差検証済みモデル (CVMdl) |
|---|---|---|
分位点線形回帰モデル (R2025a 以降) | RegressionQuantileLinear | RegressionPartitionedQuantileModel |
回帰用の分位点ニューラル ネットワーク モデル (R2025a 以降) | RegressionQuantileNeuralNetwork | RegressionPartitionedQuantileModel |
ヒント
交差検証データに対する
Mdlの予測性能を評価するには、CVMdlの kfold の関数とプロパティを使用します。分類の場合はkfoldPredict、kfoldLoss、kfoldMargin、kfoldEdge、回帰の場合はkfoldPredict、kfoldLoss、分位点回帰の場合はkfoldPredict、kfoldLossなどを使用できます。名前と値の引数
KFoldまたはHoldoutを使用して、層化区分で分割した分類器を返します。cvpartitionオブジェクトcvpを作成するには、cvp =cvpartition(n,KFold=k)を使用します。名前と値の引数CVPartition=cvpを使用して、非層化区分で分割した分類器を返します。
代替機能
モデルに学習させてから交差検証を行う代わりに、近似関数を使用して名前と値の引数 CVPartition、Holdout、KFold、Leaveout のいずれかを指定することにより、交差検証済みモデルを直接作成できます。
拡張機能
使用上の注意および制限:
この関数は、
ClassificationECOC、ClassificationEnsemble、ClassificationKNN、ClassificationNeuralNetwork、ClassificationSVM、またはClassificationTreeオブジェクトとして指定した学習済み分類モデルの GPU 配列を完全にサポートします。この関数は、
RegressionEnsemble、RegressionNeuralNetwork、RegressionSVM、またはRegressionTreeオブジェクトとして指定した学習済み回帰モデルの GPU 配列を完全にサポートします。
詳細は、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2012a で導入crossval オブジェクト関数を使用して、RegressionQuantileLinear モデル オブジェクトと RegressionQuantileNeuralNetwork モデル オブジェクトを交差検証できます。関数は RegressionPartitionedQuantileModel モデル オブジェクトを返します。
crossval は、RegressionNeuralNetwork と ClassificationNeuralNetwork の GPU 配列を完全にサポートします。
R2023b 以降では、交差検証回帰ニューラル ネットワーク モデルは RegressionPartitionedNeuralNetwork オブジェクトです。以前のリリースでは、交差検証回帰ニューラル ネットワーク モデルは RegressionPartitionedModel オブジェクトでした。
RegressionPartitionedNeuralNetwork オブジェクトは 2 つの方法で作成できます。
オブジェクト関数
crossvalを使用して、回帰ニューラル ネットワーク モデル オブジェクトRegressionNeuralNetworkから交差検証済みモデルを作成する。関数
fitrnetを使用し、名前と値の引数CrossVal、CVPartition、Holdout、KFold、Leaveoutのいずれかを指定して、交差検証済みモデルを作成する。
R2022b 以降では、交差検証ガウス過程回帰 (GPR) モデルは RegressionPartitionedGP オブジェクトです。以前のリリースでは、交差検証 GPR モデルは RegressionPartitionedModel オブジェクトでした。
RegressionPartitionedGP オブジェクトは 2 つの方法で作成できます。
オブジェクト関数
crossvalを使用して、GPR モデル オブジェクトRegressionGPから交差検証済みモデルを作成する。関数
fitrgpを使用し、名前と値の引数CrossVal、CVPartition、Holdout、KFold、Leaveoutのいずれかを指定して、交差検証済みモデルを作成する。
最初に GPR モデルの完全なモデルと交差検証済みモデルのどちらに学習させるかに関係なく、fitrgp の呼び出しで ActiveSet の値を指定することはできません。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)