改装

类:FeatureSelectionNCAClassification

改装邻里成分分析(NCA)模型进行分类

句法

mdlrefit =改装(MDL,名称,值)

描述

mdlrefit=改装(MDL名称,值整修模型MDL,与由一个或多个指定的修改的参数名称,值对参数。

输入参数

展开全部

邻里成分分析模型或分类,指定为FeatureSelectionNCAClassification目的。

名称 - 值对参数

指定可选的用逗号分隔的对名称,值参数。名称是参数的名称和是对应的值。名称必须出现引号内。您可以按照任何顺序指定多个名称和值对参数名1,值1,...,NameN,值N

配件选项

展开全部

用于装配模型的方法,指定为逗号分隔的一对组成的'使用fitmethod'与下列情况之一。

  • '精确'- 执行使用所有数据的拟合。

  • '没有'- 无配件。使用此选项使用在调用中提供的初始特征权评估NCA模型的泛化误差fscnca

  • '平均'- 该函数的数据划分成若干分区(子集),使用适合的每个分区精确方法,并且返回的平均特征权重。您可以使用指定的分区数NumPartitions名称 - 值对的参数。

例:'使用fitmethod', '无'

正则化参数,指定为逗号分隔的一对组成的“拉姆达”和一个非负标量值。

对于ñ观察,最好的LAMBDA值最小化的NCA模型的泛化误差预期为1的倍数/ñ

例:'LAMBDA',0.01

数据类型:|

解算器类型用于估计的特征权重,指定为逗号分隔的一对组成的“求解”与下列情况之一。

  • 'lbfgs'- 有限存储器BFGS(的Broyden-弗莱彻-戈德法布-Shanno无)算法(LBFGS算法)

  • “新元”- 随机梯度下降

  • 'minibatch-lbfgs'- 施加到微型批次,LBFGS算法随机梯度下降

例:'求解', 'minibatch-lbfgs'

初始特征权重,指定为逗号分隔的一对组成的'InitialFeatureWeights'p×1矢量实正标量的值。

数据类型:|

指示器,用于会聚概要显示详细级别,指定为逗号分隔的一对组成的“放牧”与下列情况之一。

  • 0 - 没有收敛汇总

  • 1 - 收敛摘要,包括迭代数,梯度的范数,并且目标函数值。

  • > 1 - 取决于拟合算法的更多收敛信息

    当使用求解'minibatch-lbfgs'和详细级别> 1时,收敛性信息包括迭代从中间minibatch LBFGS配合登录。

例:'冗长',2

数据类型:|

LBFGS或小批量LBFGS选项

展开全部

对求解器的梯度范相对收敛容差lbfgs,指定为逗号分隔的一对组成的'GradientTolerance'和正实标值。

例:'GradientTolerance',0.00001

数据类型:|

SGD或小批量LBFGS选项

展开全部

最初的学习率求解SGD,指定为逗号分隔的一对组成的'InitialLearningRate'而正标量值。

当使用类型解算器“新元”,学习率衰减了迭代开始值指定'InitialLearningRate'

例:'InitialLearningRate',0.8

数据类型:|

通行证解算器的最大数量“新元”(随机梯度下降),指定为逗号分隔的一对组成的'PassLimit'和一个正整数。每个传送过程大小(mdl.X,1)观察结果。

例:'PassLimit',10

数据类型:|

SGD或LBFGS或小批量LBFGS选项

展开全部

最大迭代次数,指定为逗号分隔的一对组成的'IterationLimit'和一个正整数。

例:'IterationLimit',250

数据类型:|

输出参数

展开全部

邻里成分分析模型进行分类,返回为FeatureSelectionNCAClassification目的。您可以将结果要么保存为一个新模型或更新现有模型MDL =改装(MDL,名称,值)

例子

展开全部

生成使用棋盘数据generateCheckerBoardData.m功能。

RNG(2016年,“扭腰”);%用于重现PPS = 1375;[X,Y] = generateCheckerBoardData(PPS);X = X + 2;

图中的数据。

图图(X(Y == 1,1),X(Y == 1,2),'RX')保持积(X(Y ==  -  1,1),X(Y ==  -  1,2),'BX')[N,P] =尺寸(X)
N = 22000 P = 2

无关预测添加到数据。

Q = 98;Xrnd = unifrnd(0,4,N,Q);Xobs = [X,Xrnd];

这段代码创建98个的其他预测,全部为0和4之间均匀地分布。

将数据划分为训练和测试集。要创建分层分区,使每个分区都有类类似的比例,使用ÿ代替冗长)作为分区的标准。

CVP = cvpartition(Y,'坚持',2000);

cvpartition随机选择的意见2000添加到测试集和其余数据添加到训练集。创建培训和使用分配确认将存储在cvpartition目的CVP

Xtrain = Xobs(cvp.training(1),:);ytrain = Y(cvp.training(1),:);XVAL = Xobs(cvp.test(1),:);利用yval = Y(cvp.test(1),:);

不计算特征选择误分。

NCA = fscnca(Xtrain,ytrain,'使用fitmethod''没有'“标准化”,真正,...“求解”'lbfgs');loss_nofs =损失(NCA,XVAL,利用yval)
loss_nofs = 0.5165

'使用fitmethod', '无'选择使用默认的权重(全1),这意味着所有的功能都同样重要。

这一次,使用邻分类成分分析进行特征选择,用$ \拉姆达= 1 / n的$

W0 =兰特(100,1);N =长度(ytrain)的λ= 1 / N;NCA =改装(NCA,'InitialFeatureWeights',W0,'使用fitmethod''精确'...“拉姆达”,λ,“求解”“新元”);
N = 20000

绘制目标函数值与迭代次数。

图()图(nca.FitInfo.Iteration,nca.FitInfo.Objective,'RO')保持情节(nca.FitInfo.Iteration,movmean(nca.FitInfo.Objective,10),'k.-')xlabel(“迭代次数”)ylabel(“客观价值”

计算与特征选择的误分。

loss_withfs =损失(NCA,XVAL,利用yval)
loss_withfs = 0.0115

绘制选择的要素。

图semilogx(nca.FeatureWeights,'RO')xlabel(“特色指标”)ylabel(“特征权重”)网格

使用要素权重和相对阈值选择功能。

TOL = 0.15;selidx =查找(nca.FeatureWeights> TOL *最大(1,MAX(nca.FeatureWeights)))
selidx = 1 2

特征选择提高的结果,并fscnca检测到正确的两种功能的相关性。

介绍了在R2016b