主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

损失

クラス:FeatureSelectionNCARegression

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

構文

呃=损失(mdl, X, Y)
呃=损失(mdl, X, Y,名称,值)

説明

犯错=损失(mdlXYは,モデルmdlX内の予測子の値,およびY内の応答値に対する精度の尺度として平均二乗誤差を犯错に返します。

犯错=损失(mdlXY名称,值は,名称,值ペア引数で指定された追加オプションを使用して,精度の尺度犯错を返します。

入力引数

すべて展開する

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

予測子変数の値。n行p列の行列を指定します。nは観測値の個数,pは予測子変数の個数です。

データ型:|

応答値。長さnの実数数値ベクトルを指定します。nは観測値の個数です。

データ型:|

名前と値のペアの引数

オプションの名称,值引数のコンマ区切りペアを指定します。的名字は引数名で,价值は対応する値です。的名字は引用符で囲まなければなりません。Name1, Value1,…,的家のように,複数の名前と値のペアの引数を,任意の順番で指定できます。

損失関数のタイプ。的损失函数と次のいずれかから構成されるコンマ区切りのペアとして指定します。

損失関数のタイプ 説明
mse的 平均二乗誤差
“疯了” 平均絶対偏差

例:“LossFunction”、“mse的

出力引数

すべて展開する

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

すべて展開する

標本データを読み込みます。

住宅データ[1]をUCI机器学习库[2]からダウンロードします。このデータセットには,506個の観測値が含まれています。最初の13列には予測子の値が,最後の列には応答値が含まれています。目標は,ボストン郊外にある持ち家の数の中央値を13個の予測子の関数として予測することです。

データを読み込み,応答ベクトルと予測子行列を定義します。

负载(“housing.data”);X =住房(:,1:13);y =住房(:,结束);

層化区分のグループ化変数として4番目の予測子を使用して,データを学習セットと検定セットに分割します。これにより,各グループから同じ量の観測値が各分割に含まれることが保証されます。

rng (1)%的再现性本量利= cvpartition (X (:, 4),“坚持”56);Xtrain = X (cvp.training:);ytrain = y (cvp.training:);Xtest = X (cvp.test:);欧美= y (cvp.test:);

cvpartitionは,56個の観測値を検定セットに,残りのデータを学習セットに無作為に割り当てます。

既定設定の使用による特徴選択の実行

回帰用のNCAモデルを使用して特徴選択を実行します。予測子の値を標準化します。

nca = fsrnca (Xtrain ytrain,“标准化”1);

特徴量の重みをプロットします。

图()(nca情节。FeatureWeights,“罗”

無関係な特徴量の重みはゼロに近くなると考えられます。fsrncaは2つの特徴量が無関係であると特定しています。

回帰損失を計算します。

L =损失(nca, Xtest,欧美,“LossFunction”“疯了”
L = 2.5394

検定セットについて予測される応答値を計算し,実際の応答に対してプロットします。

ypred =预测(nca, Xtest);图()图(ypred,欧美,“波”)包含(“预测响应”) ylabel (“实际响应”

実際の値に完全に一致すると,45°の直線になります。このプロットでは,予測された応答値と実際の応答値がこの直線の周辺に分布しているように見えます。通常は, λ (正則化パラメーター)の値を調整すると,性能の改善に役立ちます。

10分割交差検証の使用による正則化パラメーターの調整

λ の調整とは,回帰損失が最小になる λ の値を求めることを意味します。10分割の交差検証を使用して λ を調整する手順は次のようになります。

1.はじめに,データを10個の分割に分割します。各分割について,cvpartitionはデータの1/10を学習セットとして,9/10を検定セットとして割り当てます。

n =长度(ytrain);本量利= cvpartition (Xtrain (:, 4),“kfold”10);numvalidsets = cvp.NumTestSets;

探索用の λ の値を割り当てます。損失値を格納する配列を作成します。

lambdavals = linspace(0、2、30)*性病(ytrain) / n;lossvals = 0(长度(lambdavals), numvalidsets);

2 .各分割の学習セットを使用して, λ の各値について近傍成分分析(NCA)モデルに学習をさせます。

3.選択された特徴量を使用して,ガウス過程回帰(GPR)モデルをあてはめます。次に,このGPRモデルを使用して,分割内の対応する検定セットの回帰損失を計算します。損失の値を記録します。

4 .これを λ の各値および各分割に対して繰り返します。

i = 1:长度(lambdavals)k = 1:numvalidsets X = Xtrain(cvp.training(k),:);y = ytrain (cvp.training (k):);Xvalid = Xtrain (cvp.test (k):);yvalid = ytrain (cvp.test (k):);nca = fsrnca (X, y,“FitMethod”“准确”...“λ”lambdavals(我),...“标准化”,1,“LossFunction”“疯了”);%使用特征权重和相对值选择特征%的阈值。托尔= 1 e - 3;selidx = nca。FeatureWeights > tol *马克斯(max (nca.FeatureWeights));%匹配一个使用选定特征的非ard探地雷达模型。探地雷达= fitrgp (X (:, selidx), y,“标准化”,1,...“KernelFunction”“squaredexponential”“详细”, 0);lossvals (i (k) =损失(gpr, Xvalid (:, selidx) yvalid);结束结束

λ の各値について,分割から得られる平均損失を計算します。平均損失と λ の値をプロットします。

meanloss =意味着(lossvals, 2);图;情节(lambdavals meanloss,“ro - - - - - -”);包含(“λ”);ylabel (“损失(MSE)”);网格

損失値が最小になる λ の値を求めます。

[~, idx] = min (meanloss);bestlambda = lambdavals (idx)
bestlambda = 0.0251

最良の λ 値を使用して回帰用の特徴選択を実行します。予測子の値を標準化します。

nca2 = fsrnca (Xtrain ytrain,“标准化”,1,“λ”bestlambda,...“LossFunction”“疯了”);

特徴量の重みをプロットします。

图()(nca情节。FeatureWeights,“罗”

特徴量の選択には使用されなかった検定データに対して新しいNCAモデルを使用して,損失を計算します。

L2 =损失(nca2 Xtest,欧美,“LossFunction”“疯了”
L2 = 2.0560

正則化パラメーターの調整は,関連がある特徴量を識別して損失を減らすために役立ちます。

予測された応答値と検定セット内の実際の応答値をプロットします。

ypred =预测(nca2 Xtest);图;情节(ypred,欧美,“波”);

予測された応答値は,実際の値に十分近いように見えます。

参考文献

哈里森,d。和d。l。,Rubinfeld。"享乐的价格和对清洁空气的需求"j .包围。经济学和管理。第5卷,1978年,第81-102页。

[2] Lichman, m.uci机器学习库,欧文,CA:加州大学信息与计算机科学学院,2013。https://archive.ics.uci.edu/ml

R2016bで導入