from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import normalize
import numpy as np
X=np.random.randint(1000,9000,(10,))
Y=np.random.randint(100,200,(10,))+100*X
reg = LinearRegression().fit(X.reshape(-1,1), Y)
print(reg.score(X.reshape(-1,1),Y))
print(reg.coef_)
0.9999999822251018
[100.00518473]
X1=normalize(X.reshape(-1,1),axis=0)
Y1=normalize(Y.reshape(-1,1),axis=0)
reg = LinearRegression().fit(X1.reshape(-1,1), Y1)
print(reg.score(X1.reshape(-1,1),Y1))
print(reg.coef_)
0.9999999822251019
[[0.99982554]]
Это обычная линейная регрессия с использованием ненормализованных и нормализованных данных.Там не будет никакой разницы в этих случаях.Только заголовок вашего вопроса включает «Градиентный спуск». Поэтому, если вы используете метод градиентного спуска, веса будут автоматически скорректированы.
Как обычно SGD: w = w-alpha * delta
Где альфа-скорость обучения, вес будет автоматически корректироваться с течением времени.Так что нет никакой разницы между этими двумя.Только нормализованный должен иметь дело с числами меньше 1, поэтому вычисления будут проще.