orthogonal_mp#

sklearn.linear_model.orthogonal_mp(X, y, *, n_nonzero_coefs=None, tol=None, precompute=False, copy_X=True, return_path=False, return_n_iter=False)[源代码]#

垂直匹配追求(OMP)。

解决n_targets的垂直匹配追踪问题。该问题的一个实例的形式如下:

When parametrized by the number of non-zero coefficients using n_nonzero_coefs: argmin ||y - Xgamma||^2 subject to ||gamma||_0 <= n_{nonzero coefs}

当使用参数错误参数化时 tol :argmin ||gamma||_ 0受||y - Xgamma|| #2 <= tol

阅读更多的 User Guide .

参数:
X形状类似阵列(n_samples,n_features)

输入数据。假设列具有单位规范。

y形状的nd数组(n_samples,)或(n_samples,n_targets)

输入目标。

n_nonzero_coefsint,默认=无

解决方案中所需的非零条目数量。如果无(默认情况下),此值设置为n_features的10%。

tolfloat,默认=无

剩余的最大平方规范。如果不是无,则重写n_非零_coefs。

precompute'auto' or bool, default=False

是否执行预计算。提高了n_targets或n_samples非常大时的性能。

copy_X布尔,默认=True

设计矩阵X是否必须被算法复制。只有当X已经被Forrester排序时,假值才有帮助,否则无论如何都会创建副本。

return_path布尔,默认=假

是否返回前向路径上非零系数的每个值。对于交叉验证有用。

return_n_iter布尔,默认=假

是否返回迭代次数。

返回:
coef形状的nd数组(n_features,)或(n_features,n_targets)

OMP解决方案的系数。如果 return_path=True ,这包含整个系数路径。在这种情况下,它的形状是(n_features,n_features)或(n_features,n_targets,n_features),并且在最后一个轴上迭代会按照活动特征的递减顺序生成系数。

n_itersarray-like或int

每个目标上的活动功能数量。只有在以下情况下才返回 return_n_iter 设置为True。

参见

OrthogonalMatchingPursuit

垂直匹配追求模型。

orthogonal_mp_gram

利用Gram矩阵和乘积X.T * y求解OMP问题。

lars_path

使用LARS算法计算最小角度回归或Lasso路径。

sklearn.decomposition.sparse_encode

稀疏编码。

注意到

在S.马拉特,Z.张文,基于时频字典的匹配追踪,IEEE信号处理学报,第41卷,第12期。(1993年12月),pp. 3397-3415.(https://www.di.ens.fr/Mallat/papiers/MallatPursuit93.pdf)

该实现基于Rubinstein,R.,齐布列夫斯基,M. Elad,M.,使用批量垂直匹配追踪技术报告有效实现K-DID算法- CS Technion,2008年4月。https://www.cs.technion.ac.il/~ronrubin/Publications/KSVD-OMP-v2.pdf

示例

>>> from sklearn.datasets import make_regression
>>> from sklearn.linear_model import orthogonal_mp
>>> X, y = make_regression(noise=4, random_state=0)
>>> coef = orthogonal_mp(X, y)
>>> coef.shape
(100,)
>>> X[:1,] @ coef
array([-78.68...])