主要内容

sparsefilt

特征提取,利用稀疏的过滤

描述

Mdl= sparsefilt (X,)返回一个稀疏的过滤模型对象,其中包含的结果应用稀疏过滤表或矩阵的预测数据X包含p变量。是特征提取的数量X,因此sparsefilt学习一个p——- - - - - -权重矩阵的变换。undercomplete或overcomplete特性表征,可以小于或大于预测变量的数量,分别。

  • 访问学习转换重量、使用Mdl.TransformWeights

  • 转换X新设置的功能通过使用学习转换,通过MdlX变换

例子

Mdl= sparsefilt (X,,名称,值)使用指定的一个或多个额外的选项名称,值对参数。例如,您可以规范预测数据或应用l2正则化。

例子

全部折叠

创建一个SparseFiltering通过使用对象sparsefilt函数。

加载SampleImagePatches图像补丁。

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

363年有5000个图像补丁,每个都包含的特性。

从数据中提取100特性。

rng默认的%的再现性Q = 100;obj = sparsefilt (data.X Q“IterationLimit”,100)
警告:解决LBFGS无法收敛到一个解决方案。
obj = SparseFiltering ModelParameters: [1 x1 struct] NumPredictors: 363 NumLearnedFeatures: 100亩:σ[]:[]FitInfo: [1 x1 struct] TransformWeights: [363 x100双]InitialTransformWeights:[]属性,方法

sparsefilt发出一个警告,因为它停止由于迭代达到极限,而不是达到一个步长限制或gradient-size极限。你仍然可以使用学到的特性通过调用返回的对象变换函数。

继续优化稀疏的过滤器。

加载SampleImagePatches图像补丁。

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

363年有5000个图像补丁,每个都包含的特性。

从数据中提取100特性和使用迭代20的极限。

rng默认的%的再现性q = 100;Mdl = sparsefilt (data.X q“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);

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的形象。

图像补丁出现吵了。清理噪音,尝试更多的迭代。重新启动优化从那里停了另一个40迭代。

Mdl = sparsefilt (data.X q“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);

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的形象。

这些图片不太吵了。

输入参数

全部折叠

预测数据,指定为一个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