theta[0],theta[1],theta[2],theta[3]更新时后面有用到theta,也就是说与theta[0],theta[1],theta[2],theta[3]都有关,如果theta[0]改变了,那接下来theta[1]中更新用到的theta与更新theta[0]时的theta是不一样的,所有需要用temp存一下
应该是计算有差别
因为需要一个线性相关的矩阵?
我自己查到了哈哈...?
https://blog.csdn.net/like4501/article/details/79753346
theta定义时用了reshape(4, 1),那最终的计算结果应该就是4*1的形式,不需要转置吧
dot(X, theta1)返回的是一个 200 * 1 矩阵,而 Y不是一个200 * 1的矩阵,所以需要对Y进行重新规划, Y = Y.values.reshape(200, 1)就可以了
最小二乘法数学公式
点乘是向量乘法方式就是中间写个点
老师举得函数例子就是Y=2x
老师上传到Github上去了。
地址如下github:https://github.com/cibon/linear_regression
这里的x[0]=1实际上是任意的,在代码运行的时候会有theta[0]*x[0],如此得到才是最终的截距。
梯度下降的公式
数据文件在哪里下载?
就是要执行1000次
有基础python的
个人认为讲师说得有一点问题,不瞒秩或者不正定的时候,存在多个解,并不是没有解,即解不唯一。此时选择哪一个解作为最后模型的参数呢?
一是通过既定的选择便好来决定;
二是采用梯度下降来近似。
我觉得性能问题倒不是主要原因,主要原因是因为存在多个解(至于为什么你可以查查矩阵相关的资料)。
水什么水?
是老师本地的一个csv格式的文件,相当于一个excel文件,也就是老师第一次输出的那些值
好好休息吧
矩阵相乘 A*B A是m*n B必须为n*k A的每一行乘以B的每一列(保证A的每行和B的每列元素个数相同) 线性代数了解一下
。。。
在'alpha=0.1 #学习速率' 之前 加上 temp=theta
IDE: Pycharm
Python Version:python2
损失函数的偏导就是一个导数,就是theta的斜率,调节学习率是为了斜率变化不大,这样多次迭代就能达到最低值
梯度下降就是对最小二乘法求偏导得到
你是reshape那里错了吧,应该变成 reshapr(4, 1)
不错哦,可以呢