Я новичок в python, и когда я хочу выполнить этот код, сталкиваюсь с этой ошибкой. кто-нибудь может мне помочь? для вычисления градиентного спуска с выборками x [100,4] и y
#Task 2
m,n = np.shape(x)
iteration = 100
k = 20
etha = 0.1
landa = 1
theta = np.zeros(n)
def train_classifier(theta, iteration, etha , k):
for i in range(0, iteration):
etha = etha / np.sqrt(iteration)
theta = theta - etha * (1 / k) * grad(theta, x, y)
return theta
def grad(theta, x, y):
xTranse = x.transpose()
cost = np.sum(logistic(x, theta) - y)
gradiant = np.dot(cost, xTranse)
return gradiant
def logistic(x, theta):
pri = np.dot(x, theta)
hypo = 1 / (1 + np.exp(pri))
return hypo
j = train_classifier(theta, iteration, etha , k)
print(j)
<ipython-input-3-f3d8c56159d6> in train_classifier(theta, iteration, etha, k)
38 x1 = x[i:,]
39 etha = etha / np.sqrt(iteration)
---> 40 theta = theta - etha * (1 / k) * grad(theta, x, y)
41 return theta
42 def grad(theta, x, y):
ValueError: operands could not be broadcast together with shapes (4,) (4,100)