主要内容

sparsefilt

利用稀疏滤波进行特征提取

描述

Mdl= sparsefilt (X返回一个稀疏筛选模型对象,该对象包含对预测器数据的表或矩阵应用稀疏筛选的结果X包含p变量。是要提取的特征数量吗X,因此sparsefilt学习一个p——- - - - - -变换权的矩阵。对于不完整或过完整的特征表示,可以分别小于或大于预测变量的数量。

  • 要访问学习到的转换权值,请使用Mdl。TransformWeights

  • 转换X通过使用学到的转换,传递到新的特征集Mdl而且X变换

例子

Mdl= sparsefilt (X名称,值使用一个或多个指定的其他选项名称,值对参数。例如,您可以标准化预测器数据或应用l2正则化。

例子

全部折叠

创建一个SparseFiltering对象。sparsefilt函数。

加载SampleImagePatches图像补丁。

data =负载(“SampleImagePatches”);大小(data.X)
ans =1×25000 363

共有5000个图像补丁,每个补丁包含363个特征。

从数据中提取100个特征。

rng默认的%的再现性Q = 100;obj = sparsefilt(数据。X,问,“IterationLimit”, 100)
警告:求解器LBFGS无法收敛到解。
obj = SparseFiltering ModelParameters: [1x1 struct] NumPredictors: 363 NumLearnedFeatures: 100 Mu: [] Sigma: [] FitInfo: [1x1 struct] TransformWeights: [363x100 double] InitialTransformWeights: [] Properties, Methods

sparsefilt发出警告,因为它由于达到迭代限制而停止,而不是达到步长限制或梯度大小限制。方法,仍然可以在返回的对象中使用学到的特性变换函数。

继续优化稀疏过滤器。

加载SampleImagePatches图像补丁。

data =负载(“SampleImagePatches”);大小(data.X)
ans =1×25000 363

共有5000个图像补丁,每个补丁包含363个特征。

从数据中提取100个特征,迭代限制为20。

rng默认的%的再现性q = 100;Mdl = sparsefilt(数据。X,问,“IterationLimit”, 20);
警告:求解器LBFGS无法收敛到解。

将得到的变换矩阵视为图像补丁。

但是= Mdl.TransformWeights;W =重塑(wts,[3 11日,11日,q]);(dx, dy, ~, ~) = (W)大小;f = 1:q Wvec = W(:,:,:,f);Wvec = Wvec (:);Wvec = (Wvec - min (Wvec)) / (max (Wvec) - min (Wvec));W (:,:: f) =重塑(Wvec, dx, dy, 3);结束m =装天花板(sqrt (q));n = m;img = 0 (m * dx, n * dy, 3);f = 1;i = 1: mj = 1: n如果(f < = q) img((张)* dx + 1:我* dx, dy (j - 1) * + 1: j * dy:) = W (:,:: f);f = f + 1;结束结束结束imshow (img,“InitialMagnification”, 300);

图中包含一个axes对象。坐标轴对象包含一个image类型的对象。

图像补丁出现噪声。要清除噪音,请尝试更多迭代。从停止的地方重新启动优化,再进行40次迭代。

Mdl = sparsefilt(数据。X,问,“IterationLimit”现年40岁的“InitialTransformWeights”wts);
警告:求解器LBFGS无法收敛到解。

将更新后的变换矩阵视为图像补丁。

但是= Mdl.TransformWeights;W =重塑(wts,[3 11日,11日,q]);(dx, dy, ~, ~) = (W)大小;f = 1:q Wvec = W(:,:,:,f);Wvec = Wvec (:);Wvec = (Wvec - min (Wvec)) / (max (Wvec) - min (Wvec));W (:,:: f) =重塑(Wvec, dx, dy, 3);结束m =装天花板(sqrt (q));n = m;img = 0 (m * dx, n * dy, 3);f = 1;i = 1: mj = 1: n如果(f < = q) img((张)* dx + 1:我* dx, dy (j - 1) * + 1: j * dy:) = W (:,:: f);f = f + 1;结束结束结束imshow (img,“InitialMagnification”, 300);

图中包含一个axes对象。坐标轴对象包含一个image类型的对象。

这些图像不那么嘈杂。

输入参数

全部折叠

预测数据,指定为n——- - - - - -p数字矩阵或表格。行对应个别的观察结果,列对应个别的预测变量。如果X是一个表,那么它的所有变量都必须是数值向量。

数据类型:||表格

从预测器数据中提取的特征数量,指定为正整数。

sparsefilt存储p——- - - - - -中的变换权矩阵Mdl。TransformWeights.因此,设置非常大的值会导致更大的内存消耗和计算时间的增加。

数据类型:|

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

例子:“标准化”,的确,“λ”,1标准化预测器数据并应用惩罚1变换权矩阵。

最大迭代次数,指定为逗号分隔的对,由“IterationLimit”一个正整数。

例子:“IterationLimit”,1 e6

数据类型:|

用于监视算法收敛的冗长级别,指定为逗号分隔的对,由“VerbosityLevel”和这个表中的一个值。

价值 描述
0 sparsefilt不会在命令行上显示收敛信息。
正整数 sparsefilt在命令行显示收敛信息。

融合信息

标题 意义
有趣的价值 目标函数值。
规范研究生 目标函数梯度的范数。
标准步骤 迭代步长范数,表示上一个点到当前点的距离。
曲线 好吧表示满足弱沃尔夫条件。该条件是目标函数的充分递减和曲率条件的结合。
γ 阶跃的内积乘以梯度差,除以梯度差与自身的内积。梯度差是当前点的梯度减去前一点的梯度。给出目标函数曲率的诊断信息。
α 步进方向乘法器,其区别于1当算法执行行搜索时。
接受 是的意味着算法找到了可以接受的步骤。

例子:“VerbosityLevel”,1

数据类型:|

l2变换权矩阵的正则化系数值,指定为逗号分隔的对,由“λ”和一个正的数值标量。如果您指定0,则目标函数中不存在正则化项。

例子:“λ”,0.1

数据类型:|

标志以标准化预测器数据,指定为逗号分隔的对,由“标准化”而且真正的1)或0)。

如果标准化真正的,那么:

  • sparsefilt对预测数据的每列进行居中和缩放(X)分别用列均值和标准差表示。

  • sparsefilt利用标准化的预测矩阵提取新特征,并将预测变量均值和标准差存储在属性中μ而且σMdl

例子:“标准化”,真的

数据类型:逻辑

初始化优化的转换权重,指定为逗号分隔的对,由“InitialTransformWeights”和一个p——- - - - - -数字矩阵。p必须是列或变量的数量X而且的值

提示

通过在另一个调用中将其作为初始值传递,可以继续优化先前返回的转换权重矩阵sparsefilt.输出模型对象Mdl存储学习到的变换权矩阵TransformWeights财产。

例子:InitialTransformWeights, Mdl。TransformWeights

数据类型:|

梯度范数上的相对收敛公差,用逗号分隔的对表示“GradientTolerance”和一个正的数值标量。这个梯度就是目标函数的梯度。

例子:“GradientTolerance”,1的军医

数据类型:|

步长上的绝对收敛公差,指定为逗号分隔的对,由“StepTolerance”和一个正的数值标量。

例子:“StepTolerance”,1的军医

数据类型:|

输出参数

全部折叠

学习了稀疏滤波模型,返回为SparseFiltering模型对象。

访问的属性Mdl,使用点表示法。例如:

  • 要访问学习到的变换权值,请使用Mdl。TransformWeights

  • 若要访问拟合信息结构,请使用Mdl。FitInfo

为新数据寻找稀疏过滤系数,请使用变换函数。

算法

sparsefilt函数创建了输入特征到输出特征的非线性转换。这种转换基于优化一个目标函数,该函数鼓励通过尽可能少的输出特征来表示每个示例,同时保持输出特征在示例间同样活跃。

有关详细信息,请参见稀疏的滤波算法

版本历史

介绍了R2017a

Baidu
map