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...])