机器学习——线性回归
一、什么是线性回归
线性回归是一种用来建立自变量和因变量之间线性关系的统计分析方法,也是机器学习中最常见、最容易理解的一个算法。
在中学数学中有提及到一元线性回归方程,即
f
(
x
)
=
A
x
+
B
y
+
C
f(x)=Ax+By+C
f(x)=Ax+By+C
当确认式子中的常量
A
,
B
,
C
A,B,C
A,B,C后,可得到一个二元一次方程,将函数画在图中可以得到一条直线。
二、一元线性回归方程
在一元线性回归方程中,实际散点会在拟合直线的周围。
在这之间就会存在一个误差
β
\beta
β,则此公式可以写为
f
(
x
)
=
A
x
+
B
y
+
C
+
β
f(x)=Ax+By+C+\beta
f(x)=Ax+By+C+β
三、损失函数
在一组散乱的数据里,我们可以作出多条线作为回归方程,如何判定哪条线更适合就要使用残差平方和(SSE)来判定。
在实际值 y y y和拟合值 y ^ \hat y y^中存在一个差值 e e e即为残差,将 e e e进行平方处理去掉负号,然后对全部的 e e e值进行累加,得到残差平方和。当残差平方和的值越小,说明拟合效果越好。
在一元回归方程中,其损失函数为:
f
(
x
)
=
∑
i
=
1
n
e
i
=
∑
i
=
1
n
(
y
i
−
y
^
i
)
2
\begin{aligned} f(x)&=\sum^{n}_{i=1}e_i\\ &=\sum^{n}_{i=1}(y_i-\hat y_i)^2 \end{aligned}
f(x)=i=1∑nei=i=1∑n(yi−y^i)2
四、代码实现
% 输入自变量 x 和因变量 y
x = [1, 2, 3, 4, 5];
y = [2, 4, 5, 6, 8];
% 拟合线性回归方程
coefficients = polyfit(x, y, 1);
% 提取系数
m = coefficients(1);
c = coefficients(2);
% 打印结果
fprintf('y = %.2fx + %.2f\n', m, c);
% 绘制原始数据点
scatter(x, y, 'filled');
hold on;
% 计算拟合的 y 值
y_fit = polyval(coefficients, x);
% 绘制拟合的线性回归方程
plot(x, y_fit, 'r');
% 设置图标和标题
xlabel('x');
ylabel('y');
title('一元线性回归');
% 图例
legend('原始数据', '拟合线');
% 恢复绘图设置
hold off;
五、运用说明
若是由两个因素影响的,使用一元线性回归,三个因素影响则用二元线性回归,在平面上拟合。其他更多的因素采用多元线性回归拟合。
注意:在使用线性回归之前,先要确认其因变量和自变量是否为线性关系。