为什么 sklearn 中的岭回归和套索回归需要 random_state? [已关闭]

问题描述 投票:0回答:2

在 scikit-learn 中,Lasso 和 Ridge 回归是两种具有

random_state
属性的回归方法。为什么这两个方法需要这个属性?

来自文档:

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=None, selection=’cyclic’)


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
2个回答
4
投票

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

对于Lasso,这是由于每个变量的回归系数的拟合所致。这可以以“循环”方式完成,或者在每次迭代时随机选择变量。第一个属性为

selection = 'cyclic'
,后者为
selection = 'random
。后者涉及随机数。正如文档所述:

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

对于岭回归,如果您想使用随机梯度下降(利用子采样)来拟合模型,则需要它。为此,您需要在模型初始化期间声明

solver = 'sag'
solver = 'saga'
。位于 random_state
文档
内容如下:

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


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’ 时使用。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.