orthogonal_mp_gram#

sklearn.linear_model.orthogonal_mp_gram(Gram, Xy, *, n_nonzero_coefs=None, tol=None, norms_squared=None, copy_Gram=True, copy_Xy=True, return_path=False, return_n_iter=False)[源代码]#

革兰氏正匹配追求(OMP)。

仅使用Gram矩阵X.T来解决n_targets的Orthogonal Matching Pursuit问题 * X and the product X.T * y.

阅读更多的 User Guide .

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

输入数据的克氏矩阵: X.T * X .

Xy形状类似阵列(n_features,)或(n_features,n_targets)

输入目标乘以 X : X.T * y .

n_nonzero_coefsint,默认=无

解决方案中所需的非零条目数量。如果 None (by默认值),该值设置为n_features的10%。

tolfloat,默认=无

剩余的最大平方规范。如果不是 None ,覆盖 n_nonzero_coefs .

norms_squared形状类似数组(n_targets,),默认=无

线的L2规范平方 y .所需基准 tol 不是没有。

copy_Gram布尔,默认=True

算法是否必须复制gram矩阵。一 False 只有当它已经被Forrester订购时,值才有帮助,否则无论如何都会创建副本。

copy_Xy布尔,默认=True

是否协方差向量 Xy 必须被算法复制。如果 False ,它可能会被覆盖。

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_iters列表或int

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

参见

OrthogonalMatchingPursuit

垂直匹配追求模型(OMP)。

orthogonal_mp

解决n_targets的垂直匹配追踪问题。

lars_path

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

sklearn.decomposition.sparse_encode

通用稀疏编码。结果的每一列都是Lasso问题的解决方案。

注意到

在G.马拉特,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_gram
>>> X, y = make_regression(noise=4, random_state=0)
>>> coef = orthogonal_mp_gram(X.T @ X, X.T @ y)
>>> coef.shape
(100,)
>>> X[:1,] @ coef
array([-78.68...])