我正在尝试使用一些.csv值来重塑数组,这给我多行错误,并且我试图在StackOverflow上找到一些示例,但我无法弄清楚实际值是什么问题在这里!并且每次遇到此错误-每当我尝试使用np.zeros(),np.ones()和np.array()
我有包含EXAM-1,EXAM-2和入学决定的考试数据。我的x,y和theta大小不一样?
def sigmoid(z):
new_val = 1 / (1 + np.exp(-z))
return new_val
def h(theta,X):
return sigmoid(np.dot(X,theta))#------Value Error
def compute_logistic_cost(theta, X, y):
m= len(y)
J = (1/m) * np.sum((-y * np.log(h(theta,X))) - ((1 - y)*np.log(1 - h(theta,X))))#-----Value Error
eps = 1e-12
hypothesis[hypothesis < eps] = eps
eps = 1.0 - 1e-12
hypothesis[hypothesis > eps] = eps
return J
X = np.ones( (3, 1) )#------Value Error and If I put 100 instead of 1 it is working
X[1:,:] = X.T
theta = np.zeros( (3, 1) )
print(compute_logistic_cost(theta, X, y))#------Value Error
theta = np.array([[1.0],
[1.0],
[1.0]])
print(compute_logistic_cost(theta, X, y))
theta = np.array([[0.1],
[0.1],
[0.1]])
print(compute_logistic_cost(theta, X, y))
以下是错误消息,请帮助我理解。 ValueError:形状(3,100)和(3,1)不对齐:100(dim 1)!= 3(dim 0)
答案 0 :(得分:1)
这似乎是数学上的失败-由于矩阵不兼容,采用两个矩阵的点积将失败。有关显示此值错误的文档,请参见here。具体来说:
Raises:
ValueError
If the last dimension of a is not the same size as the second-to-last dimension of b.
矩阵数学很难。看起来您只需要较小矩阵的转置即可使点积成功执行。我还不足以告诉您脚本的其余部分是否正确,但这至少可以清除错误,让您继续。
希望有帮助。