我正在使用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_)
我找到了{here} linear_model.Ridge
函数的不同选项,但是我在列表中找不到特定选项:如何设置learning rate
(或learning step
)更新功能?
按learning rate
,我的意思是:
w_ {t + 1} = w_t +(learning_rate)*(目标函数的偏导数)
答案 0 :(得分:1)
我将学习率称为步长。
您的代码未使用sag(随机平均渐变)求解器。求解器的默认参数设置为auto
,它将根据数据类型选择求解器。其他解算器的说明以及使用的是here。
使用垂度解算器:
regr = linear_model.Ridge (alpha = 0.5, solver = 'sag')
但是,对于此解算器,您不设置步长,因为求解器会根据您的数据和alpha计算步长。 Here是用于岭回归的垂度求解器的代码,它解释了如何计算步长。
步长设置为1 /(alpha_scaled + L + fit_intercept),其中L为 所有样本的最大平方和。
Line 401显示了sag_solver如何用于岭回归。