安德鲁·吴';s ML课程(python)-应用多变量梯度下降,混淆直觉

安德鲁·吴';s ML课程(python)-应用多变量梯度下降,混淆直觉,python,machine-learning,Python,Machine Learning,我正在尝试创建多变量梯度下降方程。 方程式图片: 最后的解决办法是: theta = theta - alpha *((np.dot((np.dot(X,theta)-y), X))*(1/m)). 我犯了一个错误,添加了一个额外的“np.sum”: 我不明白为什么解决方案不需要np.sum,或者什么时候求和?np.dot包括乘法元素的求和 dot(a, b)[i,j,k,m] = sum(a[i,j,:] * b[k,:,m]) 检查np。点包括相乘元素的总和 dot(a, b)[i,

我正在尝试创建多变量梯度下降方程。 方程式图片:

最后的解决办法是:

theta = theta - alpha *((np.dot((np.dot(X,theta)-y), X))*(1/m)). 
我犯了一个错误,添加了一个额外的“np.sum”:


我不明白为什么解决方案不需要np.sum,或者什么时候求和?

np.dot
包括乘法元素的求和

dot(a, b)[i,j,k,m] = sum(a[i,j,:] * b[k,:,m])

检查

np。点
包括相乘元素的总和

dot(a, b)[i,j,k,m] = sum(a[i,j,:] * b[k,:,m])
检查

假设X矩阵形状是(100,3),那么θ形状是(3,1),y是(100,1)。 你写的:

theta = theta - alpha *((np.dot((np.dot(X,theta)-y), X))*(1/m)). 
此实现在数学上不正确,因为: 您在第节中有错误: ((np.dot((np.dot(X,θ)-y,X))

因为,(np.dot(X,θ)-y)的形状是100*1,X的形状是100*3,那么就矩阵的性质而言,我们不能将这两个矩阵相乘,因为第一个矩阵列必须等于第二个矩阵行。 请检查并确认。 另外,因为您以矩阵方式查看数据集,所以不需要np.sum

h_x= np.dot(X, theta)
error= h_x - y
theta= theta - (learning_rate * (1/m) * np.dot(X.T, error))
假设X矩阵的形状是(100,3),那么θ形状是(3,1),y是(100,1)。 你写的:

theta = theta - alpha *((np.dot((np.dot(X,theta)-y), X))*(1/m)). 
此实现在数学上不正确,因为: 您在第节中有错误: ((np.dot((np.dot(X,θ)-y,X))

因为,(np.dot(X,θ)-y)的形状是100*1,X的形状是100*3,那么就矩阵的性质而言,我们不能将这两个矩阵相乘,因为第一个矩阵列必须等于第二个矩阵行。 请检查并确认。 另外,因为您以矩阵方式查看数据集,所以不需要np.sum

h_x= np.dot(X, theta)
error= h_x - y
theta= theta - (learning_rate * (1/m) * np.dot(X.T, error))

我明白了。非常感谢!我明白了。非常感谢!非常有洞察力!谢谢你的链接非常有洞察力!谢谢你的链接