机器学习算法(回归算法)—线性回归(2)

本文介绍了如何使用广义逆解决线性回归问题。首先阐述了广义逆的基本概念,特别是Moore-Penrose广义逆及其求解方法。然后详细解释了如何通过奇异值分解来计算广义逆,并应用到线性回归模型中求解回归系数。最后通过实验验证了方法的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、基本线性回归模型的抽象

    在基本的线性回归中(可见机器学习算法(回归算法)-线性回归(1)),对于一个线性回归为题,我们得到一个线性方程组:

在上一篇中我们是构建平方误差函数使得误差函数取得最小值得方法求得回归系数。换种思考,对于这样的一个线性方程组的求解我们有其他的方式,这里我们提到了广义逆。

二、广义逆

    1、广义逆的概念

        广义逆的形式很多,并且广义逆有很好的性质。在众多的广义逆中,有一种称为Moore-Penrose广义逆,其要求比较严格,这里就不再具体说明。对于一个方阵,如果这个矩阵的行列式,则矩阵的逆存在,即对于满秩矩阵,其逆矩阵存在。如果矩阵不是方阵,此时并没有逆的概念,但是我们可以求矩阵的Moore-Penrose广义逆

    2、Moore-Penrose广义逆的性质

        定理:Moore-Penrose广义逆存在而且唯一。

    3、Moore-Penrose广义逆的求法

        可以通过奇异值分解SVD的方式求解广义逆,具体如下:

  • 奇异值分解:,其中为对角阵
  • 计算广义逆

这里,假设,则

三、线性回归的求解

    对于上面的线性方程组,利用Moore-Penrose广义逆,我们可以求得回归系数为:

四、实验

    我们同样采用(机器学习算法(回归算法)-线性回归(1))中的实验数据,我们得到以下的实验结果:


原始数据


最佳拟合直线

MATLAB实验源码

主函数

  1. %% load Data  
  2. A = load('ex0.txt');  
  3.   
  4. X = A(:,1:2);%读取x  
  5. Y = A(:,3);  
  6.   
  7. ws = pinvRegres(X,Y);  
  8.   
  9. %% plot the regression function  
  10. x = 0:1;  
  11. y = ws(1,:)+ws(2,:)*x;  
  12. hold on  
  13. xlabel x;  
  14. ylabel y;  
  15. plot(X(:,2),Y(:,1),'.');  
  16. plot(x,y);  
  17. hold off  

求线性回归系数

  1. function [ ws ] = pinvRegres( X, Y )  
  2.     [m,n] = size(X);  
  3.     ws = zeros(m,1);  
  4.     ws = pinv(X)*Y;  
  5. end  


实验数据下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值