вычисления градиента весов дают разные результаты для одних и тех же параметров.
# defining the training set
X_train = np.array([[2104, 5, 1, 45], [1416, 3, 2, 40], [852, 2, 1, 35]])
y_train = np.array([460, 232, 178])
b_init = 785.1811367994083
w_init = np.array([ 0.39133535, 18.75376741, -53.36032453, -26.42131618])
Подход (1)
def dj_dw(w,x,b,y):
# number of examples
m = x.shape[0]
dj_dw = (1/m)*(np.dot(np.transpose(np.dot(x,w)+b-y),x))
return dj_dw
Подход (2)
def dj_dw_2(w, x, b, y):
m, n = x.shape
dj_dw = np.zeros(n)
for j in range(n):
for i in range(m):
dj_dw[j] += (1/m) * ((w[j]*x[j] + b - y) * (x[j]))
return dj_dw
и результаты соответственно
[-2.72623574e-03 -6.27197255e-06 -2.21745574e-06 -6.92403377e-05]
[ 1.59529824e+06 1.73748484e+03 5.72854200e+02 -2.33772157e+04]
Подробнее здесь: https://stackoverflow.com/questions/786 ... ions-givin
Почему эти простые вычисления градиента весов линейной регрессии дают разные результаты? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение