类:特征选择分类
改进邻域分量分析(NCA)模型进行分类
mdlrefit=refit(mdl、名称、值)
mdl
—用于分类的邻域分量分析模型特征选择分类
对象邻域组件分析模型或分类,指定为特征选择分类
对象。
指定可选的逗号分隔的字符对名称,值
参数。名称
是参数名和价值
为对应值。名称
必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家
.
FitMethod
—模型拟合方法mdl。FitMethod
(默认)|“准确”
|“没有”
|“平均”
用于拟合模型的方法,指定为逗号分隔对,由“FitMethod”
和下面的一个。
“准确”
-使用所有数据进行拟合。
“没有”
——不合适。使用此选项,可以使用调用中提供的初始特征权重来评估NCA模型的泛化误差fscnca
.
“平均”
—该函数将数据划分为多个分区(子集),使用确切的
方法,并返回特征权重的平均值。属性指定分区的数目数量
名称-值对参数。
例子:“FitMethod”、“没有”
兰姆达
—正则化参数mdl。兰姆达
(默认)|非负标量值正则化参数,指定为逗号分隔对,由“拉姆达”
和一个非负的标量值。
对于N观察,最好的兰姆达
使NCA模型的泛化误差最小化的值应为1的倍数/N
例子:“λ”,0.01
数据类型:双
|仅有一个的
解算器
—解算器类型求解器
(默认)|“lbfgs”
|“新加坡元”
|“minibatch-lbfgs”
用于估计特征权重的解算器类型,指定为逗号分隔对,包括“规划求解”
和下面的一个。
“lbfgs”
有限内存BFGS (broyden - fletcher - goldfarb - shannon)算法(LBFGS算法)
“新加坡元”
-随机梯度下降
“minibatch-lbfgs”
-基于LBFGS算法的随机梯度下降法在小批量生产中的应用
例子:“规划求解”、“minibatch-lbfgs”
初始特征权重
—初始特征权重mdl.InitialFeatureWeights
(默认)|P-实正标量值的by-1向量初始特征权重,指定为逗号分隔对,包括“InitialFeatureWeights”
和一个P实正标量值的-乘1向量。
数据类型:双
|仅有一个的
详细的
—详细程度指示器mdl。详细的
(默认)|0|1.|> 1聚合摘要显示的详细级别指示符,指定为逗号分隔对,由“详细”
和下面的一个。
0 -没有收敛总结
1-收敛性总结,包括迭代次数、梯度范数和目标函数值。
>1 -更多的收敛信息依赖于拟合算法
当使用解算器“minibatch-lbfgs”
当详细级别>1时,收敛信息包括来自中间小批量LBFGS拟合的迭代日志。
例子:“冗长”,2
数据类型:双
|仅有一个的
梯度公差
—相对收敛公差梯度公差
(默认)|正实标量值求解器梯度范数的相对收敛容差lbfgs
,指定为逗号分隔的对,由“GradientTolerance”
一个正的实标量值。
例子:“GradientTolerance”,0.00001
数据类型:双
|仅有一个的
InitialLearningRate
—求解器的初始学习率新加坡元
初始学习率
(默认)|正实标量值求解器的初始学习率新加坡元
,指定为逗号分隔的对,由“初始学习率”
和一个正标量值。
当使用求解器类型“新加坡元”
时,学习率从指定的值开始随着迭代次数递减“初始学习率”
.
例子:“初始学习率”,0.8
数据类型:双
|仅有一个的
PassLimit
—求解器的最大通道数“新加坡元”
mdl。PassLimit
(默认)|正整数的值求解器的最大通道数“新加坡元”
(随机梯度下降),指定为逗号分隔对组成“通行限制”
和一个正整数。每次传递尺寸(mdl.X,1)
观察。
例子:“PassLimit”,10
数据类型:双
|仅有一个的
迭代极限
—最大迭代次数mdl.IterationLimit
(默认)|正整数的值最大迭代次数,指定为逗号分隔对,由“迭代限制”
一个正整数。
例子:“迭代限制”,250
数据类型:双
|仅有一个的
mdlrefit
-邻域成分分析模型进行分类特征选择分类
对象用于分类的邻域组件分析模型,作为特征选择分类
对象。您可以将结果保存为新模型,也可以将现有模型更新为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),“软”) [n,p] = size(X)
n=22000 p=2
向数据中添加不相关的预测值。
Q = 98;Xrnd = unifrnd (0 4 n, Q);Xobs = [X, Xrnd];
这段代码创建了98个额外的预测器,它们都均匀分布在0和4之间。
将数据划分为训练集和测试集。要创建分层分区,使每个分区具有相似比例的类,请使用Y
而不是长度(y)
作为分区标准。
本量利= cvpartition (y,“坚持”,2000);
CVD分区
随机选取2000个观察数据加入测试集,其余数据加入训练集。属性中存储的任务创建培训和验证集CVD分区
对象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”、“没有”
Option使用默认权重(全部为1),这意味着所有特性都是同等重要的。
这一次,使用邻域组件分析执行特征选择以进行分类,使用.
w0 =兰德(100 1);N = length(ytrain) lambda = 1/ N;nca =改装(nca,“InitialFeatureWeights”w0,“FitMethod”,“准确”,...“拉姆达”,lambda,“解算器”,“新加坡元”);
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 (“功能重量”网格)在
使用特征权重和相对阈值选择特征。
tol=0.15;selidx=find(nca.FeatureWeights>tol*max(1,max(nca.FeatureWeights)))
selidx=1.2
特征选择改进了结果fscnca
检测相关的两个功能是否正确。
您单击了与此MATLAB命令对应的链接:
通过在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
你也可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家/地区站点不适合您所在位置的访问。