主要内容

调整正常化参数以检测使用NCA进行分类的功能

这个例子展示了如何调优正则化参数fscnca使用交叉验证。调整正则化参数有助于正确检测数据中的相关特征。

加载样本数据。

负载('twodimclassdata.mat'

使用[1]中描述的方案模拟此数据集。这是两个维度的两级分类问题。来自第一类的数据是从两个双生物态正常分布中汲取的 N μ. 1 σ. 或者 N μ. 2 σ. 等概率,其中 μ. 1 - 0 7 5 - 1 5 ] μ. 2 0 7 5 1 5 ] σ. 2 .类似地,第二类数据来自两个二元正态分布 N μ. 3. σ. 或者 N μ. 4 σ. 等概率,其中 μ. 3. 1 5 - 1 5 ] μ. 4 - 1 5 1 5 ] σ. 2 .用于创建此数据集的正态分布参数会导致比[1]中使用的数据更密集的数据集群。

创建类分组的数据分散绘图。

图g箭头(x(:,1),x(:,2),y)xlabel('x1')ylabel('x2'

图包含轴。轴包含2个类型的型号。这些对象表示-1,1。

添加100个无关的特性 X .首先生成均值为0,方差为20的正态分布的数据。

n =尺寸(x,1);RNG('默认') XwithBadFeatures = [X,randn(n,100)*sqrt(20)];

将数据规格化,使所有点都在0和1之间。

XwithBadFeatures = (XwithBadFeatures-min (XwithBadFeatures[], 1))。/范围(XwithBadFeatures, 1);X = XwithBadFeatures;

使用默认值将nca模型与数据匹配λ(正则化参数, λ. ) 价值。使用LBFGS求解器并显示收敛信息。

ncaMdl = fscnca (X, y,“FitMethod”'精确的''verbose',1,...'求解''lbfgs');
O Solver = LBFGS,HessianhistorySize = 15,LineSearchMethod =弱狼| =================================================================================================== ||磨练|有趣的价值|常规毕业|规范步骤|抑制|伽玛|alpha |接受| |====================================================================================================| | 0 | 9.519258e-03 | 1.494e-02 | 0.000e+00 | | 4.015e+01 | 0.000e+00 | YES | | 1 | -3.093574e-01 | 7.186e-03 | 4.018e+00 | OK | 8.956e+01 | 1.000e+00 | YES | | 2 | -4.809455e-01 | 4.444e-03 | 7.123e+00 | OK | 9.943e+01 | 1.000e+00 | YES | | 3 | -4.938877e-01 | 3.544e-03 | 1.464e+00 | OK | 9.366e+01 | 1.000e+00 | YES | | 4 | -4.964759e-01 | 2.901e-03 | 6.084e-01 | OK | 1.554e+02 | 1.000e+00 | YES | | 5 | -4.972077e-01 | 1.323e-03 | 6.129e-01 | OK | 1.195e+02 | 5.000e-01 | YES | | 6 | -4.974743e-01 | 1.569e-04 | 2.155e-01 | OK | 1.003e+02 | 1.000e+00 | YES | | 7 | -4.974868e-01 | 3.844e-05 | 4.161e-02 | OK | 9.835e+01 | 1.000e+00 | YES | | 8 | -4.974874e-01 | 1.417e-05 | 1.073e-02 | OK | 1.043e+02 | 1.000e+00 | YES | | 9 | -4.974874e-01 | 4.893e-06 | 1.781e-03 | OK | 1.530e+02 | 1.000e+00 | YES | | 10 | -4.974874e-01 | 9.404e-08 | 8.947e-04 | OK | 1.670e+02 | 1.000e+00 | YES | Infinity norm of the final gradient = 9.404e-08 Two norm of the final step = 8.947e-04, TolX = 1.000e-06 Relative infinity norm of the final gradient = 9.404e-08, TolFun = 1.000e-06 EXIT: Local minimum found.

绘制特征权重。无关的功能的重量应非常接近零。

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

图包含轴。轴包含类型线的对象。

所有重量都非常接近零。这表明价值 λ. 用于训练模型太大了。什么时候 λ. ,所有功能均向零方法。因此,在大多数情况下调整正则化参数以检测相关特征是很重要的。

使用五倍的交叉验证来调整 λ. 用于特征选择fscnca.调优 λ. 意味着找到 λ. 将产生最小分类损失的价值。下面是调优的步骤 λ. 使用交叉验证:

1.首先将数据分区为五倍。每折,cvpartition指定4/5的数据作为训练集,1/5的数据作为测试集。

cvp = cvpartition(y,“kfold”5);numtestsets = cvp.NumTestSets;lambdavalues = linspace(0、2、20)/长度(y);lossvalues = 0(长度(lambdavalues), numtestsets);

2.训练每个邻域成分分析(nca)模型 λ. 使用每个折叠中设置的训练的价值。

3.使用NCA模型计算折叠中相应的测试集的分类损耗。记录损失值。

4.为所有折叠和所有人重复这一点 λ. 值。

i = 1:长度(兰窗)k = 1:numtestsets%从分区对象中提取训练集xtrain = x(cvp.training(k),:);YTrain = Y(CVP.TRINATION(k),:);%从分区对象中提取测试集xtest = x(cvp.test(k),:);ytest = y(cvp.test(k),:);%利用训练集训练nca模型进行分类ncamdl = fscnca(xtrain,ytrain,“FitMethod”'精确的'...'求解''lbfgs'“λ”lambdavalues(我));%使用nca计算测试集的分类损失% 模型丢失值(i,k)=损失(ncamdl,xtest,ytest,...“LossFunction”'二次');结束结束

画出折痕的平均损失值与 λ. 值。

图绘图(Lambdavalues,意思是(亏损值,2),'ro-')Xlabel('lambda值')ylabel(“损失值”) 网格

图包含轴。轴包含类型线的对象。

找到 λ. 与最小平均损失相对应的值。

[〜,IDX] = min(平均值(损失值,2));%查找索引bestlambda = lambdavalues (idx)%找到最好的lambda值
bestlambda = 0.0037

使用最好的数据将NCA模型适合所有数据 λ. 价值。使用LBFGS求解器并显示收敛信息。

ncaMdl = fscnca (X, y,“FitMethod”'精确的''verbose',1,...'求解''lbfgs'“λ”,Bestlambda);
O Solver = LBFGS,HessianhistorySize = 15,LineSearchMethod =弱狼| =================================================================================================== ||磨练|有趣的价值|常规毕业|规范步骤|抑制|伽玛|alpha |接受| |====================================================================================================| | 0 | -1.246913e-01 | 1.231e-02 | 0.000e+00 | | 4.873e+01 | 0.000e+00 | YES | | 1 | -3.411330e-01 | 5.717e-03 | 3.618e+00 | OK | 1.068e+02 | 1.000e+00 | YES | | 2 | -5.226111e-01 | 3.763e-02 | 8.252e+00 | OK | 7.825e+01 | 1.000e+00 | YES | | 3 | -5.817731e-01 | 8.496e-03 | 2.340e+00 | OK | 5.591e+01 | 5.000e-01 | YES | | 4 | -6.132632e-01 | 6.863e-03 | 2.526e+00 | OK | 8.228e+01 | 1.000e+00 | YES | | 5 | -6.135264e-01 | 9.373e-03 | 7.341e-01 | OK | 3.244e+01 | 1.000e+00 | YES | | 6 | -6.147894e-01 | 1.182e-03 | 2.933e-01 | OK | 2.447e+01 | 1.000e+00 | YES | | 7 | -6.148714e-01 | 6.392e-04 | 6.688e-02 | OK | 3.195e+01 | 1.000e+00 | YES | | 8 | -6.149524e-01 | 6.521e-04 | 9.934e-02 | OK | 1.236e+02 | 1.000e+00 | YES | | 9 | -6.149972e-01 | 1.154e-04 | 1.191e-01 | OK | 1.171e+02 | 1.000e+00 | YES | | 10 | -6.149990e-01 | 2.922e-05 | 1.983e-02 | OK | 7.365e+01 | 1.000e+00 | YES | | 11 | -6.149993e-01 | 1.556e-05 | 8.354e-03 | OK | 1.288e+02 | 1.000e+00 | YES | | 12 | -6.149994e-01 | 1.147e-05 | 7.256e-03 | OK | 2.332e+02 | 1.000e+00 | YES | | 13 | -6.149995e-01 | 1.040e-05 | 6.781e-03 | OK | 2.287e+02 | 1.000e+00 | YES | | 14 | -6.149996e-01 | 9.015e-06 | 6.265e-03 | OK | 9.974e+01 | 1.000e+00 | YES | | 15 | -6.149996e-01 | 7.763e-06 | 5.206e-03 | OK | 2.919e+02 | 1.000e+00 | YES | | 16 | -6.149997e-01 | 8.374e-06 | 1.679e-02 | OK | 6.878e+02 | 1.000e+00 | YES | | 17 | -6.149997e-01 | 9.387e-06 | 9.542e-03 | OK | 1.284e+02 | 5.000e-01 | YES | | 18 | -6.149997e-01 | 3.250e-06 | 5.114e-03 | OK | 1.225e+02 | 1.000e+00 | YES | | 19 | -6.149997e-01 | 1.574e-06 | 1.275e-03 | OK | 1.808e+02 | 1.000e+00 | YES | |====================================================================================================| | ITER | FUN VALUE | NORM GRAD | NORM STEP | CURV | GAMMA | ALPHA | ACCEPT | |====================================================================================================| | 20 | -6.149997e-01 | 5.764e-07 | 6.765e-04 | OK | 2.905e+02 | 1.000e+00 | YES | Infinity norm of the final gradient = 5.764e-07 Two norm of the final step = 6.765e-04, TolX = 1.000e-06 Relative infinity norm of the final gradient = 5.764e-07, TolFun = 1.000e-06 EXIT: Local minimum found.

绘制特征权重。

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

图包含轴。轴包含类型线的对象。

fscnca正确地数字揭示了前两个特征是相关的,其余的不是。请注意,前两个功能不是单独的信息性,但是当连合在一起时,在准确的分类模型中。

参考

1.杨,W.,K.王,W. Zuo。“高维数据的邻域组件功能选择。”电脑杂志.2012年1月第7卷第1期

另请参阅

||||

相关话题