线性回归最小二乘法

 怎么得到的最小二乘法?

方程如下:y为真实值,θx为预测值,ε为误差值。θ为要计算的参数,ε为误差,θ、ε是未知量

我们希望误差ε越小越好,而预测值θx应该和真实值y越接近越好

每个样本都有误差,误差应服从均值为0方差为θ的平方的正态(高斯)分布

正态分布的表达式如下

为了求得θ,将第一个方程y-θx=ε带入正态分布表达式得到:

这样就得到似然函数(似然函数是指在给定的参数值比如θ的条件下,观测数据x出现的概率,因此让似然函数越大越好)

因为这是连乘,不好计算,因此对它取对数,得到对数似然,利用log(ab)=log(a)+log(b)转为加法

取对数后虽然会改变极值L(θ)的值,但极值点θ是不会变的,我们只要求得极值点θ就行,因此可以进行取对数操作,这样我们就能化简得到(连乘化为求和)

不含θ的都是常数项,为了让它越大越好,就让后面这一项越小越好,如下我们就得到了最小二乘法(损失函数),可以把二分之一也去掉。最小是令其值最小,二乘就是平方的意思

怎么求解最小二乘法?

方法一(常规方法):(真实值-预测值)的平方求和,平方可以防止正负误差值相互抵消,让其最小。真实值和预测值谁在前谁在后无所谓,反正平方完都一样

预测值的直线方程如下

那么就可以写成如下形式,为了让它最小,就令其导数等于0。因为有两个未知数a、b,所以分别对a、b求偏导。

具体的,假如我们有两个数据点为(1,1)和(2,2),那么就得到如下式子,求出来一个多项式后分别对a、b求偏导令其等于0,得到两个方程两个未知数,就可以求得a和b的值。

如果有更多数据点,这个方法计算量就会变得很大

方法二(矩阵方法):将数据点写成矩阵形式如下

因此误差可以表示成Y-Xβ,但我们需要的是误差的平方,而这个矩阵并不是方阵,不能直接进行平方操作

为了得到,我们将e的转置乘上e:,这样就得到了求和之后的

X、Y都已知了,对β矩阵求导数令其等于0(矩阵求导)

最后化简可以得到:

(不能用去左乘,因为只有方阵才会有逆矩阵)

但是我们可以保证为方阵,因此用它去左乘,得到:

方程右边都是已知,这样就把β求出来了,即求出了a和b的值。

补充

机器学习重在学习二字,如果这样只根据X和Y往结论里代入就能够求出答案,那么只体现了机器,并没有体现学习。并且这里还要保证方阵可逆,而实际情况并不是所有方阵都可逆,因此我们要去找其他方法(梯度下降法)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值