主要内容

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

回帰にNCAを使用するロバスト特徴選択

カスタムなロバスト損失関数をNCAで使用して,外れ値に対してロバストな特徴選択を実行します。

外れ値があるデータ生成

3つの予測子(予測子4、7および13)に応答が依存する回帰用の標本データを生成します。

rng (123“旋风”重复性的%n = 200;x = randn(n,20);y = cos(x(:,7))+ sin(x(:,4)。* x(:,13))+ 0.1 * randn(n,1);

外れ値をデータに追加します。

numoutliers = 25;outlieridx =地板(linspace (10 90 numoutliers));y (outlieridx) = 5 * randn (numoutliers, 1);

データをプロットする。

图绘图(y)

非ロバストな損失関数の使用

特徴选択アルゴリズム性能は,正则化パラメーターの値に大厦依存します。特色选択でのますますに最もてているにによう正式をを调整ようお勧めますを调整するをします。を均误差(MSE)を使しし调整调整。

MSE 1 n 1 n y - y j 2

はじめに,データを5つの分割に分割します。各分割で,データの4/5は学習に,1/5は検証(検定)に使用されます。

本量利= cvpartition(长度(y),“kfold”5);numtestsets = cvp.NumTestSets;

検定するラムダ値を計算し,損失値を格納する配列を作成します。

lambdavals = linspace(0,3,50)* std(y)/长度(y);损失vals = zeros(长度(lambdavals),numtestsets);

ncaを実行し,各 λ. 値および各分类について损失を计算ます。

i = 1:长度(lambdavals)k = 1:numtestsets xtrain = x(cvp.training(k),:);YTrain = Y(CVP.TRINATION(k),:);xtest = x(cvp.test(k),:);ytest = y(cvp.test(k),:);NCA = FSRNCA(XTrain,Ytrain,“FitMethod”'精确的'...'求解'“lbfgs”“详细”0,“λ”,lambdavals(i),...“LossFunction”'妈妈');lossvals (i (k) =损失(nca, Xtest,欧美,“LossFunction”'妈妈');结束结束

各ラムダ値に対応する平均損失をプロットします。

Figure meanloss = mean(lossvals,2);情节(lambdavals meanloss,'ro-')Xlabel(“λ”)ylabel(“损失(MSE)”) 网格

平静损失が最小になる λ. の値を求めます。

[〜,IDX] = min(平均值(损失vals,2));Bestlambda = Lambdavals(IDX)
bestlambda = 0.0231

最良の λ. 値およびMSEを使用して特徴選択を実行します。

nca = fsrnca(x,y,“FitMethod”'精确的''求解'“lbfgs”...“详细”,1,“λ”,bestlambda,“LossFunction”'妈妈');
o Solver = LBFGS, HessianHistorySize = 15,LineSearchMethod = weakwolfe  |====================================================================================================| | ITER | |娱乐价值规范研究生| |规范一步曲线|γ|α|接受  | |====================================================================================================| | 0 e + 00 | 6.414642 | 8.430 e-01 |e-01 0.000 e + 00 | | 7.117 | 0.000 e + 00 |是| | 1 | 6.066100 e + 00 e-01 | 9.952 | 1.264 e + 00 |好| 3.741 e-01 | 1.000 e + 00 |是| | 2 | 5.498221 e + 00 e-01 | 4.267 | 4.250 e-01 | e-01好| 4.016 | 1.000 e + 00 |是| | 3 | 5.108548 e + 00 e-01 | 3.933 | 8.564 e-01 | e-01好| 3.599 | 1.000 e + 00 |是| | 4 | 4.808456 e + 00 e-01 | 2.505 | 9.352 e-01 |好| 8.798 e-01 |1.000 e + 00 |是| | 5 | 4.677382 e + 00 e-01 | 2.085 | 6.014 e-01 |好| 1.052 e + 1.000 e + 00 00 | |是| | 6 | 4.487789 e + 00 e-01 | 4.726 | 7.374 e-01 | e-01好| 5.593 | 1.000 e + 00 |是| | 7 | 4.310099 e + 00 e-01 | 2.484 | 4.253 e-01 |好| 3.367 e-01 | 1.000 e + 00 |是| | 8 e + 00 | 4.258539 | 3.629 e-01 e-01 4.521 | |好| 4.705 e-01 e-01 | 5.000 |是| | |e-01 4.175345 e + 00 | 1.972 | 2.608 e-01 |好| 4.018 e-01 | 1.000 e + 00 |是| | 10 e + 00 | 4.122340 | 9.169 e-02 e-01 2.947 | |好| 3.487 e-01 | 1.000 e + 00 |是| | 11 | 4.095525 e + 00 e-02 | 9.798 | 2.529 e-01 |好| 1.188 e + 1.000 e + 00 00 | |是| | 12 | 4.059690 e + 00 e-01 | 1.584 | 5.213 e-01 | e-01好| 9.930 | 1.000 e + 00 |是| | 13 e + 00 | 4.029208 | 7.411 e-02 |2.076e-01 | OK | 4.886e-01 | 1.000e+00 | YES | | 14 | 4.016358e+00 | 1.068e-01 | 2.696e-01 | OK | 6.919e-01 | 1.000e+00 | YES | | 15 | 4.004521e+00 | 5.434e-02 | 1.136e-01 | OK | 5.647e-01 | 1.000e+00 | YES | | 16 | 3.986929e+00 | 6.158e-02 | 2.993e-01 | OK | 1.353e+00 | 1.000e+00 | YES | | 17 | 3.976342e+00 | 4.966e-02 | 2.213e-01 | OK | 7.668e-01 | 1.000e+00 | YES | | 18 | 3.966646e+00 | 5.458e-02 | 2.529e-01 | OK | 1.988e+00 | 1.000e+00 | YES | | 19 | 3.959586e+00 | 1.046e-01 | 4.169e-01 | OK | 1.858e+00 | 1.000e+00 | YES | |====================================================================================================| | ITER | FUN VALUE | NORM GRAD | NORM STEP | CURV | GAMMA | ALPHA | ACCEPT | |====================================================================================================| | 20 | 3.953759e+00 | 8.248e-02 | 2.892e-01 | OK | 1.040e+00 | 1.000e+00 | YES | | 21 | 3.945475e+00 | 3.119e-02 | 1.698e-01 | OK | 1.095e+00 | 1.000e+00 | YES | | 22 | 3.941567e+00 | 2.350e-02 | 1.293e-01 | OK | 1.117e+00 | 1.000e+00 | YES | | 23 | 3.939468e+00 | 1.296e-02 | 1.805e-01 | OK | 2.287e+00 | 1.000e+00 | YES | | 24 | 3.938662e+00 | 8.591e-03 | 5.955e-02 | OK | 1.553e+00 | 1.000e+00 | YES | | 25 | 3.938239e+00 | 6.421e-03 | 5.334e-02 | OK | 1.102e+00 | 1.000e+00 | YES | | 26 | 3.938013e+00 | 5.449e-03 | 6.773e-02 | OK | 2.085e+00 | 1.000e+00 | YES | | 27 | 3.937896e+00 | 6.226e-03 | 3.368e-02 | OK | 7.541e-01 | 1.000e+00 | YES | | 28 | 3.937820e+00 | 2.497e-03 | 2.397e-02 | OK | 7.940e-01 | 1.000e+00 | YES | | 29 | 3.937791e+00 | 2.004e-03 | 1.339e-02 | OK | 1.863e+00 | 1.000e+00 | YES | | 30 | 3.937784e+00 | 2.448e-03 | 1.265e-02 | OK | 9.667e-01 | 1.000e+00 | YES | | 31 | 3.937778e+00 | 6.973e-04 | 2.906e-03 | OK | 4.672e-01 | 1.000e+00 | YES | | 32 | 3.937778e+00 | 3.038e-04 | 9.502e-04 | OK | 1.060e+00 | 1.000e+00 | YES | | 33 | 3.937777e+00 | 2.327e-04 | 1.069e-03 | OK | 1.597e+00 | 1.000e+00 | YES | | 34 | 3.937777e+00 | 1.959e-04 | 1.537e-03 | OK | 4.026e+00 | 1.000e+00 | YES | | 35 | 3.937777e+00 | 1.162e-04 | 1.464e-03 | OK | 3.418e+00 | 1.000e+00 | YES | | 36 | 3.937777e+00 | 8.353e-05 | 3.660e-04 | OK | 7.304e-01 | 5.000e-01 | YES | | 37 | 3.937777e+00 | 1.412e-05 | 1.412e-04 | OK | 7.842e-01 | 1.000e+00 | YES | | 38 | 3.937777e+00 | 1.277e-05 | 3.808e-05 | OK | 1.021e+00 | 1.000e+00 | YES | | 39 | 3.937777e+00 | 8.614e-06 | 3.698e-05 | OK | 2.561e+00 | 1.000e+00 | YES | |====================================================================================================| | ITER | FUN VALUE | NORM GRAD | NORM STEP | CURV | GAMMA | ALPHA | ACCEPT | |====================================================================================================| | 40 | 3.937777e+00 | 3.159e-06 | 5.299e-05 | OK | 4.331e+00 | 1.000e+00 | YES | | 41 | 3.937777e+00 | 2.657e-06 | 1.080e-05 | OK | 7.038e-01 | 5.000e-01 | YES | | 42 | 3.937777e+00 | 7.054e-07 | 7.036e-06 | OK | 9.519e-01 | 1.000e+00 | YES | Infinity norm of the final gradient = 7.054e-07 Two norm of the final step = 7.036e-06, TolX = 1.000e-06 Relative infinity norm of the final gradient = 7.054e-07, TolFun = 1.000e-06 EXIT: Local minimum found.

選択した特徴量をプロットします。

图(nca阴谋。FeatureWeights,“罗”) 网格Xlabel(“功能指数”)ylabel('特征重量'

NCA.モデルモデル使してを予测予测予测,あてはめた(予测予测た)

Figts fited =预测(NCA,x);绘图(Y,“r”。) 抓住情节(安装,'b-')Xlabel(“指数”)ylabel(的拟合值

FSRNCAは,外れ値を含むデータ内のすべての点をあてはめようとします。この結果,予測子4、7および13以外の多くの特徴量に非ゼロの重みが割り当てられます。

组み込みロバスト损失关联数目の使用

同じプロセスを繰り返して正則化パラメーターを調整します。今回は,組み込みの ε. 許容損失関数を使用します。

l y y j 最大限度 0 | y - y j | - ε.

ε. 许容损失关节数は二乘误差よりも外れ値値に対してロバストですですですですですですですですですですロバストロバスト

lambdavals = linspace(0,3,50)* std(y)/长度(y);本量利= cvpartition(长度(y),“kfold”5);numtestsets = cvp.NumTestSets;损失vals = zeros(长度(lambdavals),numtestsets);i = 1:长度(lambdavals)k = 1:numtestsets xtrain = x(cvp.training(k),:);YTrain = Y(CVP.TRINATION(k),:);xtest = x(cvp.test(k),:);ytest = y(cvp.test(k),:);NCA = FSRNCA(XTrain,Ytrain,“FitMethod”'精确的'...'求解'“sgd”“详细”0,“λ”,lambdavals(i),...“LossFunction”“epsiloninsensitive”‘ε’,0.8);lossvals (i (k) =损失(nca, Xtest,欧美,“LossFunction”'妈妈');结束结束

使 ε. の値はデータによって異なり,最良の値を決定するには交差検証も使用することになります。しかし, ε. の値の選択はこの例の範囲外です。この例における ε. の選択は,主にこの方法のロバスト性を示すためのものです。

各ラムダ値に対応する平均損失をプロットします。

Figure meanloss = mean(lossvals,2);情节(lambdavals meanloss,'ro-')Xlabel(“λ”)ylabel(“损失(MSE)”) 网格

平台损失损失が最最になるラムダの値を求め求め

[〜,IDX] = min(平均值(损失vals,2));Bestlambda = Lambdavals(IDX)
bestlambda = 0.0187

ε. 許容損失関数と最良のラムダの値を使用して近傍成分分析モデルをあてはめます。

nca = fsrnca(x,y,“FitMethod”'精确的''求解'“sgd”...“λ”,bestlambda,“LossFunction”“epsiloninsensitive”‘ε’,0.8);

選択した特徴量をプロットします。

图(nca阴谋。FeatureWeights,“罗”) 网格Xlabel(“功能指数”)ylabel('特征重量'

あてはめた値をプロットますます。

Figts fited =预测(NCA,x);绘图(Y,“r”。) 抓住情节(安装,'b-')Xlabel(“指数”)ylabel(的拟合值

ε. 許容損失は,外れ値に対するロバスト性が高いようです。関連性があると識別された特徴量の数がmseより少なくなっています。このあてはめでは,依然として一部の外れ値の影響があることが示されています。

カスタムなロバスト损失关键词

外れ値に対してロバストであるカスタムなロバスト損失関数を定義し,回帰用の特徴選択で使用します。

f y y j 1 - 经验值 - | y - y j |

customlossFcn = @(yi,yj) 1 - exp(-abs(yi-yj'));

カスタム定義したロバスト損失関数を使用して正則化パラメーターを調整します。

lambdavals = linspace(0,3,50)* std(y)/长度(y);本量利= cvpartition(长度(y),“kfold”5);numtestsets = cvp.NumTestSets;损失vals = zeros(长度(lambdavals),numtestsets);i = 1:长度(lambdavals)k = 1:numtestsets xtrain = x(cvp.training(k),:);YTrain = Y(CVP.TRINATION(k),:);xtest = x(cvp.test(k),:);ytest = y(cvp.test(k),:);NCA = FSRNCA(XTrain,Ytrain,“FitMethod”'精确的'...'求解'“lbfgs”“详细”0,“λ”,lambdavals(i),...“LossFunction”, customlossFcn);lossvals (i (k) =损失(nca, Xtest,欧美,“LossFunction”'妈妈');结束结束

各ラムダ値に対応する平均損失をプロットします。

Figure meanloss = mean(lossvals,2);情节(lambdavals meanloss,'ro-')Xlabel(“λ”)ylabel(“损失(MSE)”) 网格

平静损失が最小になる λ. の値を求めます。

[〜,IDX] = min(平均值(损失vals,2));Bestlambda = Lambdavals(IDX)
bestlambda = 0.0165

カスタムなロバスト损失关键词最良の λ. の値を使使使て特徴选択を実行。

nca = fsrnca(x,y,“FitMethod”'精确的''求解'“lbfgs”...“详细”,1,“λ”,bestlambda,“LossFunction”, customlossFcn);
o Solver = LBFGS, HessianHistorySize = 15,LineSearchMethod = weakwolfe  |====================================================================================================| | ITER | |娱乐价值规范研究生| |规范一步曲线|γ|α|接受  | |====================================================================================================| | e-01 0 | 8.610073 | 4.921 e-02 |0.000 e + 00 | | 1.219 e + 01 | 0.000 e + 00 |是| | 1 | 6.582278 e-01 e-02 | 2.328 | 1.820 e + 00 |好01 | 1.000 | 2.177 e + e + 00 |是| | 2 | 5.706490 e-01 e-02 | 2.241 | 2.360 e + 00 |好01 | 1.000 | 2.541 e + e + 00 |是| | 3 | 5.677090 e-01 e-02 | 2.666 | 7.583 e-01 |好01 | 1.000 | 1.092 e + e + 00 |是| | 4 | 5.620806 e-01 e 03 | 5.524 | 3.335 e-01 9.973 e + 00 | | | OK1.000 e + 00 |是| | 5 | 5.616054 e-01 e 03 | 1.428 | 1.025 e-01 |好01 | 1.000 | 1.736 e + e + 00 |是| | 6 | 5.614779 e-01 e-04 | 4.446 | 8.350 e-02 |好01 | 1.000 | 2.507 e + e + 00 |是| | 7 | 5.614653 e-01 e-04 | 4.118 | 2.466 e-02 |好01 | 1.000 | 2.105 e + e + 00 |是| | 8 | 5.614620 e-01 e-04 | 1.307 | 1.373 e-02 |好01 | 1.000 | 2.002 e + e + 00 |是| | |e-05 e-01 5.614615 | 9.318 | 4.128 e 03 |好01 | 1.000 | 3.683 e + e + 00 |是| | 10 | 5.614611 e-01 e-05 | 4.579 | 8.785 e 03 |好01 | 1.000 | 6.170 e + e + 00 |是| | 11 | 5.614610 e-01 e-05 | 1.232 | 1.582 e 03 |好| 2.000 e + 01 | 5.000 e-01 |是| | 12 | 5.614610 e-01 e-06 | 3.174 | 4.742 e-04 |好01 | 1.000 | 2.510 e + e + 00 |是| | 13 e-01 | 5.614610 | 7.896 e-07 |1.683e-04 | OK | 2.959e+01 | 1.000e+00 | YES | Infinity norm of the final gradient = 7.896e-07 Two norm of the final step = 1.683e-04, TolX = 1.000e-06 Relative infinity norm of the final gradient = 7.896e-07, TolFun = 1.000e-06 EXIT: Local minimum found.

選択した特徴量をプロットします。

图(nca阴谋。FeatureWeights,“罗”) 网格Xlabel(“功能指数”)ylabel('特征重量'

あてはめた値をプロットますます。

Figts fited =预测(NCA,x);绘图(Y,“r”。) 抓住情节(安装,'b-')Xlabel(“指数”)ylabel(的拟合值

このケースでは,损失が外れ値のをておらず,结果はほとんどの観测値にててます。FSRNCAは予測子4 7および13を関連性がある特徴量として識別しており,他の特徴量は選択していません。

损失关节の选択がに影响影响を与える理念

はじめに2つの観測値の差について一連の値の損失関数を計算します。

δy = linspace (-10, 1000);

カスタム損失関数の値を計算します。

customlossvals = customlossFcn(δy, 0);

イプシロン不感応損失関数および値を計算します。

epsinsensitive = @ (yi yj E)马克斯(0,abs (yi-yj) - E);epsinsenvals = epsinsensitive(δy, 0, 0.5);

MSE損失関数および値を計算します。

MSE = @(yi,yj)(yi-yj')。^ 2;Msevals = MSE(Deltay,0);

次に,各损失关键をして,これらの违いおよびこれら结果に影响与えるを与える与える调べ调べ调べ调べ调べ调べ调べ调べ调べ调べ调べ调べ调べ调べ调べ调べ调べ调べ调べ。

图绘制(δy, customlossvals“g -”δy epsinsenvals,'b-',Deltay,Msevals,的r -)Xlabel(“(yi - yj)”)ylabel(“损失(咦,yj)”)传说(“customloss”“epsiloninsensitive”'妈妈'20) ylim ([0])

mseは2つの応答値の差が大きくなると二次関数的に大きくなり,外れ値の影響を大きく受けます。FSRNCAがこの損失を最小化しようとすると,より多くの特徴量を関連性があると識別することになります。イプシロン不感応損失はmseより外れ値に対する耐性が高くなっていますが,結果的には2つの観測値の差が大きくなるとそれに比例して大きくなります。ロバスト損失関数は,2つの観測値の差が大きくなると1に近づき,差がさらに大きくなっても値はあまり変化しません。3つの中で外れ値に対して最もロバストです。

参考

||||

关键词トピック