sklearn中的Lasso函数

语法:

 Lasso(alpha=1.0, fit_intercept=True, normalize=False, precompute=False, copy_X=True, max_iter=1000, tol=1e-4, warm_start=False, positive=False, random_state=None, selection=’cyclic’)

类型:

 在sklearn.linear_model.coordinate_descent中出现,Lasso类,继承自ElasticNet。使用L1作为正则化器训练的线性模型(即套索)。

 Lasso的最优目标函数是:

12n_samples||yXw||22+α||w||1 1 2 ⋅ n _ s a m p l e s | | y − X w | | 2 2 + α | | w | | 1

 从技术上讲,Lasso模型优化了与 l1_ratio=1.0 l 1 _ r a t i o = 1.0 (没有L2惩罚)的弹性网相同的目标函数。

 在用户指导手册中查阅更多。

输入参数:

  • 参数名:alpha
  • 类型: float, optional *
  • 说明:与L1项相乘的常数。默认为1.0。 α=1 α = 1 等价于一个普通最小平方,由线性回归对象求解。由于数值原因,不建议 α α 设置为0 的lasso对象。如果这样设置了,应该使用线性回归对象。

  • 参数名:fit_intercept
  • 类型: boolean
  • 说明:是否计算该模型的截距。如果设置为False,将不会在计算中使用截距(比如,预处理数据已经中心化)

  • 参数名:normalize
  • 类型: boolean, optional, default False
  • 说明:当fit_intercept设置为False时,该参数将会被忽略。如果为True,则回归前,回归变量X将会进行归一化,减去均值,然后除以L2范数。如果想要标准化,请在评估器(normalize参数为False)调用fit方法前调用sklean.preprocessing.StandardScaler。

  • 参数名:precompute
  • 类型:True | False | array-like, default=False
  • 说明:是否使用预计算的Gram矩阵来加速计算。如果设置为’auto’让我们来决定。Gram矩阵也可以作为参数传递。对于稀疏输入,这个选项总是正确的,以保持稀疏性。

  • 参数名:copy_X
  • 类型:boolean, optional, default True
  • 说明:如果是True,x将被复制,否则,有可能被覆盖。

  • 参数名:max_iter
  • 类型: int, optional
  • 说明:最大迭代次数。

  • 参数名:tol
  • 类型:float, optional
  • 说明:优化器的公差。如果更新值小于tol,优化器代码检查双差距的最佳性,并继续直到它小于tol。

  • 参数名:warm_start

  • 类型: bool, optional

  • 说明:当设置为True时,重用之前调用的解决方案作为初始化,否则,只需要删除前面的解决方案


  • 参数名:positive
  • 类型:bool, optional
  • 说明:当设为真时,系数为正。

  • 参数名:random_state
  • 类型:int, RandomState instance or None, optional, default None
  • 说明:在对数据进行变换时使用伪随机数生成器的种子。如果int, random_state是随机数生成器使用的种子;如果随机状态实例,random_state是随机数发生器;如果没有,随机数生成器就是np.random使用的随机状态实例。当选择为 ’ random ‘时使用。

  • 参数名:selection
  • 类型:str, default ‘cyclic’
  • 说明:如果设置为“random”,则每一次迭代都会更新一个随机系数,而不是在默认情况下按顺序循环。这(设置为“random”)通常会导致更快的收敛速度,尤其是当tol大于1e-4时。

属性

  • 参数名:coef_
  • 类型:array, shape (n_features,) | (n_targets, n_features)
  • 说明:参数向量(损失函数表达式中的 w w <script type="math/tex" id="MathJax-Element-5">w</script>)

  • 参数名:sparse_coef_
  • 类型:scipy.sparse matrix, shape (n_features, 1) | (n_targets, n_features)
  • 说明:sparse_coef_ 是从coef_ 导出的只读属性

  • 参数名:intercept_
  • 类型:float | array, shape (n_targets,)
  • 说明:决策函数中的独立项,即截距

  • 参数名:n_iter_
  • 类型: int | array-like, shape (n_targets,)
  • 说明:由坐标下降求解器运行的,达到指定公差的迭代次数。

示例

from sklearn import linear_model
clf = linear_model.Lasso(alpha=0.1)
clf.fit([[0,0], [1, 1], [2, 2]], [0, 1, 2])
print(clf.coef_)
# [ 0.85  0.  ]
print(clf.intercept_)
# 0.15

参阅

 lars_path ,lasso_path, LassoLars, LassoCV ,LassoLarsCV

  sklearn.decomposition.sparse_encode

笔记

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

 为了避免不必要的内存复制,应该将fit方法的X参数直接作为一个Fortran连续numpy数组传递。

相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页