【问题标题】:Why is random_state required for ridge & lasso regression classifiers? [closed]为什么岭回归和套索回归分类器需要 random_state? [关闭]
【发布时间】:2018-08-01 06:30:36
【问题描述】:

class sklearn.linear_model.Lasso(alpha=1.0, fit_intercept=True, normalize=False, precompute=False, copy_X=True, max_iter=1000, tol=0.0001, warm_start=False, positive=False, random_state =无,选择='循环')

class sklearn.linear_model.Ridge(alpha=1.0, fit_intercept=True, normalize=False, copy_X=True, max_iter=None, tol=0.001, solver='auto', random_state=None )

【问题讨论】:

  • 格式化您的代码

标签: python-3.x machine-learning scikit-learn linear-regression


【解决方案1】:

这两种方法都涉及在模型的某些阶段生成随机数。

对于 Lasso,这是由于每个变量的回归系数的拟合。这可以以“循环”方式完成,或者在每次迭代时随机选择变量。属性 selection = 'cyclic' 用于第一个,selection = 'random 用于后者。后者涉及随机数。正如documentation 所说:

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

对于 Ridge 回归,如果您想使用随机梯度下降来拟合模型,则需要使用二次抽样。为此,您需要在模型初始化期间声明 solver = 'sag'solver = 'saga'documentationrandom_state 上写着:

混洗数据时使用的伪随机数生成器的种子。如果是 int,则 random_state 是随机数生成器使用的种子;如果是 RandomState 实例,则 random_state 是随机数生成器;如果没有,随机数生成器是 np.random 使用的 RandomState 实例。在求解器 == 'sag' 时使用。

【讨论】:

    【解决方案2】:

    对于lasso,可以使用RNG(取决于其他选择的选项)随机选择要执行更新的特征:

    选择要更新的随机特征的伪随机数生成器的种子。如果是 int,则 random_state 是随机数生成器使用的种子;如果是 RandomState 实例,则 random_state 是随机数生成器;如果没有,随机数生成器是 np.random 使用的 RandomState 实例。当 selection == ‘random’ 时使用。

    对于ridge,可以使用RNG(取决于其他选择的选项)对数据进行混洗:

    混洗数据时使用的伪随机数生成器的种子。如果是 int,则 random_state 是随机数生成器使用的种子;如果是 RandomState 实例,则 random_state 是随机数生成器;如果没有,随机数生成器是 np.random 使用的 RandomState 实例。在求解器 == 'sag' 时使用。

    【讨论】:

      猜你喜欢
      • 2019-10-11
      • 2020-11-04
      • 2019-09-17
      • 2018-12-16
      • 2019-07-13
      • 2015-08-10
      • 2016-10-21
      • 2012-10-07
      • 2012-08-22
      相关资源
      最近更新 更多