如何在scikit-learn的脊回归中设置学习率?



我使用的是scikit-learn的岭回归:

regr = linear_model.Ridge (alpha = 0.5)
# Train the model using the training sets
regr.fit(X_train, Y_train)
#bias:
print('bias: n', regr.intercept_)
# The coefficients
print('Coefficients: n', regr.coef_)

我在这里找到了linear_model.Ridge函数的不同选项,但有一个特定选项我在列表中没有找到:我如何设置更新函数的learning rate(或learning step)?

所谓learning rate,我的意思是:

w_{t+1}=w_t+(learning_rate)*(目标函数的偏导数)

我将学习率称为步长。

您的代码没有使用凹陷(随机平均梯度)求解器。解算器的默认参数设置为auto,它将根据数据类型选择解算器。此处介绍了其他解算器以及要使用的解算器。

使用凹陷解算器:

regr = linear_model.Ridge (alpha = 0.5, solver = 'sag')

但是,对于该解算器,您不设置步长,因为解算器根据数据和alpha计算步长。以下是用于山脊回归的凹陷求解器的代码,它们解释了如何计算步长。

步长设置为1/(alpha_scaled+L+fit_intercept),其中L为所有样本的最大平方和。

线401显示了sag_solver是如何用于山脊回归的。

相关内容

  • 没有找到相关文章

最新更新