numpy - 尝试计算成本函数时形状错误

问题描述 投票:0回答:1

我正在学习机器学习课程。我正在尝试将第一周的成本函数转换为python。

import numpy as np

def computeCost(X, y, theta):  
    inner = np.power(((X.dot(theta)) - y), 2)
    return np.sum(inner) / (2 * len(X))

它起初工作。然而,当我开始将其绘制到3D空间时,成本似乎不再起作用。

我跑这个print(computeCost(X, y, [theta0_vals[0], theta1_vals[0]]))

我得到“30109.7923098”但是,我应该得到“328.0929”

我试过这个:

inner = np.power(((X * (theta.T)) - y), 2)
return np.sum(inner) / (2 * len(X))

我收到尺寸错误。

我试过这个:

m = len(y)                  #number of training examples
#X = np.array([np.ones(m), X])      #I did this beofre calling the function
X = X.transpose()

theta = theta.transpose()
c = np.dot(X, theta)            #Matrix multiplication X*theta
c = c.transpose() - y
J = np.sum(c**2)/(2*m)          #Calculating cost
return J

我得到错误:ValueError:形状(2,97)和(1,2)未对齐:97(暗淡1)!= 1(暗0)

如果您需要更多信息,请与我们联系。

python numpy machine-learning
1个回答
0
投票

你必须使用重塑来修复矩阵尺寸。我的解决方案就是这样

theta = theta - (alpha / m) * np.dot(X.T.reshape(2, 97), np.dot(X, theta).flatten() - y).reshape(2, 1)
© www.soinside.com 2019 - 2024. All rights reserved.