线性回归
回归问题多用于预测一个数值,如明天的气温;房屋的价格;产品的销量等。线性回归是一种建立因变量y和自变量x(可以为非单一变量)之间关系的线性方法。
根据自变量x的个数,线性回归可分为单变量线性回归和多变量线性回归。下面先让我们看看最简单的单变量线性回归。
单变量线性回归
一元线性回归可以描述为如下表达式:
例如我们可以根据房屋的使用面积来预测房价。
多变量线性回归
但是,房价的影响因素不仅仅只有使用面积,可能还包括厅室数量,楼层高度等,因此,在预测房屋价格y时,自变量x就至少包含面积x1、厅室数量x2、楼层高度x3。此时,房屋价格可以表示为:
由此,我们可以得到线性回归的一般表达式:
有数据集
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
m
,
y
m
)
}
\{(x_1,y_1),(x_2,y_2),...,(x_m,y_m)\}
{(x1,y1),(x2,y2),...,(xm,ym)},其中,
x
i
=
(
x
i
1
;
x
i
2
;
x
i
3
;
.
.
.
;
x
i
n
)
,
y
i
∈
R
x_i = (x_{i1};x_{i2};x_{i3};...;x_{in}),y_i\in R
xi=(xi1;xi2;xi3;...;xin),yi∈R
其中m表示变量的数量,n表示每个变量的维度。
可以用以下函数来描述y和x之间的关系:
Ps:因为考虑了截距,所以自变量x表示为
求解
从上面的表达式可以看出,如果想要作出准确的预测结果,就需要得到合适的
θ
\theta
θ值,使
f
(
x
)
f\left ( x \right )
f(x)尽可能接近给定的值,即监督学习中的标签。
因此回归问题转化为了求解合适
θ
\theta
θ的问题。
目标函数
均方误差是回归问题中常用的性能度量,因此目标函数可以表示为:
J
(
θ
)
=
1
2
m
∑
i
=
1
m
(
y
(
i
)
−
y
^
(
i
)
)
2
J\left ( \theta \right )=\frac{1}{2m}\sum _{i=1}^{m}(y^{(i)}-\hat{y}^{(i)})^{2}
J(θ)=2m1∑i=1m(y(i)−y^(i))2
优化方法
- 梯度下降法
从上述式子可以看到,该梯度下降方法在更新 θ \theta θ时,考虑了所有的样本,称为批量梯度下降(Batch Gradient Descent,BGD),当样本数极大时,每更新一次参数 θ \theta θ都要对全部训练数据来一次求和,故运算量极大。
因此在处理具有海量样本数据的问题时,学者们提出了一种随机梯度下降(Stochastic Gradient Descent,SGD)的方法.
随机梯度下降算法在每一次计算之后便更新参数 θ \theta θ,而不需要首先将所有的训练集求和,在梯度下降算法还没有完成一次迭代时,随机梯度下降算法便已经走出了很远。但是这样的算法存在的问题是,不是每一步都是朝着”正确”的方向迈出的。因此算法虽然会逐渐走向全局最小值的位置,但是可能无法站到那个最小值的那一点,而是在最小值点附近徘徊。
此外还有考虑少量样本的Mini-Batch Gradient Descent,MBGD方法 - 最小二乘法矩阵求解
使用向量的形式求解 θ \theta θ,
- 其他方法
如拟牛顿法,牛顿法等
评价指标
- 均方误差(MSE)
1 m ∑ i = 1 m ( y ( i ) ) − y ^ ( i ) ) 2 \frac{1}{m}\sum _{i=1}^{m}(y^{(i))}-\hat{y}^{(i)})^{2} m1∑i=1m(y(i))−y^(i))2
- 均方根误差(MSE)
1 m ∑ i = 1 m ( y ( i ) ) − y ^ ( i ) ) 2 \sqrt{\frac{1}{m}\sum _{i=1}^{m}(y^{(i))}-\hat{y}^{(i)})^{2}} m1∑i=1m(y(i))−y^(i))2
3.平均绝对误差(MAE)
1
m
∑
i
=
1
m
∣
(
y
(
i
)
)
−
y
^
(
i
)
)
∣
\frac{1}{m}\sum _{i=1}^{m}\left |(y^{(i))}-\hat{y}^{(i)}) \right |
m1∑i=1m∣∣(y(i))−y^(i))∣∣
但是以上评价指标都无法消除量纲不一致带来的误差值特别大的问题,反而最常用的指标是
R
2
R^{2}
R2,可以避免量纲不一致的问题。
我们可以把 R 2 R^2 R2理解为,回归模型可以成功解释的数据方差部分在数据固有方差中所占的比例, R 2 R^2 R2越接近1,表示可解释力度越大,模型拟合的效果越好。