基于MATLAB的简单线性回归详解

f68c08c06c5f460494919ad1eb139c88.jpg


 

概要

 

在机器学习领域中大多数任务通常都与预测(prediction)有关。当我们想预测一个数值时,就会涉及到回归问题。常见的例子包括:预测价格(房屋、股票等)、预测住院时间(针对住院病人等)、 预测需求(零售销量等)。但不是所有的预测都是回归问题。

线性回归是一种广泛使用的统计技术,用于理解和建模变量之间的关系。

线性关系不仅仅只能存在 2 个变量(二维平面)。3 个变量时(三维空间),线性关系就是一个平面,4 个变量时(四维空间),线性关系就是一个体,以此类推…

091d0b6d25c64e98b34af6fee9bb8bfd.png

 

c74ba6672d554a3a89c665baa01b1107.png

 

 

1. 导入数据

首先需要导入要分析的数据。该数据应包含两个变量:自变量(通常表示为“x”)和因变量(通常表示为“y”)。

这里我们使用Matlab自带的数据集“carsmall”

load carsmall;x = Weight;  y = MPG;   

导入后的数据集由以下部分组成:

2c2440f395b24bf7ae5e7b0a316b3c16.png

 

2. 数据预处理

在数据集中存在一些无效数据NaN。在执行线性回归之前,我们将使用 isnan 函数来识别和排除任何 NaN 值。

valid_indices = ~isnan(x) & ~isnan(y);x = x(valid_indices);y = y(valid_indices);

 

3. 可视化数据

在执行线性回归之前,可视化数据通常有助于理解变量之间的关系。

这里使用 MATLAB 的绘图函数来创建数据点的散点图。​​​​​​​

scatter(x, y);xlabel('Independent Variable (x)');ylabel('Dependent Variable (y)');title('Scatter Plot of Data');

 

4. 进行线性回归

这里使用内置的 polyfit 函数执行线性回归操作。

该函数将指定次数的多项式曲线拟合到数据并返回多项式的系数。我们这里要拟合一条直线,所以n取1 。​​​​​​​

coefficients = polyfit(x, y, 1);slope = coefficients(1);intercept = coefficients(2);

polyfit 函数按降序返回多项式的系数。在简单线性回归的情况下,第一个系数表示直线的斜率,第二个系数表示 y 轴截距。

 

5. 绘制回归线

现在有了斜率和截距值,可以在散点图上绘制回归线,以可视化它与数据的拟合程度。​​​​​​​

it = slope * x + intercept;hold on;plot(x, y_fit, 'r');legend('Data', 'Regression Line');

 

6. 评估拟合优度(Goodness of Fit)

要评估回归线的拟合程度,可以计算决定系数(R 平方)值。

MATLAB提供了 corrcoef 函数来计算两个变量之间的相关系数,对其求平方即可得到R平方值。​​​​​​​

correlation_matrix = corrcoef(x, y);correlation = correlation_matrix(1, 2);r_squared = correlation^2;disp(['R-squared: ', num2str(r_squared)]);

运行结果为:

R-squared: 0.73812

R^2越接近1说明误差越小,拟合程度更高。

 

—— end ——

 

欢迎点赞收藏转发,感谢🙏

 

 

 

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rocky006

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值