类:FeatureSelectionNCAClassification
改装邻里成分分析(NCA)模型进行分类
mdlrefit =改装(MDL,名称,值)
MDL
-分类邻里成分分析模型FeatureSelectionNCAClassification
目的邻里成分分析模型或分类,指定为FeatureSelectionNCAClassification
目的。
指定可选的用逗号分隔的对名称,值
参数。名称
是参数的名称和值
是对应的值。名称
必须出现引号内。您可以按照任何顺序指定多个名称和值对参数名1,值1,...,NameN,值N
。
'使用fitmethod'
-拟合模型方法mdl.FitMethod
(默认)|'精确'
|'没有'
|'平均'
用于装配模型的方法,指定为逗号分隔的一对组成的'使用fitmethod'
与下列情况之一。
'精确'
- 执行使用所有数据的拟合。
'没有'
- 无配件。使用此选项使用在调用中提供的初始特征权评估NCA模型的泛化误差fscnca
。
'平均'
- 该函数的数据划分成若干分区(子集),使用适合的每个分区精确
方法,并且返回的平均特征权重。您可以使用指定的分区数NumPartitions
名称 - 值对的参数。
例:'使用fitmethod', '无'
“拉姆达”
-正则参数mdl.Lambda
(默认)|非负标量值正则化参数,指定为逗号分隔的一对组成的“拉姆达”
和一个非负标量值。
对于ñ观察,最好的LAMBDA
值最小化的NCA模型的泛化误差预期为1的倍数/ñ
例:'LAMBDA',0.01
数据类型:双
|单
“求解”
-求解类型mdl.Solver
(默认)|'lbfgs'
|“新元”
|'minibatch-lbfgs'
解算器类型用于估计的特征权重,指定为逗号分隔的一对组成的“求解”
与下列情况之一。
'lbfgs'
- 有限存储器BFGS(的Broyden-弗莱彻-戈德法布-Shanno无)算法(LBFGS算法)
“新元”
- 随机梯度下降
'minibatch-lbfgs'
- 施加到微型批次,LBFGS算法随机梯度下降
例:'求解', 'minibatch-lbfgs'
'InitialFeatureWeights'
-初始特征的权重mdl.InitialFeatureWeights
(默认)|p×1实正标量值的矢量初始特征权重,指定为逗号分隔的一对组成的'InitialFeatureWeights'
和p×1矢量实正标量的值。
数据类型:双
|单
“放牧”
-指示器详细级别mdl.Verbose
(默认)|0|1|> 1指示器,用于会聚概要显示详细级别,指定为逗号分隔的一对组成的“放牧”
与下列情况之一。
0 - 没有收敛汇总
1 - 收敛摘要,包括迭代数,梯度的范数,并且目标函数值。
> 1 - 取决于拟合算法的更多收敛信息
当使用求解'minibatch-lbfgs'
和详细级别> 1时,收敛性信息包括迭代从中间minibatch LBFGS配合登录。
例:'冗长',2
数据类型:双
|单
'GradientTolerance'
-相对收敛容差mdl.GradientTolerance
(默认)|正实标值对求解器的梯度范相对收敛容差lbfgs
,指定为逗号分隔的一对组成的'GradientTolerance'
和正实标值。
例:'GradientTolerance',0.00001
数据类型:双
|单
'InitialLearningRate'
-最初的学习率求解SGD
mdl.InitialLearningRate
(默认)|正实标值最初的学习率求解SGD
,指定为逗号分隔的一对组成的'InitialLearningRate'
而正标量值。
当使用类型解算器“新元”
,学习率衰减了迭代开始值指定'InitialLearningRate'
。
例:'InitialLearningRate',0.8
数据类型:双
|单
'PassLimit'
-通行证解算器的最大数量“新元”
mdl.PassLimit
(默认)|正整数值通行证解算器的最大数量“新元”
(随机梯度下降),指定为逗号分隔的一对组成的'PassLimit'
和一个正整数。每个传送过程大小(mdl.X,1)
观察结果。
例:'PassLimit',10
数据类型:双
|单
'IterationLimit'
-最大迭代次数mdl.IterationLimit
(默认)|正整数值最大迭代次数,指定为逗号分隔的一对组成的'IterationLimit'
和一个正整数。
例:'IterationLimit',250
数据类型:双
|单
mdlrefit
- 邻居分类成分分析模型FeatureSelectionNCAClassification
目的邻里成分分析模型进行分类,返回为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),这意味着所有的功能都同样重要。
这一次,使用邻分类成分分析进行特征选择,用。
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
检测到正确的两种功能的相关性。
您单击对应于该MATLAB命令的链接:
在MATLAB命令窗口中输入它运行的命令。Web浏览器不支持MATLAB的命令。万博1manbetx
您还可以选择从下面的列表中的网站:
选择最佳的网站性能的中国网站(在中国或英文)。其他MathWorks的国家网站都没有从您的位置访问进行了优化。