为什么ridge和amp;需要random_state?套索回归分类器?

时间:2018-02-21 15:43:32

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

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 )

2 个答案:

答案 0 :(得分:2)

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

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

  

如果设置为“random”,则每次迭代都会更新随机系数,而不是默认情况下按顺序循环使用要素。这(设置为“随机”)通常会导致明显更快的收敛,尤其是当tol高于1e-4时。

对于岭回归,如果您希望使用随机梯度下降拟合模型,则需要使用子采样。为此,您需要在初始化模型solver = 'sag'solver = 'saga'时说明。 random_state处的documentation读取:

  

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

答案 1 :(得分:1)

lasso的情况下,可以使用RNG(取决于其他选择的选项)随机选择要执行更新的功能:

  

伪随机数生成器的种子,用于选择要更新的随机要素。如果是int,则random_state是随机数生成器使用的种子;如果是RandomState实例,则random_state是随机数生成器;如果为None,则随机数生成器是np.random使用的RandomState实例。选择=='随机'时使用。

ridge的情况下,可以使用RNG(取决于其他选择的选项)来改组数据:

  

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