1.线性回归-基础概念
回归分析是一种预测性的回归建模技术,它研究的是因变量(目标)和自变量(特征)之间的关系,用于预测各种连续变量的值,例如通过父亲的身高、母亲的身高、家庭收入等预测同学的身高,通过地段、面积等预测房屋价格。 线性回归基于简单的假设: 假设自变量和因变量之间的关系是线性的, 即因变量可以表示为自变量中元素的加权和.
我们把特征表示为向量 x = ( x 1 , x 2 , . . . , x m ) x = (x_1, x_2, ..., x_m) x=(x1,x2,...,xm),加权权重表示为向量 w = ( w 1 , w 2 , . . . , w m ) w=(w_1, w_2, ..., w_m) w=(w1,w2,...,wm),再添加一个偏置项 b b b,线性回归模型可以表示为:
y = w T x + b y = w^T x + b y=wTx+b
为了方便表示,我们把偏置项也移动到特征里,作为 x 0 x_0 x0,且其值总为1,也为偏置项增加一个权重 w 0 w_0 w0,那么线性回归可以表示为:
y = w T x y = w^T x y=wTx
这样就简洁多了,现在问题来了,如何求解影响权重 w w w呢,因为影响因素的值我们是已知的,只要知道权重,我们就可以通过模型得到一个预测结果。
1.1误差函数
一个很自然的想法是,我们首先定义个误差函数,去求解这个误差函数最小的时候所对应的 W W W就可以了。其中对于一个回归问题,我们通常采用MSE(Mean Square Error)作为误差函数:
M S E = 1 n ∑ 1 n ( y _ t r u e ( i ) − w T x ( i ) ) 2 MSE = \frac{1}{n} \sum_{1}^{n}(y\_true^{(i)} - w^Tx^{(i)})^2 MSE=n11∑n(y_true(i)−wTx(i))2
其中n为样本数量, y _ t r u e i y\_true^i y_truei为第 i i i个样本的真实值, w T x ( i ) w^Tx^{(i)} wTx(i)为线性回归模型的预测值。注意到,我们的误差函数MSE是一个关于 w w w可导的函数,因此我们可以通过梯度下降的方法,去求解使得误差函数最小时的 w w w。
1.2梯度下降
梯度是函数关于参数的徧导数,这里以我们的MSE函数为例, g r a d = ∂ M S E ∂ w grad = \frac{\partial{MSE}}{\partial{w}} grad=∂w∂MSE,表示函数的某处最小值到最大值的指向与最大值与最小值的差异程度。那么意味着梯度不仅告诉我们,函数变大的方向,也告诉了我们变大的程度。我们的函数(MSE)是越小越好,那么我们只要朝着梯度的反方向迈进就可以了。
在上图中,我们绘制了一个函数 f u n c ( x 1 , x 2 ) func(x_1, x_2) func(x1,x2),其中底部的两个坐标为 x 1 , x 2 x_1, x_2 x1,x2,纵轴坐标为函数对应的取值,底部的箭头是在不同 x 1 , x 2 x_1, x_2 x1,x2取值下的梯度。可以看到,梯度总是指向让函数取值变大的方向,梯度的箭头越长意味着变化越大。因此,我们只需要让 x 1 , x 2 x_1, x_2 x1,x2的取值,不断朝着梯度的反方向更新,就可以一步步走向函数的最低点。
利用求导公式可知,梯度等于:
∂
M
S
E
∂
w
i
=
−
1
/
n
∗
∑
j
=
1
j
=
n
2
∗
(
y
i
(
j
)
−
w
i
x
i
(
j
)
)
∗
x
i
(
j
)
\frac{\partial{MSE}}{\partial{w_i}} = - 1/n * \sum_{j=1}^{j=n} 2 * (y_{i}^{(j)}-w_ix_i^{(j)}) *x_i^{(j)}
∂wi∂MSE=−1/n∗j=1∑j=n2∗(yi(j)−wixi(j))∗xi(j)
那么,在线性回归中,我们可以沿着梯度的反方向进行更新:
w i = w i − l e a r n i n g _ r a t e ∗ ∂ M S E ∂ w i w_i = w_i - learning\_rate * \frac{\partial{MSE}}{\partial{w_i}} wi=wi−learning_rate∗∂wi∂MSE
下面我们就利用梯度下降,来解决一个房价预测的问题。
2线性回归
线性回归是对一个或多个自变量之间关系进行建模的方法。如果有两个特征,就是二元线性回归,要拟合的就是二维空间中的一个平面。如果有多个特征,那就是多元线性回归:
y
i
=
β
1
+
β
2
x
2
i
+
β
3
x
3
i
+
⋯
+
β
k
x
k
i
+
ε
i
y_i= \beta_1+\beta_2x_{2i}+\beta_3x_{3i}+\cdots+\beta_kx_{ki}+\varepsilon_i
yi=β1+β2x2i+β3x3i+⋯+βkxki+εi
注意:线性回归,前提是假设y和x呈线性关系,如果两者不是线性关系,就要选用其他的模型。
具体代码参考:kaggle房价预测