线性回归,用高中课本知识来说就是能够用一个直线较为精确地描述数据之间的关系. 这样当出现新的数据的时候,就能够预测出一个简单的值。(虽然线性模型在实际项目中几乎不会单独出现,但它在整个机器学习中举足轻重.它是很多复杂模型的基础,譬如逻辑回归,神经网络,支持向量机等)。
线性模型的基本形式是:给定由d个特征描述的示例? = (x1; x2; … ; xd),其中,xi是?在第i个特征上的取值,线性模型试图学得一个通过特征的线性组合来进行预测的函数,即
f
(
x
)
=
w
1
∗
x
1
+
w
2
∗
x
2
+
.
.
.
.
.
.
+
a
n
∗
x
n
+
b
f(x) = w_{1}*x_{1} + w_{2}*x_{2} +......+ a_{n}*x_{n}+b
f(x)=w1∗x1+w2∗x2+......+an∗xn+b
令
b
=
w
0
∗
x
0
b=w_{0}*x_{0}
b=w0∗x0 其中
x
0
=
1
x_{0}=1
x0=1因此,f(x)可以表达成如下的形式:
f
(
x
)
=
W
T
∗
X
f(x)=W^T*X
f(x)=WT∗X
对于上述模型的参数W该如何求解呢?首先我们先定义出其损失函数即目标函数如下:
m
i
n
(
J
(
w
0
,
w
1
,
.
.
.
.
.
,
w
n
)
=
1
2
m
∑
i
=
1
m
(
f
w
(
x
(
i
)
)
−
y
(
i
)
)
2
min(J(w_{0},w_{1},.....,w_{n})=\frac{1}{2m}\sum_{i=1}^{m}(f_{w}(x^{(i)})-y^{(i)})^2
min(J(w0,w1,.....,wn)=2m1i=1∑m(fw(x(i))−y(i))2
要使得目标函数最小,有两种求解方式:(1)最小二乘法 (2)梯度下降
(1)最小二乘与线性回归:
令损失函数对参数W求偏导,并令其等于0,求得:
W
=
(
X
T
X
)
−
1
X
T
Y
W=(X^TX)^{-1}X^TY
W=(XTX)−1XTY
(2) 梯度下降:
step1:初始化参数W
step2:
repeat:
w
j
:
=
w
i
−
α
1
m
∑
(
f
w
(
x
(
i
)
)
−
y
(
i
)
)
x
j
(
i
)
w_{j}: = w_{i} -\alpha\frac{1}{m}\sum(f_{w}(x^{(i)})-y^{(i)})x_{j}^{(i)}
wj:=wi−αm1∑(fw(x(i))−y(i))xj(i)
关于最小二乘,梯度下降的具体推导过程请看本博客中的相关章节。