sklearn.linear_model.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正交匹配追踪问题。问题的实例具有以下形式:
当使用n_nonzero_coefs
通过非零系数的数量进行参数化时:argmin || y-Xgamma || ^ 2服从|| gamma ||0 <=n_{nonzero coefs}
当使用参数tol
进行参数化时:argmin || gamma || _0 服从|| y-Xgamma || ^ 2 <= tol
在用户指南中阅读更多内容。
参数 | 说明 |
---|---|
X | array, shape (n_samples, n_features) 输入数据。假定列具有单位范数。 |
y | array, shape (n_samples,) or (n_samples, n_targets) 输入目标 |
n_nonzero_coefs | int 解决方案中非零项的期望数目。如果为None(默认情况下),这个值设置为n_features的10%。 |
tol | float 残差的最大范数。如果不是None,则覆盖n_nonzero_coefs。 |
precompute | {True, False, ‘auto’}, 是否执行预计算。当n_targets或n_samples非常大时提高性能。 |
copy_X | bool, optional 设计矩阵X是否必须被算法复制。仅当X已经是Fortran-ordered时,false值才有用,否则无论如何都会进行复制。 |
return_path | bool, optional. Default: False 是否沿着正向路径返回非零系数的每个值。对于交叉验证很有用。 |
return_n_iter | bool, optional default False 是否返回迭代次数。 |
返回值 | 说明 |
---|---|
coef | array, shape (n_features,) or (n_features, n_targets) OMP解决方案的系数。如果为 return_path=True ,则包含整个系数路径。在这种情况下,其形状为(n_features,n_features)或(n_features,n_targets,n_features),并且在最后一个轴上进行迭代会按活动特征的递增顺序生成系数。 |
n_iters | array-like or int 每个目标上的活动特征数量。仅当 return_n_iter 设置为True时返回 。 |
另见:
decomposition.sparse_encode
注
Orthogonal matching pursuit was introduced in S. Mallat, Z. Zhang, Matching pursuits with time-frequency dictionaries, IEEE Transactions on Signal Processing, Vol. 41, No. 12. (December 1993), pp. 3397-3415. (http://blanche.polytechnique.fr/~mallat/papiers/MallatPursuit93.pdf)
This implementation is based on Rubinstein, R., Zibulevsky, M. and Elad, M., Efficient Implementation of the K-SVD Algorithm using Batch Orthogonal Matching Pursuit Technical Report - CS Technion, April 2008. https://www.cs.technion.ac.il/~ronrubin/Publications/KSVD-OMP-v2.pdf