本文简要介绍python语言中 sklearn.linear_model.ElasticNetCV
的用法。
用法:
class sklearn.linear_model.ElasticNetCV(*, l1_ratio=0.5, eps=0.001, n_alphas=100, alphas=None, fit_intercept=True, normalize='deprecated', precompute='auto', max_iter=1000, tol=0.0001, cv=None, copy_X=True, verbose=0, n_jobs=None, positive=False, random_state=None, selection='cyclic')
沿正则化路径迭代拟合的弹性网络模型。
请参阅交叉验证估计器的词汇表条目。
在用户指南中阅读更多信息。
- l1_ratio:浮点数或浮点数列表,默认=0.5
0 和 1 之间的浮点数传递给 ElasticNet(在 l1 和 l2 惩罚之间缩放)。对于
l1_ratio = 0
,惩罚是 L2 惩罚。对于l1_ratio = 1
,这是 L1 惩罚。对于0 < l1_ratio < 1
,惩罚是 L1 和 L2 的组合。此参数可以是一个列表,在这种情况下,通过交叉验证测试不同的值,并使用给出最佳预测分数的值。请注意,l1_ratio 值列表的一个不错选择通常是放置更多接近 1 的值(即 Lasso)和不太接近 0(即 Ridge),如[.1, .5, .7, .9, .95, .99, 1]
中。- eps:浮点数,默认=1e-3
路径的长度。
eps=1e-3
表示alpha_min / alpha_max = 1e-3
。- n_alphas:整数,默认=100
正则化路径上的 alpha 数量,用于每个 l1_ratio。
- alphas:ndarray,默认=无
计算模型的 alpha 列表。如果 None alphas 是自动设置的。
- fit_intercept:布尔,默认=真
是否计算此模型的截距。如果设置为 false,则不会在计算中使用截距(即数据应居中)。
- normalize:布尔,默认=假
当
fit_intercept
设置为 False 时忽略此参数。如果为 True,则回归量 X 将在回归前通过减去均值并除以 l2 范数进行归一化。如果您希望标准化,请在使用normalize=False
对估计器调用fit
之前使用StandardScaler
。- precompute:‘auto’,布尔型或类似数组的形状 (n_features, n_features),默认=’auto’
是否使用预先计算的 Gram 矩阵来加速计算。如果设置为
'auto'
,让我们决定。 Gram 矩阵也可以作为参数传递。- max_iter:整数,默认=1000
最大迭代次数。
- tol:浮点数,默认=1e-4
优化的容差:如果更新小于
tol
,则优化代码检查对偶间隙的最优性并继续直到它小于tol
。- cv:int,交叉验证生成器或可迭代,默认=无
确定交叉验证拆分策略。 cv 的可能输入是:
- 无,使用默认的 5 折交叉验证,
- int,指定折叠次数。
- CV分配器,
- 一个可迭代的 yield (train, test) 拆分为索引数组。
对于 int/None 输入,使用
KFold
。有关可在此处使用的各种交叉验证策略,请参阅用户指南。
- copy_X:布尔,默认=真
如果
True
,X 将被复制;否则,它可能会被覆盖。- verbose:bool 或 int,默认 = 0
详细程度。
- n_jobs:整数,默认=无
交叉验证期间要使用的 CPU 数量。
None
表示 1,除非在joblib.parallel_backend
上下文中。-1
表示使用所有处理器。有关详细信息,请参阅词汇表。- positive:布尔,默认=假
当设置为
True
时,强制系数为正。- random_state:int,RandomState 实例,默认=无
选择要更新的随机特征的伪随机数生成器的种子。当
selection
== ‘random’ 时使用。传递 int 以获得跨多个函数调用的可重现输出。请参阅词汇表。- selection:{‘cyclic’, ‘random’},默认='循环'
如果设置为‘random’,则每次迭代都会更新随机系数,而不是默认情况下按顺序循环特征。这(设置为‘random’)通常会导致收敛速度显著加快,尤其是当 tol 高于 1e-4 时。
- alpha_:浮点数
交叉验证选择的惩罚量。
- l1_ratio_:浮点数
交叉验证选择的 l1 和 l2 惩罚之间的折衷。
- coef_:ndarray 形状 (n_features,) 或 (n_targets, n_features)
参数向量(成本函数公式中的 w)。
- intercept_:形状的浮点数或 ndarray (n_targets, n_features)
决策函数中的独立项。
- mse_path_:ndarray 形状(n_l1_ratio,n_alpha,n_folds)
每次折叠测试集的均方误差,变化的 l1_ratio 和 alpha。
- alphas_:ndarray 形状 (n_alphas,) 或 (n_l1_ratio, n_alphas)
对于每个 l1_ratio,用于拟合的 alpha 网格。
- dual_gap_:浮点数
最优 alpha 优化结束时的对偶间隙。
- n_iter_:int
坐标下降求解器运行的迭代次数,以达到最佳 alpha 的指定容差。
- n_features_in_:int
拟合期间看到的特征数。
- feature_names_in_:ndarray 形状(
n_features_in_
,) 拟合期间看到的特征名称。仅当
X
具有全为字符串的函数名称时才定义。
参数:
属性:
注意:
例如,请参见例子/linear_model/plot_lasso_model_selection.py.
为避免不必要的内存重复,fit 方法的 X 参数应直接作为 Fortran-contiguous numpy 数组传递。
参数 l1_ratio 对应于 glmnet R 包中的 alpha,而 alpha 对应于 glmnet 中的 lambda 参数。更具体地说,优化目标是:
1 / (2 * n_samples) * ||y - Xw||^2_2 + alpha * l1_ratio * ||w||_1 + 0.5 * alpha * (1 - l1_ratio) * ||w||^2_2
如果您有兴趣分别控制 L1 和 L2 惩罚,请记住这相当于:
a * L1 + b * L2
为了:
alpha = a + b and l1_ratio = a / (a + b).
例子:
>>> from sklearn.linear_model import ElasticNetCV >>> from sklearn.datasets import make_regression
>>> X, y = make_regression(n_features=2, random_state=0) >>> regr = ElasticNetCV(cv=5, random_state=0) >>> regr.fit(X, y) ElasticNetCV(cv=5, random_state=0) >>> print(regr.alpha_) 0.199... >>> print(regr.intercept_) 0.398... >>> print(regr.predict([[0, 0]])) [0.398...]
相关用法
- Python sklearn ElasticNetCV.path用法及代码示例
- Python sklearn ElasticNet用法及代码示例
- Python sklearn ElasticNet.path用法及代码示例
- Python sklearn EllipticEnvelope用法及代码示例
- Python sklearn ExpSineSquared用法及代码示例
- Python sklearn ExtraTreeClassifier用法及代码示例
- Python sklearn ExtraTreesRegressor用法及代码示例
- Python sklearn ExtraTreeRegressor用法及代码示例
- Python sklearn ExtraTreesClassifier用法及代码示例
- Python sklearn EmpiricalCovariance用法及代码示例
- Python sklearn Exponentiation用法及代码示例
- Python sklearn jaccard_score用法及代码示例
- Python sklearn WhiteKernel用法及代码示例
- Python sklearn CalibrationDisplay.from_predictions用法及代码示例
- Python sklearn VotingRegressor用法及代码示例
- Python sklearn gen_batches用法及代码示例
- Python sklearn MDS用法及代码示例
- Python sklearn adjusted_rand_score用法及代码示例
- Python sklearn MLPClassifier用法及代码示例
- Python sklearn train_test_split用法及代码示例
- Python sklearn RandomTreesEmbedding用法及代码示例
- Python sklearn GradientBoostingRegressor用法及代码示例
- Python sklearn GridSearchCV用法及代码示例
- Python sklearn log_loss用法及代码示例
- Python sklearn r2_score用法及代码示例
注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.linear_model.ElasticNetCV。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。