吴恩达机器学习笔记之用正规方程法直接求得theta的值

今天中午在那里试着退推了一下正规方程法,这个方法的道理也很简单就和高中学导数的时候一样,由于梯度下降法就是想办法下降到最低点,正规方程法就是直接令导数为0然后直接求θ,下面会展示我的推导过程以及代码实现结果以供参考

\frac{\partial J\left ( \theta \right )}{\partial \theta }\doteq x'*(x*\theta-y)=0先确定这个式子值为零然后对式子进行调整把θ提取出来下面就写出我的转化过程

x'*x*\theta =x'*y

\theta =(x'*x)^{-1}*x'*y=x^{-1}*x'^{-1}*x'*y=x^{-1}*y

(x'表示矩阵x的转置矩阵)

接下来就给兄弟姐妹们代码实现一下

load ex1data2.txt         %老样子先把咱数据取出来,并设定x和y
x=[ones(47,1),ex1data2(:,1:2)]
y=ex1data2(:,3)
theta=zeros(3,1)
theta=pinv(x)*y                 %pinv(x)就是求x的伪逆矩阵,不建议用inv,因为inv求逆矩阵但是x不一定存在逆矩阵
scatter3(x(:,2),x(:,3),y)       %把散点图画出来一会儿看一下拟合的怎么样
hold on
plot3(x(:,2),x(:,3),x*theta)    %下面就来看看运行结果
hold off

分别从三个面和整体看,效果还行哈

至于为什么拟合出来不是一条直线兄弟姐妹们可以参考一下我另一篇博客,那里面有对应的说明也有需要的数据

吴恩达机器学习实践笔记,第四章的多元梯度下降的实现-CSDN博客

哈哈哈到这就告一段落咯😁,这就是用正规方程法求得theta的过程了,可能还有不足之处希望大家可以帮忙指正一下呀😘

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值