Main Content

loss

学習した特徴量の重みの精度をテスト データに対して評価

説明

err = loss(mdl,Tbl,ResponseVarName) は、モデル mdl、table Tbl 内の予測子の値、および table Tbl 内の変数 ResponseVarName に対する精度の尺度として平均二乗誤差を err に返します。この構文は、mdl が元々は table で学習させたものである場合に使用します。

err = loss(mdl,Tbl,Y) は、モデル mdl、table Tbl 内の予測子の値、および Y 内の応答値に対する精度の尺度として平均二乗誤差を err に返します。この構文は、mdl が元々は table で学習させたものである場合に使用します。

err = loss(mdl,X,Y) は、モデル mdl、行列 X 内の予測子の値、および Y 内の応答値に対する精度の尺度として平均二乗誤差を err に返します。この構文は、mdl が元々は数値行列で学習させたものである場合に使用します。

err = loss(___,LossFunction=lossFunc) は、指定された損失関数のタイプに従って精度の尺度を返します。前述の構文の入力引数に加えて、損失関数の仕様を使用します。

すべて折りたたむ

標本データ セット robotarm を読み込みます。

load robotarm.mat

robotarm データセット (pumadyn32nm) は、ロボット アーム シミュレータを使用して作成されており、7168 個の学習観測値、1024 個のテスト観測値、32 個の特徴量が含まれています [1][2]。これは、オリジナルのデータ セットを前処理したものです。データの前処理では、線形回帰近似を除外してから、すべての特徴量を単位分散に対して正規化しています。

既定値の "λ" (正則化パラメーター) を使用して、回帰用の近傍成分分析 (NCA) 特徴選択を実行します。

rng(1,"twister");   % For reproducibility
nca = fsrnca(Xtrain,ytrain);

テスト セットを性能の尺度として使用してモデルの損失を計算します。

l = loss(nca,Xtest,ytest)
l = 0.0844

既定では、関数は平均二乗誤差を計算します。

特徴量の重みおよび相対的なしきい値を使用して特徴量を選択します。

fw = nca.FeatureWeights;
tol = 0.001;
threshold = max(fw)*tol;
vars = fw>threshold;

選択された特徴量のみを使用して、予測子データの新しい学習セットとテスト セットを作成します。

Xtrain2 = Xtrain(:,vars);
Xtest2 = Xtest(:,vars);

新しい学習セットを使用して NCA モデルを更新します。新しいテスト セットを使用して新しいモデルの損失を計算します。

nca2 = fsrnca(Xtrain2,ytrain);
l2 = loss(nca2,Xtest2,ytest)
l2 = 0.0845

元のモデルの損失と更新後のモデルの損失の差を計算します。

abs(l-l2)
ans = 1.0549e-04

損失値の差が小さく、元のモデルの特徴量のサブセットで学習させた更新後のモデルでも元のモデルと同様の性能が得られることを示しています。

入力引数

すべて折りたたむ

回帰用の近傍成分分析モデル。FeatureSelectionNCARegression オブジェクトとして指定します。

標本データ。テーブルとして指定します。Tbl の各行は 1 つの観測値に、各列は 1 つの予測子変数に対応します。

データ型: table

応答変数の名前。Tbl 内の変数の名前で指定します。table 内の残りの変数は予測子です。

データ型: char | string

予測子変数の値。n 行 p 列の行列として指定します。ここで、n は観測値の数、p はモデルmdl の学習に使用した予測子変数の数です。

データ型: single | double

応答値。長さ n の実数数値ベクトルを指定します。n は観測値の個数です。Y が table Tbl に含まれている場合は省略できます。

データ型: single | double

損失関数のタイプ。次の値のいずれかとして指定します。

損失関数のタイプ説明
"mse"平均二乗誤差
"mad"平均絶対偏差

例: "mse"

出力引数

すべて折りたたむ

学習した特徴量の重みに対する、小さいほど優秀とする精度の尺度。スカラー値として返されます。精度の尺度は、名前と値の引数 LossFunction を使用して指定することができます。

参照

[1] Rasmussen, C. E., R. M. Neal, G. E. Hinton, D. van Camp, M. Revow, Z. Ghahramani, R. Kustra, and R. Tibshirani. The DELVE Manual, 1996, https://mlg.eng.cam.ac.uk/pub/pdf/RasNeaHinetal96.pdf.

[2] University of Toronto, Computer Science Department. Delve Datasets. http://www.cs.toronto.edu/~delve/data/datasets.html.

バージョン履歴

R2016b で導入