主要内容

Sparsefilt.

使用稀疏过滤功能提取

描述

MDL.= sparsefilt(X.问:返回一个稀疏的过滤模型对象,该对象包含应用于应用稀疏过滤的结果或预测器数据的矩阵X.包含P.变量。问:是从中提取的功能数量X.因此,Sparsefilt.学习A.P.-问:转化重量矩阵。适用于替补或过度顺从的特征表示,问:可以分别小于或大于预测变量的数量。

  • 访问学习的转换权重,使用mdl.transformweights.

  • 改变X.通过使用学习的转换,通过了新的功能集MDL.X.到目前为止转变

示例

MDL.= sparsefilt(X.问:名称,价值使用一个或多个指定的其他选项名称,价值对论点。例如,您可以标准化预测器数据或应用L.2正规化。

例子

崩溃

创建A.SparseFiltering.通过使用的对象Sparsefilt.功能。

加载SampleImagePatches.图像补丁。

data = load('samemimagepatches');大小(data.x)
ans =.1×25000 363.

有5,000个图像修补程序,每个图像补丁包含363个功能。

从数据中提取100个功能。

RNG.默认重复性的%q = 100;obj = sparsefilt(data.x,q,'iterationlimit',100)
警告:求解器LBFGS无法收敛到解决方案。
Obj = SparseFiltering ModelParameters:[1x1 struct] NumPredictors:363 NumLearnedFeatures:100 mu:[] Sigma:[] FitInfo:[1x1 struct]变换重量:[363x100双] InitialTransformweights:[]属性,方法

Sparsefilt.出现警告,因为它由于达到迭代限制而停止,而不是达到梯度大小的限制或梯度大小限制。您仍然可以通过调用返回对象中的学习功能转变功能。

继续优化稀疏过滤器。

加载SampleImagePatches.图像补丁。

data = load('samemimagepatches');大小(data.x)
ans =.1×25000 363.

有5,000个图像修补程序,每个图像补丁包含363个功能。

从数据中提取100个功能并使用20的迭代限制。

RNG.默认重复性的%q = 100;mdl = sparsefilt(data.x,q,'iterationlimit'20);
警告:求解器LBFGS无法收敛到解决方案。

将生成的转换矩阵视为图像补丁。

wts = mdl.transformuights;w =重塑(WTS,[11,11,3,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 = CEIL(SQRT(Q));n = m;IMG =零(m * dx,n * dy,3);f = 1;对于我= 1:m对于j = 1:n如果(f <= q)img((i-1)* dx + 1:i * dx,(j-1)* dy + 1:j * dy,:) = w(:,::,f);f = f + 1;结束结束结束imshow(img,'InitialMagnification',300);

图包含轴。轴包含类型图像的对象。

图像修补程序出现嘈杂。要清理噪音,请尝试更多的迭代。重新启动它在其停止其他40次迭代的位置。

mdl = sparsefilt(data.x,q,'iterationlimit',40,'InitialTransformweights',WTS);
警告:求解器LBFGS无法收敛到解决方案。

将更新的转换矩阵视为图像修补程序。

wts = mdl.transformuights;w =重塑(WTS,[11,11,3,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 = CEIL(SQRT(Q));n = m;IMG =零(m * dx,n * dy,3);f = 1;对于我= 1:m对于j = 1:n如果(f <= q)img((i-1)* dx + 1:i * dx,(j-1)* dy + 1:j * dy,:) = w(:,::,f);f = f + 1;结束结束结束imshow(img,'InitialMagnification',300);

图包含轴。轴包含类型图像的对象。

这些图像令人噪声较小。

输入参数

崩溃

预测数据,指定为一个N-P.数字矩阵或表。行对应于各个观测和列对应于各个预测变量。如果X.是一个表,那么它的所有变量都必须是数字向量。

数据类型:单身|双人间|表格

从预测器数据中提取的功能数量指定为正整数。

Sparsefilt.商店A.P.-问:转换权重矩阵mdl.transformweights.。因此,设置非常大的值问:可以导致更大的内存消耗和增加的计算时间。

数据类型:单身|双人间

名称值对参数

指定可选的逗号分离对名称,价值论点。名称是参数名称和价值是相应的价值。名称必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen

示例:'标准化',真实,'lambda',1标准化预测仪数据并应用罚款1转换权重矩阵。

指定为逗号分隔对的最大迭代次数'iterationlimit'和一个正整数。

示例:'iterationlimit',1e6

数据类型:单身|双人间

监控算法收敛的冗长级别,指定为包括的逗号分隔对'promoylevel'和这个表中的一个值。

价值 描述
0. Sparsefilt.在命令行中不显示会聚信息。
正整数 Sparsefilt.在命令行中显示收敛信息。

收敛信息

标题 意思
有趣的价值 目标函数值。
常规毕业 目标函数的梯度规范。
规范步骤 迭代步骤的规范,这意味着前一点与当前点之间的距离。
cur 好的意味着满足弱狼条件。这种情况是目标函数的充分降低和曲率条件的组合。
伽玛 内部产物的梯度差异,除以梯度差异的内部产物。梯度差是当前点处的梯度减去前一点的梯度。提供有关目标函数曲率的诊断信息。
alpha. 步进乘法器,其不同1当算法执行线路搜索时。
接受 是的意味着该算法发现了一个可接受的步骤。

示例:'promoylevel',1

数据类型:单身|双人间

L.2变换权重矩阵的正则化系数值,指定为包括的逗号分隔对'lambda'和一个正数标量。如果您指定0.,默认情况下,目标函数中没有正则化术语。

示例:'lambda',0.1

数据类型:单身|双人间

标志为标准化预测的数据,指定为逗号分隔的配对'标准化'真实1)或者0.)。

如果标准化真实然后:

  • Sparsefilt.中心并缩放预测器数据的每列(X.)通过柱式和标准偏差分别。

  • Sparsefilt.使用标准化的预测矩阵提取新功能,并将预测器变量装置和标准偏差存储在属性中Sigma.ofMDL.

示例:'标准化',真实

数据类型:逻辑

初始化优化的转换权重,指定为包括的逗号分隔对'InitialTransformweights'A.P.-问:数字矩阵。P.必须是列或变量的数量X.问:是值的价值问:

提示

您可以通过将其传递为另一个呼叫中的初始值来继续优化先前返回的变换权重矩阵Sparsefilt.。输出模型对象MDL.存储学习的转换权重矩阵变换重量财产。

示例:'InitialTransformweights',mdl.transformwuights

数据类型:单身|双人间

梯度范围的相对收敛耐受性,指定为包括的逗号分隔对'gradienttolerance'和一个正数标量。该梯度是目标函数的梯度。

示例:'gradienttolerance',1E-4

数据类型:单身|双人间

阶梯大小的绝对收敛公差,指定为逗号分隔对组成'steptolerance'和一个正数标量。

示例:'steptolerance',1e-4

数据类型:单身|双人间

输出参数

崩溃

学习了稀疏过滤模型,作为一个返回SparseFiltering.模型对象。

访问属性MDL.,使用点表示法。例如:

  • 访问学习的变换权重,使用mdl.transformweights.

  • 访问拟合信息结构,使用mdl.fitinfo.

要找到新数据的稀疏过滤系数,请使用转变功能。

算法

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

有关详细信息,请参阅稀疏过滤算法

在R2017A介绍