lars_path_gram#
- sklearn.linear_model.lars_path_gram(Xy, Gram, *, n_samples, max_iter=500, alpha_min=0, method='lar', copy_X=True, eps=np.float64(2.220446049250313e-16), copy_Gram=True, verbose=0, return_path=True, return_n_iter=False, positive=False)[源代码]#
充足统计数据模式下的lars_track。
案例方法=' lasso '的优化目标是::
(1 / (2 * n_samples)) * ||y - Xw||^2_2 + alpha * ||w||_1
在方法=' lar '的情况下,目标函数仅以隐式方程的形式已知(参见中的讨论 [1]) .
阅读更多的 User Guide .
- 参数:
- Xy形状的nd数组(n_features,)
Xy = X.T @ y
.- Gram形状的nd数组(n_features,n_features)
Gram = X.T @ X
.- n_samplesint
样本大小相等。
- max_iterint,默认=500
要执行的最大迭代次数,设置为无限大表示没有限制。
- alpha_minfloat,默认=0
沿着路径的最小相关性。它对应于Lasso中的正规化参数Alpha参数。
- method' lar ',',默认=' lar '
Specifies the returned model. Select
'lar'
for Least Angle Regression,'lasso'
for the Lasso.- copy_X布尔,默认=True
如果
False
,X
已被覆盖。- epsfloat,default=np.finfo(float).eps
Cholesky对角线因子计算中的机器精度正规化。对于条件非常恶劣的系统,请增加这一比例。不像
tol
在某些基于迭代优化的算法中,该参数不控制优化的容差。- copy_Gram布尔,默认=True
如果
False
,Gram
已被覆盖。- verboseint,默认=0
控制输出冗长。
- return_path布尔,默认=True
如果
return_path==True
返回整个路径,否则只返回路径的最后一个点。- return_n_iter布尔,默认=假
是否返回迭代次数。
- positive布尔,默认=假
将系数限制为>= 0。此选项仅允许使用方法“lasso”。请注意,对于较小的阿尔法值,模型系数不会收敛到普通最小平方解。仅限最小Alpha值的系数 (
alphas_[alphas_ > 0.]。min()'当 `fit_path=True
)通过逐步Lars-Lasso算法达到的值通常与坐标下降lasso_路径函数的解一致。
- 返回:
- alphas形状的nd数组(n_alphas + 1,)
每次迭代时协方差的最大值(绝对值)。
n_alphas
要么是max_iter
,n_features
或路径中的节点数alpha >= alpha_min
,以较小者为准。- active形状的nd数组(n_alphas,)
路径结束处活动变量的索引。
- coefs形状nd数组(n_features,n_alphas + 1)
沿着路径的系数。
- n_iterint
运行的迭代次数。只有在以下情况下才返回
return_n_iter
设置为True。
参见
lars_path_gram
计算LARS路径。
lasso_path
使用坐标下降计算Lasso路径。
LassoLars
Lasso模型与最小角度回归(又名最小角度回归)进行匹配拉斯。
Lars
最小角度回归模型,又名拉尔。
LassoLarsCV
使用LARS算法交叉验证Lasso。
LarsCV
交叉验证的最小角回归模型。
sklearn.decomposition.sparse_encode
稀疏编码。
引用
[1]“最小角度回归”,Efron等人。http://statweb.stanford.edu/~tibs/ftp/lars.pdf
[2]Wikipedia entry on the Least-angle regression <https://en.wikipedia.org/wiki/Least-angle_regression>
_[3]Wikipedia entry on the Lasso <https://en.wikipedia.org/wiki/Lasso_(statistics)>
_示例
>>> from sklearn.linear_model import lars_path_gram >>> from sklearn.datasets import make_regression >>> X, y, true_coef = make_regression( ... n_samples=100, n_features=5, n_informative=2, coef=True, random_state=0 ... ) >>> true_coef array([ 0. , 0. , 0. , 97.9..., 45.7...]) >>> alphas, _, estimated_coef = lars_path_gram(X.T @ y, X.T @ X, n_samples=100) >>> alphas.shape (3,) >>> estimated_coef array([[ 0. , 0. , 0. ], [ 0. , 0. , 0. ], [ 0. , 0. , 0. ], [ 0. , 46.96..., 97.99...], [ 0. , 0. , 45.70...]])