基于MATLAB的简单线性回归详解 | 您所在的位置:网站首页 › matlab画三维曲线图两个图 › 基于MATLAB的简单线性回归详解 |
![]() 概要
在机器学习领域中大多数任务通常都与预测(prediction)有关。当我们想预测一个数值时,就会涉及到回归问题。常见的例子包括:预测价格(房屋、股票等)、预测住院时间(针对住院病人等)、 预测需求(零售销量等)。但不是所有的预测都是回归问题。 线性回归是一种广泛使用的统计技术,用于理解和建模变量之间的关系。 线性关系不仅仅只能存在 2 个变量(二维平面)。3 个变量时(三维空间),线性关系就是一个平面,4 个变量时(四维空间),线性关系就是一个体,以此类推…
1. 导入数据 首先需要导入要分析的数据。该数据应包含两个变量:自变量(通常表示为“x”)和因变量(通常表示为“y”)。 这里我们使用Matlab自带的数据集“carsmall” load carsmall;x = Weight; y = MPG;导入后的数据集由以下部分组成: 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.73812R^2越接近1说明误差越小,拟合程度更高。
—— end ——
欢迎点赞收藏转发,感谢🙏
|
CopyRight 2018-2019 实验室设备网 版权所有 |