我使用的是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是如何用于山脊回归的。