Форум сайта python.su
0
Добрый день, подскажите
Ну никак получается привести к необходимому виду
def sigmoid(X): den = 1.0 + e ** (-1.0 * X) d = 1.0 / den return d def compute_grad(theta,x,y,lambd): """ Calculate the gradient of J: grad = 1 / m * (X' * (sigmoid(X * theta) - y)) grad(2 : end) += lambda / m * theta(2 : end) """ m = x.shape[0] x_bias = hstack((ones((m, 1)), x)) theta = atleast_2d(theta).transpose() grad = 1.0 / m * (dot(x_bias.transpose(), sigmoid(dot(x_bias, theta)) - y)) grad[1 : :] += lambd / m * theta[1 : :] return grad.ravel() data = loadtxt('ex2data2.txt', delimiter=',') x = data[:, 0:2] y = data[:, 2] lambd = 0.1 m = x.shape[0] initial_theta = zeros(shape=(x.shape[1], 1)) compute_grad(initial_theta,x,y,lambd)
x_bias = hstack((ones((m, 1)), x))
Прикреплённый файлы:
ex2data2.txt (2,2 KБ)
Офлайн
49
А где начало программы, где Traceback? Почему не PyBrain?
Офлайн
49
Никаких ошибок не наблюдаю. Проверьте файл с данными.
>>> import numpy >>> data = numpy.loadtxt('ex2data2.txt', delimiter=',') >>> x = data[:, 0: 2] >>> y = data[:, 2] >>> lambd = 0.1 >>> m = x.shape[0] >>> initial_theta = numpy.zeros(shape=(x.shape[1], 1)) >>> x_bias = numpy.hstack((numpy.ones((m, 1)), x)) >>> theta = numpy.atleast_2d(initial_theta).transpose()
Отредактировано Alen (Сен. 12, 2014 20:17:33)
Офлайн
0
AlenФайл с данными во вложении к первому сообщению там всё верно
Никаких ошибок не наблюдаю. Проверьте файл с данными.
Traceback (most recent call last):
File “H:\!ai\log2.py”, line 24, in <module>
compute_grad(initial_theta,x,y,lambd)
File “H:\!ai\log2.py”, line 15, in compute_grad
grad = 1.0 / m * (dot(x_bias.transpose(), sigmoid(dot(x_bias, theta)) - y))
ValueError: matrices are not aligned
Офлайн
49
Операция умножения двух матриц выполнима только в том случае, если число столбцов в первом сомножителе равно числу строк во втором. У Вас же умножаются матрицы 118х3 на 1х2:
>>> x_bias.shape (118, 3) >>> theta.shape (1, 2) >>> dot(x_bias, theta) Traceback (most recent call last): File "<input>", line 1, in <module> ValueError: matrices are not aligned
Офлайн