perObservationLoss
説明
例
インクリメンタル回帰モデルの観測値ごとの損失の計算
ロボット アームのデータ セットを読み込みます。標本サイズ n
と予測子変数の数 p
を取得します。
load robotarm
n = numel(ytrain);
p = size(Xtrain,2);
データ セットの詳細については、コマンド ラインで Description
を入力してください。
回帰用のインクリメンタル線形モデルを作成します。次のようにモデルを構成します。
メトリクスのウォームアップ期間を観測値 1000 個に指定。
メトリクス ウィンドウ サイズを観測値 500 個に指定。
すべての回帰係数およびバイアスを 0 に指定して、モデルを応答予測用に構成。
Mdl = incrementalRegressionLinear('MetricsWarmupPeriod',1000,'MetricsWindowSize',500,... 'Beta',zeros(p,1),'Bias',0,'EstimationPeriod',0)
Mdl = incrementalRegressionLinear IsWarm: 0 Metrics: [1x2 table] ResponseTransform: 'none' Beta: [32x1 double] Bias: 0 Learner: 'svm'
Mdl
はインクリメンタル学習用に構成された incrementalRegressionLinear
モデル オブジェクトです。プロパティはすべて読み取り専用です。
データ ストリームの作成用に各チャンクの変数の数を事前に割り当てて、パフォーマンス メトリクスを格納するための変数の数も割り当てます。
numObsPerChunk = 50; nchunk = floor(n/numObsPerChunk); L = zeros(nchunk,1); % To store loss values PoL = zeros(nchunk,50); % To store per observation loss values
それぞれ 50 個の観測値の入力チャンクを使用して、データ ストリームをシミュレートします。各反復で次を行います。
updateMetricsandFit
を呼び出して、累積性能および観測値ウィンドウ内での性能を測定し、モデルを入力データに当てはめます。前のインクリメンタル モデルを新しいモデルで上書きします。loss
を呼び出して入力データの平均二乗誤差を計算し、perObservationLoss
を呼び出して観測値ごとの二乗誤差を計算し、パフォーマンス メトリクスを格納します。
for j = 1:nchunk ibegin = min(n,numObsPerChunk*(j-1) + 1); iend = min(n,numObsPerChunk*j); idx = ibegin:iend; Mdl = updateMetricsAndFit(Mdl,Xtrain(idx,:),ytrain(idx)); L(j) = loss(Mdl,Xtrain(idx,:),ytrain(idx)); PoL(j,:) = perObservationLoss(Mdl,Xtrain(idx,:),ytrain(idx)); end
PerObservationLoss
は、ウォーム アップ期間後 (IsWarm
プロパティが 1 (または true
) になった後) にデータの各チャンクに含まれる観測値ごとの回帰損失 (二乗誤差) を計算します。PoL
は nchunk
行 numObsPerChunk
列の行列で、この例では 143 行 50 列の行列に対応します。各行はストリーム内の観測値ウィンドウに対応し、各列は対応するウィンドウ内の観測値に対応します。既定のウォームアップ期間は観測値 1000 個で、入力データ チャンク 20 個に対応します。したがって、PoL
の最初の 19 行には NaN
値のみが含まれます。loss
は、モデルがウォームかどうかに関係なく各データ ウィンドウの平均二乗誤差の計算を開始するため、最初の 19 個のチャンクについても回帰誤差を計算します。L
は 143 行 1 列のベクトルです。L
の各値は、PoL
の各行に含まれる二乗誤差値の平均に対応します。
L
と PoL
の行平均の差を計算し、値 20 ~ 25 を表示します。
diff = abs(L-mean(PoL,2)); diff(20:25)
ans = 6×1
10-15 ×
0.2220
0
0.2220
0.1110
0.1110
0.2220
2 つのベクトルの差はごくわずかです。
入力引数
Mdl
— インクリメンタル学習モデル
incrementalRegressionLinear
モデル オブジェクト | incrementalRegressionKernel
モデル オブジェクト
インクリメンタル学習モデル。incrementalRegressionKernel
または incrementalRegressionLinear
というモデル オブジェクトとして指定します。Mdl
は、直接作成することも、サポートされている従来式の学習済み機械学習モデルを関数 incrementalLearner
によって変換して作成することもできます。詳細については、対応するリファレンス ページを参照してください。
X
— 予測子データのバッチ
浮動小数点行列
観測値ごとの損失を計算するための予測子データのバッチ。n 個の観測値および Mdl.NumPredictors
個の予測子変数の浮動小数点行列として指定します。名前と値の引数 ObservationsIn
の値は、変数と観測値の方向を決定します。
観測値のラベル Y
の長さと X
の観測値の数は同じでなければなりません。Y(
は j
)X
内の観測値 j (行または列) のラベルです。
メモ
perObservationLoss
は、浮動小数点の入力予測子データのみをサポートしています。入力データに categorical データが含まれている場合は、エンコード バージョンの categorical データを準備する必要があります。dummyvar
を使用して、各カテゴリカル変数をダミー変数で構成される数値行列に変換します。その後、すべてのダミー変数行列とその他の数値予測子を連結します。詳細については、ダミー変数を参照してください。
データ型: single
| double
Y
— 応答のバッチ
浮動小数点ベクトル
観測値ごとの損失を計算するための応答のバッチ。浮動小数点ベクトルとして指定します。
Y
の長さと X
の観測値の数は同じでなければなりません。Y(
は j
)X
内の観測値 j (行または列) の応答です。
データ型: single
| double
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。
例: ObservationsIn="columns",LossFun="epsiloninsensitive"
は、観測値が列単位であり、損失関数が組み込みのイプシロン不感応損失であることを指定します。
ObservationsIn
— X
内のデータの方向
"rows"
(既定値) | "columns"
X
内のデータの方向。"rows"
または "columns"
を指定します。
例: ObservationsIn="columns"
LossFun
— 損失関数
"squarederror"
(既定値) | "epsiloninsensitive"
| 関数ハンドル
損失関数。組み込みの損失関数名または関数ハンドルとして指定します。
回帰用の使用可能な組み込みの損失関数は "squarederror"
または "epsiloninsensitive"
です。
カスタム損失関数を指定するには、関数ハンドル表記を使用します。関数は次の形式でなければなりません。
lossval = lossfcn(Y,YFit)
出力引数
lossval
は浮動小数点スカラーです。関数名 (
) を指定します。lossfcn
Y
は、観測応答の長さ n の数値ベクトルです。YFit
は、対応する予測応答の長さ n の数値ベクトルです。
例: LossFun="epsiloninsensitive"
例: LossFun=@
lossfcn
データ型: char
| string
| function_handle
バージョン履歴
R2022a で導入
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)