当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python sklearn MultiTaskElasticNet用法及代码示例


本文简要介绍python语言中 sklearn.linear_model.MultiTaskElasticNet 的用法。

用法:

class sklearn.linear_model.MultiTaskElasticNet(alpha=1.0, *, l1_ratio=0.5, fit_intercept=True, normalize='deprecated', copy_X=True, max_iter=1000, tol=0.0001, warm_start=False, random_state=None, selection='cyclic')

使用 L1/L2 mixed-norm 作为正则化器训练的多任务 ElasticNet 模型。

MultiTaskElasticNet 的优化目标是:

(1 / (2 * n_samples)) * ||Y - XW||_Fro^2
+ alpha * l1_ratio * ||W||_21
+ 0.5 * alpha * (1 - l1_ratio) * ||W||_Fro^2

其中:

||W||_21 = sum_i sqrt(sum_j W_ij ^ 2)

即每一行的范数之和。

在用户指南中阅读更多信息。

参数

alpha浮点数,默认=1.0

乘以 L1/L2 项的常数。默认为 1.0。

l1_ratio浮点数,默认=0.5

ElasticNet 混合参数,0 < l1_ratio <= 1。对于 l1_ratio = 1,惩罚是 L1/L2 惩罚。对于 l1_ratio = 0,这是 L2 惩罚。对于 0 < l1_ratio < 1 ,惩罚是 L1/L2 和 L2 的组合。

fit_intercept布尔,默认=真

是否计算此模型的截距。如果设置为 false,则不会在计算中使用截距(即数据应居中)。

normalize布尔,默认=假

fit_intercept 设置为 False 时忽略此参数。如果为 True,则回归量 X 将在回归前通过减去均值并除以 l2 范数进行归一化。如果您希望标准化,请在使用 normalize=False 对估计器调用 fit 之前使用 StandardScaler

copy_X布尔,默认=真

如果 True ,X 将被复制;否则,它可能会被覆盖。

max_iter整数,默认=1000

最大迭代次数。

tol浮点数,默认=1e-4

优化的容差:如果更新小于 tol ,则优化代码检查对偶间隙的最优性并继续直到它小于 tol

warm_start布尔,默认=假

当设置为 True 时,重用先前调用的解决方案以适合作为初始化,否则,只需擦除先前的解决方案。请参阅词汇表。

random_stateint,RandomState 实例,默认=无

选择要更新的随机特征的伪随机数生成器的种子。当selection == ‘random’ 时使用。传递 int 以获得跨多个函数调用的可重现输出。请参阅词汇表。

selection{‘cyclic’, ‘random’},默认='循环'

如果设置为‘random’,则每次迭代都会更新随机系数,而不是默认情况下按顺序循环特征。这(设置为‘random’)通常会导致收敛速度显著加快,尤其是当 tol 高于 1e-4 时。

属性

intercept_ndarray 形状 (n_targets,)

决策函数中的独立项。

coef_ndarray 形状(n_targets,n_features)

参数向量(成本函数公式中的 W)。如果一维 y 以合适的方式传入(非多任务使用),则 coef_ 是一维数组。请注意,coef_ 存储了 WW.T 的转置。

n_iter_int

坐标下降求解器为达到指定容差而运行的迭代次数。

dual_gap_浮点数

优化结束时的双重差距。

eps_浮点数

公差按目标 y 的方差缩放。

sparse_coef_形状为 (n_features,) 或 (n_targets, n_features) 的稀疏矩阵

拟合 coef_ 的稀疏表示。

n_features_in_int

拟合期间看到的特征数。

feature_names_in_ndarray 形状(n_features_in_,)

拟合期间看到的特征名称。仅当 X 具有全为字符串的函数名称时才定义。

注意

用于拟合模型的算法是坐标下降。

为避免不必要的内存重复,fit 方法的 X 和 y 参数应直接作为 Fortran-contiguous numpy 数组传递。

例子

>>> from sklearn import linear_model
>>> clf = linear_model.MultiTaskElasticNet(alpha=0.1)
>>> clf.fit([[0,0], [1, 1], [2, 2]], [[0, 0], [1, 1], [2, 2]])
MultiTaskElasticNet(alpha=0.1)
>>> print(clf.coef_)
[[0.45663524 0.45612256]
 [0.45663524 0.45612256]]
>>> print(clf.intercept_)
[0.0872422 0.0872422]

相关用法


注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.linear_model.MultiTaskElasticNet。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。