2015-12-07 11 views
0

Я использую 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_) 

я нашел (here) различные варианты для функции linear_model.Ridge, но есть конкретный вариант, который я не нашел в списке: Как может Я установил learning rate (или learning step) функции обновления?

По learning rate, я имею в виду:

w_ {T + 1} = w_t + (learning_rate) * (частная производная целевой функции)

ответ

1

Я имею в виду скорость обучения, как размер шага.

Ваш код не использует решатель sag (стохастический средний градиент). Параметр по умолчанию для решателя установлен на auto, который выберет решатель в зависимости от типа данных. Описание других решателей и их использование - here.

Чтобы использовать прогиб решатель:

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

Однако для этого решателя вы не установите размер шага, так как решатель вычисляет размер шага на основе ваших данных и альфа. Here - это код для sag solver, используемый для регрессии хребта, где они объясняют, как вычисляется размер шага.

Размер шага установлен на 1/(alpha_scaled + L + fit_intercept) где Ь максимальная сумма квадратов для более чем во всех образцах.

Line 401 показывает, как sag_solver используется для коньковой регрессии.

+0

Большое спасибо! Но тогда, кажется, он использует размер шага только для SAG, а не для «обычного» (то есть пакетного) Gradient Descent. Есть ли причина, почему? – Cheshie

Смежные вопросы