线性回归
文章目录
原理
线性回归是一个很基础很简单的问题。如下所示
特征1 | 特征2 | 特征3 | … | 标签值 |
---|---|---|---|---|
x 1 0 x_1^0 x10 | x 2 0 x_2^0 x20 | x 3 0 x_3^0 x30 | … | y 0 y_0 y0 |
x 1 1 x_1^1 x11 | x 2 1 x_2^1 x21 | x 3 1 x_3^1 x31 | … | y 1 y_1 y1 |
… | … | … | … | … |
这是一组特征值序列以及他们的标签。
线性回归实际上是认为这些特征值同标签存在着线性相关的关系,关系可以描述为:
h
θ
(
X
)
=
θ
0
+
θ
1
x
1
+
.
.
.
h_{\theta}(X)=\theta_0+\theta_1x_1+...
hθ(X)=θ0+θ1x1+...
这里的
h
(
θ
)
h(\theta)
h(θ)就是
y
y
y的预测值;也就是说线性模型是指将这些特征
x
1
,
x
2
x_1,x_2
x1,x2等等代入到上面的一个线性函数里面得到对
y
y
y的预测,那么在线性回归这个任务里,剩下的就是如何求
θ
\theta
θ这些值了。如果预测的y是连续的,这称之为线性回归,如果y是离散的,称之为线性分类。
在线性回归中,现在最为主要的问题是如何求得这样的一组
θ
\theta
θ使得上述关系同真实的标签值
最为简单的办法是构建一个衡量模型效果的函数
L
(
θ
)
=
∑
i
=
1
n
(
h
θ
(
x
1
i
,
x
2
i
,
.
.
.
)
−
y
i
)
2
L(\theta)=\sum_{i=1}^{n}(h_{\theta}(x_1^i,x_2^i,...)-y_i)^2
L(θ)=i=1∑n(hθ(x1i,x2i,...)−yi)2
这个函数就将我们上面的问题转化为数学表达式,即找到一组
θ
\theta
θ使得在此条件下计算的预测标签同真实的标签差距最小,这个函数被称之为损失函数。
为了便于进行推演,上面的函数可以用矩阵的形式进行表达
L
=
1
2
(
X
θ
−
Y
)
T
(
X
θ
−
Y
)
L = \frac{1}{2}(X\theta-Y)^{T}(X\theta -Y)
L=21(Xθ−Y)T(Xθ−Y)
假设其他条件都不做限制,我们知道求取
L
m
i
n
L_{min}
Lmin的一般性方法是对
θ
\theta
θ求导,使导数为0,然后将导数函数变为方程,最终求出
θ
\theta
θ,对上面的矩阵表现形式进行求导并另导数为0,可得
θ
=
(
X
T
X
)
−
1
X
T
Y
\theta = (X^TX)^{-1}X^TY
θ=(XTX)−1XTY
一般而言,对于简单的函数,到这一步就可直接求出
θ
\theta
θ,实际应用中常常使用的是梯度下降法来求取获得适宜的
θ
\theta
θ,这里的内容可以参考链接,不做赘述。
机器学习最一般性的思路
从上面的步骤可以看出,机器学习的一般思路是:
- 构建特征值与标签之间的关系模型,这种关系模型中有大量的未知数需要求解,即定义模型
- 在上述关系模型的基础上,构建起求解这些未知数的模型,即定义模型的优化问题
- 求解优化问题,获得满足需求的这些未知数的解,从而代入关系模型,获得优化后的模型,即完成优化过程。
其他的机器学习方式,包括深度学习方式都是基于上述最一般的3个步骤进行建模进行处理,所不同的是这三个步骤的具体形制不同。