我对数据科学的python编程有点新兴。 X是矩阵97x2元素,θ是3x1元素向量,y是97X2向量 m = y = 97的长度 以下是python中的算法,但我没有得到错误的位置。
J= (1/2*m)*sum(np.square(np.dot(X,theta)-y)))
我必须进行元素乘法并将它们相加以获得一个标量值J(成本函数)。但是我得到一个包含0
的97个元素的数组答案 0 :(得分:0)
首先,这不会在提供维度的情况下运行。 np.dot(A, B)
要求A和B在一个维度上匹配,而你的是97x2和3x1,因此没有意义。您尝试实现的算法可能需要将1s的列连接到X(因为它看起来像常规线性回归)。你使用的第二个分区是python 2中的整数除法,当你执行像1/2 *
之类的东西时它会出现0,它实际上等同于0 *
。只需将变量转换为浮点数,即可
J = (0.5*m)*sum(np.square(np.dot(X, theta) - y)))