主要内容

改装

类:FeatureSelectionNCAClassification

改装社区成分分析(NCA)模型分类

语法

mdlrefit =改装(mdl、名称、值)

描述

mdlrefit=改装(mdl,名称,值)不菲的模型mdl指定的一个或多个,修改参数名称,值对参数。

输入参数

全部展开

社区组件分析模型或分类,指定为一个FeatureSelectionNCAClassification对象。

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

合适的选项

全部展开

方法拟合模型,指定为逗号分隔组成的“FitMethod”和一个以下。

  • “准确”——执行配件使用的所有数据。

  • “没有”——不合适。使用这个选项来评估NCA模型的泛化误差使用最初的功能权重提供调用fscnca

  • “平均”——函数将数据划分为分区(子集),符合每个分区使用确切的方法,并返回特征权重的平均值。您可以指定分区使用的数量NumPartitions名称-值对的论点。

例子:“FitMethod”、“没有”

正则化参数,指定为逗号分隔组成的“λ”和非负的标量值。

n观察,最好的λ值最小化NCA模型的泛化误差预计是1 /的倍数n

例子:“λ”,0.01

数据类型:|

解算器类型权重估计特性,指定为逗号分隔组成的“规划求解”和一个以下。

  • “lbfgs”-内存有限bfg (Broyden-Fletcher-Goldfarb-Shanno)算法(LBFGS算法)

  • “sgd”——随机梯度下降法

  • “minibatch-lbfgs”-与LBFGS随机梯度下降算法应用于mini-batches

例子:“规划求解”、“minibatch-lbfgs”

初始特征权重,指定为逗号分隔组成的“InitialFeatureWeights”和一个p1真正积极的标量值的向量。

数据类型:|

指标冗长水平收敛摘要显示,指定为逗号分隔组成的“详细”和一个以下。

  • 0 -不收敛的总结

  • 1 -收敛总结包括迭代数,梯度的规范,和目标函数值。

  • > 1 -更融合的信息根据拟合的算法

    当使用解算器“minibatch-lbfgs”和冗长水平> 1,中间的收敛迭代日志信息包括mini-batch LBFGS适合。

例子:“详细”,2

数据类型:|

LBFGS或Mini-Batch LBFGS选项

全部展开

相对收敛公差的梯度准则求解器进行求解lbfgs,指定为逗号分隔两人组成的“GradientTolerance”和积极的真正的标量值。

例子:“GradientTolerance”, 0.00001

数据类型:|

SGD或Mini-Batch LBFGS选项

全部展开

最初的学习速度解算器sgd,指定为逗号分隔两人组成的“InitialLearningRate”和积极的标量值。

当使用解算器类型“sgd”,学习速率随迭代从指定的值“InitialLearningRate”

例子:“InitialLearningRate”, 0.8

数据类型:|

最大数量的解决者“sgd”(随机梯度下降),指定为逗号分隔组成的“PassLimit”和一个正整数。每一个传递过程尺寸(mdl.X, 1)观察。

例子:“PassLimit”, 10

数据类型:|

SGD或LBFGS Mini-Batch 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),“处方”)举行情节(X (y = = 1, 1), X (y = = 1, 2),“软”)(n, p) =大小(X)
n = 22000 p = 2

无关紧要的预测因子添加到数据。

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

这段代码创建98额外的预测,均匀分布在0和4之间。

分区数据分为训练集和测试集。创建分层分区,每个分区有类似比例的类,使用y而不是长度(y)作为划分标准。

本量利= cvpartition (y,“坚持”,2000);

cvpartition观测的随机选择2000名添加到测试集和其余的数据加入到训练集。创建使用训练集和验证集作业中存储cvpartition对象本量利

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”,“准确”,“λ”λ,“规划求解”,“sgd”);
n = 20000

目标函数值和迭代次数的阴谋。

图()图(nca.FitInfo.Iteration nca.FitInfo.Objective,“罗”)举行情节(nca.FitInfo.Iteration movmean (nca.FitInfo.Objective 10),“k -”)包含(的迭代次数)ylabel (“客观价值”)

计算错误分类与特征选择错误。

loss_withfs =损失(nca, Xval yval)
loss_withfs = 0.0115

情节所选择的功能。

图semilogx (nca.FeatureWeights,“罗”)包含(“功能指数”)ylabel (“功能重量”网格)

选择使用功能权重和相对阈值特性。

托尔= 0.15;selidx = (nca找到。FeatureWeights > tol *马克斯(max (nca.FeatureWeights)))
selidx = 1 2

特征选择和改善结果fscnca检测到正确的两个特性是相关的。

版本历史

介绍了R2016b