主要内容

调整正常化参数以检测使用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 = weakwolfe  |====================================================================================================| | ITER | |娱乐价值规范研究生| |规范一步曲线|γ|α|接受  | |====================================================================================================| | 0 e 03 | 9.519258 | 1.494 e-02 |0.000 e + 00 | | 4.015 e + 01 | 0.000 e + 00 |是| | 1 | -3.093574 e-01 e 03 | 7.186 | 4.018 e + 00 |好01 | 1.000 | 8.956 e + e + 00 |是| | 2 | -4.809455 e-01 e 03 | 4.444 | 7.123 e + 00 |好01 | 1.000 | 9.943 e + e + 00 |是| | 3 | -4.938877 e-01 e 03 | 3.544 | 1.464 e + 00 |好01 | 1.000 | 9.366 e + e + 00 |是| | 4 | -4.964759 e-01 e 03 | 2.901 | 6.084 e-01 1.554 e + 02 | | | OK1.000 e + 00 |是| | 5 | -4.972077 e-01 e 03 | 1.323 | 6.129 e-01 |好e + 02 | 1.195 | 5.000 e-01 |是| | 6 | -4.974743 e-01 e-04 | 1.569 | 2.155 e-01 |好e + 02 | 1.003 | 1.000 e + 00 |是| | 7 | -4.974868 e-01 e-05 | 3.844 | 4.161 e-02 |好01 | 1.000 | 9.835 e + e + 00 |是| | 8 | -4.974874 e-01 e-05 | 1.417 | 1.073 e-02 |好e + 02 | 1.043 | 1.000 e + 00 |是| | |e-06 e-01 -4.974874 | 4.893 | 1.781 e 03 |好e + 02 | 1.530 | 1.000 e + 00 |是| | 10 | -4.974874 e-01 e-08 | 9.404 | 8.947 e-04 |好e + 02 | 1.670 | 1.000 e + 00 |是|最终梯度的无穷范数= 9.404 e-08两规范最后一步= 8.947 e-04 TolX = 1.000 e-06相对最终梯度的无穷范数= 9.404 e-08, TolFun = 1.000 e-06退出:局部最小值。

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

图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 = weakwolfe  |====================================================================================================| | ITER | |娱乐价值规范研究生| |规范一步曲线|γ|α|接受  | |====================================================================================================| | e-01 0 | -1.246913 | 1.231 e-02 |0.000 e + 00 | | 4.873 e + 01 | 0.000 e + 00 |是| | 1 | -3.411330 e-01 e 03 | 5.717 | 3.618 e + 00 |好e + 02 | 1.068 | 1.000 e + 00 |是| | 2 | -5.226111 e-01 e-02 | 3.763 | 8.252 e + 00 |好01 | 1.000 | 7.825 e + e + 00 |是| | 3 | -5.817731 e-01 e 03 | 8.496 | 2.340 e + 00 |好| 5.591 e + 01 | 5.000 e-01 |是| | 4 | -6.132632 e-01 e 03 | 6.863 | 2.526 e + 00 | | 8.228 e + 01 |1.000 e + 00 |是| | 5 | -6.135264 e-01 e 03 | 9.373 | 7.341 e-01 |好01 | 1.000 | 3.244 e + e + 00 |是| | 6 | -6.147894 e-01 e 03 | 1.182 | 2.933 e-01 |好01 | 1.000 | 2.447 e + e + 00 |是| | 7 | -6.148714 e-01 e-04 | 6.392 | 6.688 e-02 |好01 | 1.000 | 3.195 e + e + 00 |是| | 8 | -6.149524 e-01 e-04 | 6.521 | 9.934 e-02 |好e + 02 | 1.236 | 1.000 e + 00 |是| | |e-04 e-01 -6.149972 | 1.154 | 1.191 e-01 |好e + 02 | 1.171 | 1.000 e + 00 |是| | 10 | -6.149990 e-01 e-05 | 2.922 | 1.983 e-02 |好01 | 1.000 | 7.365 e + e + 00 |是| | 11 | -6.149993 e-01 e-05 | 1.556 | 8.354 e 03 |好e + 02 | 1.288 | 1.000 e + 00 |是| | 12 | -6.149994 e-01 e-05 | 1.147 | 7.256 e 03 |好e + 02 | 2.332 | 1.000 e + 00 |是| | 13 | -6.149995 e-01 |e-05 1.040 | 6.781 e 03 |好e + 02 | 2.287 | 1.000 e + 00 |是| | 14 | -6.149996 e-01 e-06 | 9.015 | 6.265 e 03 |好01 | 1.000 | 9.974 e + e + 00 |是| | 15 | -6.149996 e-01 e-06 | 7.763 | 5.206 e 03 |好e + 02 | 2.919 | 1.000 e + 00 |是| | 16 | -6.149997 e-01 e-06 | 8.374 | 1.679 e-02 |好e + 02 | 6.878 | 1.000 e + 00 |是| | 17 | -6.149997 e-01 e-06 | 9.387 | 9.542 e 03|好e + 02 | 1.284 | 5.000 e-01 |是| | 18 | -6.149997 e-01 | 3.250 e-06 | 5.114 e 03 |好e + 02 | 1.225 | 1.000 e + 00 |是| | 19 | -6.149997 e-01 e-06 | 1.574 | 1.275 e 03 |好e + 02 | 1.808 | 1.000 e + 00 |是的  | |====================================================================================================| | ITER | |娱乐价值规范研究生| |标准步骤α曲线|γ| |接受  | |====================================================================================================| | 20 | -6.149997 e-01 e-07 | 5.764 | 6.765 e-04 |好e + 02 | 2.905 | 1.000 e + 00 |是|最终梯度的无穷范数= 5.764 e-07最后一步= 6.765 e-04的两个标准,最终梯度的相对无限大范数= 5.764e-07, TolFun = 1.000e-06

绘制特征权重。

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

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

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

参考

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

另请参阅

||||

相关话题