ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

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 個の要素があります。

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

データ型: single | double

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

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

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

データ型: single | double

他の回帰のプロパティ

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

カテゴリカル予測子のインデックス。空の数値を指定します。一般に、カテゴリカル予測子が含まれている予測子データの列に対応するインデックス値が、CategoricalPredictors に格納されます。RegressionKernel モデルは数値予測子データのみに対して学習をさせることができるので、このプロパティは空 ([]) です。

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

予測子データ (X) に現れる順序で並んでいる予測子名。{'x1','x2',...} という形式の文字ベクトルの cell 配列を指定します。PredictorNames の長さは、X の列数と同じです。

データ型: cell

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

応答変数名。'Y' を指定します。表形式のデータを使用して RegressionKernel モデルに学習をさせることはできないので、このプロパティは常に 'Y' です。

データ型: char

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

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

データ型: char | string | 関数ハンドル

オブジェクト関数

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);

CVMdl は、RegressionPartitionedKernel 交差検証済みモデルです。既定では fitrkernel は 10 分割の交差検証を実施するので、CVMdl.Trained には 10 個の RegressionKernel モデルによる cell ベクトルが格納されます。学習済みのプロパティを表示します。

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

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

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

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

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

R2018b で導入