Main Content

RegressionPartitionedKernel

回帰用の交差検証済みカーネル モデル

説明

RegressionPartitionedKernel は、交差検証分割に対して学習をさせた一連のカーネル回帰モデルです。交差検証済みのカーネル回帰モデルを取得するには、fitrkernel を使用して交差検証オプションのいずれかを指定します。モデルの予測品質や、線形回帰モデルがどの程度一般化を行うかは、kfold メソッド kfoldPredict および kfoldLoss を 1 つ以上使用して評価できます。

すべての "kfold" メソッドは、"学習分割" 観測値に対して学習をさせたモデルを使用して、"検証分割" 観測値に対する応答を予測します。たとえば、データを 5 つに分割して交差検証を行うとします。この場合、ほぼ等しいサイズの 5 つのグループに各観測値が無作為に割り当てられます。"学習分割" にはグループのうち 4 つ (データの約 4/5) が含まれ、"検証分割" には残りのグループ (データの約 1/5) が含まれます。この場合、交差検証は次のように処理されます。

  1. CVMdl.Trained{1} に保存されている最初のモデルは、後の 4 グループの観測値によって学習され、最初のグループの観測値を検証用に保存します。

  2. (CVMdl.Trained{2} に格納されている) 2 番目のモデルの学習には、1 番目のグループと最後の 3 つのグループの観測値が使用されます。2 番目のグループの観測値は、検証用に予約されます。

  3. 3 ~ 5 番目のモデルについて同様の処理が行われます。

kfoldPredict を呼び出して検証する場合、最初のモデルを使用してグループ 1 の観測に対する予測が計算され、2 番目のモデルにはグループ 2 が計算され、以降同様です。つまり、それぞれの観測値に対する応答は、その観測値ではなく学習したモデルによって推定されます。

メモ

RegressionPartitionedKernel モデル オブジェクトに予測子データ セットは格納されません。

作成

関数 fitrkernel を使用して RegressionPartitionedKernel オブジェクトを作成します。fitrkernel を呼び出すときに、名前と値のペアの引数 'CrossVal''CVPartition''Holdout''KFold''Leaveout' のいずれかを使用します。詳細については、関数 fitrkernel のリファレンス ページを参照してください。

プロパティ

すべて展開する

交差検証のプロパティ

この プロパティ は読み取り専用です。

交差検証済みモデルの名前。文字ベクトルを指定します。

たとえば、'Kernel' は交差検証済みのカーネル モデルを指定します。

データ型: char

この プロパティ は読み取り専用です。

交差検証分割の個数。正の整数スカラーを指定します。

データ型: double

この プロパティ は読み取り専用です。

交差検証パラメーター値。オブジェクトを指定します。パラメーター値は、カーネル回帰モデルの交差検証に使用した名前と値のペアの引数の値に対応します。推定されたパラメーターは ModelParameters に含まれません。

この プロパティ は読み取り専用です。

学習データに含まれている観測値の数。正の数値スカラーを指定します。

データ型: double

この プロパティ は読み取り専用です。

データを交差検証分割に分割する方法を含むデータ分割。cvpartition モデルとして指定します。

この プロパティ は読み取り専用です。

交差検証分割に対して学習をさせたカーネル回帰モデル。RegressionKernel モデルの cell 配列を指定します。Trained には k 個のセルがあります。k は分割数です。

データ型: cell

この プロパティ は読み取り専用です。

モデルの交差検証に使用した観測値の重み。数値ベクトルを指定します。W には NumObservations 個の要素があります。

学習に使用する重みは正規化され sum(W,'omitnan')1 になります。

データ型: single | double

この プロパティ は読み取り専用です。

モデルの交差検証に使用する観測された応答値。数値ベクトルを指定します。Y の要素数は NumObservations です。

Y の各行は、予測子データ内の対応する観測値の観測応答を表します。

データ型: single | double

他の回帰のプロパティ

この プロパティ は読み取り専用です。

カテゴリカル予測子のインデックス。正の整数のベクトルとして指定します。CategoricalPredictors には、対応する予測子がカテゴリカルであることを示すインデックス値が格納されます。インデックス値の範囲は 1 ~ p です。p はモデルの学習に使用した予測子の数です。どの予測子もカテゴリカルではない場合、このプロパティは空 ([]) になります。

データ型: single | double

この プロパティ は読み取り専用です。

予測子データに現れる順序で並んでいる予測子名。文字ベクトルの cell 配列として指定します。PredictorNames の長さは、学習データ X または Tbl で予測子変数として使用される列の数と等しくなります。

データ型: cell

この プロパティ は読み取り専用です。

応答変数名。文字ベクトルを指定します。

データ型: char

応答変換関数。'none' または関数ハンドルを指定します。ResponseTransform は、モデルが予測した生の応答値を変換する方法を表します。

MATLAB® 関数やユーザー定義関数の場合は、関数ハンドルを入力します。たとえば、Mdl.ResponseTransform = @function を入力できます。ここで function は、元の応答の数値ベクトルを受け入れ、変換した応答が格納されている同じサイズの数値ベクトルを返します。

データ型: char | string | function_handle

オブジェクト関数

kfoldLoss交差検証済みカーネル回帰モデルの回帰損失
kfoldPredict交差検証済みカーネル回帰モデル内の観測値に対する応答の予測

すべて折りたたむ

標本データをシミュレートします。

rng(0,'twister'); % For reproducibility
n = 1000;
x = linspace(-10,10,n)';
y = 1 + x*2e-2 + sin(x)./x + 0.2*randn(n,1);

カーネル回帰モデルを交差検証します。

CVMdl = fitrkernel(x,y,'Kfold',5);

CVMdlRegressionPartitionedKernel 5 分割交差検証モデルです。CVMdl.Trained には 5 つの RegressionKernel モデルの cell ベクトルが含まれています。学習済みのプロパティを表示します。

CVMdl.Trained
ans=5×1 cell array
    {1x1 RegressionKernel}
    {1x1 RegressionKernel}
    {1x1 RegressionKernel}
    {1x1 RegressionKernel}
    {1x1 RegressionKernel}

各セルには、4 つの分割に対して学習をさせてから残りの分割に対してテストを行ったカーネル回帰モデルが格納されます。

CVMdlkfoldPredict に渡して検証分割内の観測値に対する応答を予測し、kfoldLoss に渡して汎化誤差を推定します。

yHat = kfoldPredict(CVMdl);
L = kfoldLoss(CVMdl)
L = 0.1887

既定では、kfoldLoss はすべての分割の平均二乗誤差の平均を計算します。推定された平均二乗誤差は 0.1887 です。

バージョン履歴

R2018b で導入