本文简要介绍python语言中 sklearn.linear_model.ElasticNet
的用法。
用法:
class sklearn.linear_model.ElasticNet(alpha=1.0, *, l1_ratio=0.5, fit_intercept=True, normalize='deprecated', precompute=False, max_iter=1000, copy_X=True, tol=0.0001, warm_start=False, positive=False, random_state=None, selection='cyclic')
将 L1 和 L2 先验组合作为正则化器的线性回归。
最小化目标函数:
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 * ||w||_1 + 0.5 * b * ||w||_2^2
其中:
alpha = a + b and l1_ratio = a / (a + b)
参数 l1_ratio 对应于 glmnet R 包中的 alpha,而 alpha 对应于 glmnet 中的 lambda 参数。具体来说,l1_ratio = 1 是套索惩罚。目前,l1_ratio <= 0.01 不可靠,除非您提供自己的 alpha 序列。
在用户指南中阅读更多信息。
- alpha:浮点数,默认=1.0
乘以惩罚项的常数。默认为 1.0。有关此参数的确切数学含义,请参见注释。
alpha = 0
相当于普通的最小二乘,由LinearRegression
对象解决。出于数字原因,不建议将alpha = 0
与Lasso
对象一起使用。鉴于此,您应该使用LinearRegression
对象。- l1_ratio:浮点数,默认=0.5
ElasticNet 混合参数,带有
0 <= l1_ratio <= 1
。对于l1_ratio = 0
,惩罚是 L2 惩罚。For l1_ratio = 1
这是 L1 惩罚。对于0 < l1_ratio < 1
,惩罚是 L1 和 L2 的组合。- fit_intercept:布尔,默认=真
是否应该估计截距。如果
False
,则假定数据已经居中。- normalize:布尔,默认=假
当
fit_intercept
设置为 False 时忽略此参数。如果为 True,则回归量 X 将在回归前通过减去均值并除以 l2 范数进行归一化。如果您希望标准化,请在使用normalize=False
对估计器调用fit
之前使用StandardScaler
。- precompute:布尔型或类似数组的形状 (n_features, n_features),默认=False
是否使用预先计算的 Gram 矩阵来加速计算。 Gram 矩阵也可以作为参数传递。对于稀疏输入,此选项始终为
False
以保持稀疏性。- max_iter:整数,默认=1000
最大迭代次数。
- copy_X:布尔,默认=真
如果
True
,X 将被复制;否则,它可能会被覆盖。- tol:浮点数,默认=1e-4
优化的容差:如果更新小于
tol
,则优化代码检查对偶间隙的最优性并继续直到它小于tol
。- warm_start:布尔,默认=假
当设置为
True
时,重用先前调用的解决方案以适合作为初始化,否则,只需擦除先前的解决方案。请参阅词汇表。- positive:布尔,默认=假
当设置为
True
时,强制系数为正。- random_state:int,RandomState 实例,默认=无
选择要更新的随机特征的伪随机数生成器的种子。当
selection
== ‘random’ 时使用。传递 int 以获得跨多个函数调用的可重现输出。请参阅词汇表。- selection:{‘cyclic’, ‘random’},默认='循环'
如果设置为‘random’,则每次迭代都会更新随机系数,而不是默认情况下按顺序循环特征。这(设置为‘random’)通常会导致收敛速度显著加快,尤其是当 tol 高于 1e-4 时。
- coef_:ndarray 形状 (n_features,) 或 (n_targets, n_features)
参数向量(成本函数公式中的 w)。
sparse_coef_
形状为 (n_features,) 或 (n_targets, n_features) 的稀疏矩阵拟合
coef_
的稀疏表示。- intercept_:形状的浮点数或 ndarray (n_targets,)
决策函数中的独立项。
- n_iter_:int列表
坐标下降求解器为达到指定容差而运行的迭代次数。
- dual_gap_:形状的浮点数或 ndarray (n_targets,)
给定参数 alpha,优化结束时的对偶间隙,形状与 y 的每个观察值相同。
- n_features_in_:int
拟合期间看到的特征数。
- feature_names_in_:ndarray 形状(
n_features_in_
,) 拟合期间看到的特征名称。仅当
X
具有全为字符串的函数名称时才定义。
参数:
属性:
注意:
为避免不必要的内存重复,fit 方法的 X 参数应直接作为 Fortran-contiguous numpy 数组传递。
例子:
>>> from sklearn.linear_model import ElasticNet >>> from sklearn.datasets import make_regression
>>> X, y = make_regression(n_features=2, random_state=0) >>> regr = ElasticNet(random_state=0) >>> regr.fit(X, y) ElasticNet(random_state=0) >>> print(regr.coef_) [18.83816048 64.55968825] >>> print(regr.intercept_) 1.451... >>> print(regr.predict([[0, 0]])) [1.451...]
相关用法
- Python sklearn ElasticNetCV用法及代码示例
- Python sklearn ElasticNet.path用法及代码示例
- Python sklearn ElasticNetCV.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.ElasticNet。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。