本文章由公号【开发小鸽】发布!欢迎关注!!!
老规矩–妹妹镇楼:
一. 线性回归
举例:以年龄和工资为参数,预测可以从银行贷款的金额。假设θ1是年龄的参数,θ2是工资的参数。通过提供的年龄和工资参数,对贷款额度进行预测。x是输入的年龄和工资值,通过线性回归来拟合平面。
h
θ
(
x
)
=
θ
0
+
θ
1
x
1
+
θ
2
x
2
(
θ
0
是偏置项
)
h_{\theta }(x) = \theta_{0} + \theta_{1}x_{1}+ \theta_{2}x_{2}(\theta_{0}是偏置项)
hθ(x)=θ0+θ1x1+θ2x2(θ0是偏置项)
可以看到,上式中存在着偏置项,它与另外两项的格式不太相符,为了便于之后的矩阵运算,我们可以将偏置项对应的x值全都设为1,这样,三项的格式就统一了,也方便于后面矩阵的计算。
h
θ
(
x
)
=
∑
i
=
0
n
θ
i
x
i
=
θ
T
x
h_{\theta}(x) = \sum_{i=0}^{n}\theta_{i}x_{i} = \theta^{T}x
hθ(x)=i=0∑nθixi=θTx
二. 误差
真实值和预测值之间肯定是存在着差异的。误差如下:
对于每个样本:
y
(
i
)
=
θ
T
x
(
i
)
+
ε
(
i
)
对于每个样本:y^{(i)} = \theta^{T}x^{(i)} + \varepsilon ^{(i)}
对于每个样本:y(i)=θTx(i)+ε(i)
误差是独立并且具有相同的分布,并且服从高斯分布。
以下式子是误差的高斯分布概率:
p
(
ε
(
i
)
)
=
1
2
π
σ
e
x
p
(
−
(
ϵ
(
i
)
)
2
2
σ
2
)
p(\varepsilon ^{(i)}) = \frac{1}{\sqrt{2\pi}\sigma }exp(-\frac{(\epsilon ^{(i)})^{2}}{2\sigma ^{2}})
p(ε(i))=2πσ1exp(−2σ2(ϵ(i))2)
思考:我们的需求是提供年龄和工资的值,系统将我们可以贷款的金额预测出来。而要实现这一过程,需要地就是年龄和工资的参数值θ,这是我们要求的参数。而如何将上式与θ联系起来呢?将预测值与误差的式子(下式)左右相减代入误差的高斯分布式子中,便可以得到θ相关的式子:
y
(
i
)
=
θ
T
x
(
i
)
+
ε
(
i
)
y^{(i)} = \theta^{T}x^{(i)} + \varepsilon ^{(i)}
y(i)=θTx(i)+ε(i)
将上式代入高斯分布概率式子可以得到以下式子:
p
(
y
(
i
)
∣
x
(
i
)
;
θ
)
=
1
2
π
σ
e
x
p
(
−
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
2
σ
2
)
p(y^{(i)}|x^{(i)};\theta) = \frac{1}{\sqrt{2\pi}\sigma }exp(-\frac{(y^{(i)} - \theta^{T}x^{(i)})^2}{2\sigma ^{2}})
p(y(i)∣x(i);θ)=2πσ1exp(−2σ2(y(i)−θTx(i))2)
三. 似然函数
得到上式后,我们就要思考我们想要获得的结果是对y值的准测估计,即预测值与真实值越接近越好,而这需要的是对参数的求解。即什么样的参数和数据组合才能更加接近真实的输出?这时,我们就想到了似然函数。似然函数,做的就是这样一类事情,通过数据样本来推导出什么样的参数能够预测出真实值。
L
(
θ
)
=
∏
i
=
1
m
p
(
y
(
i
)
∣
x
(
i
)
;
θ
)
=
∏
i
=
1
m
1
2
π
σ
e
x
p
(
−
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
2
σ
2
)
L(\theta) = \prod_{i=1}^{m}p(y^{(i)}|x^{(i)};\theta) = \prod_{i=1}^{m}\frac{1}{\sqrt{2\pi}\sigma }exp(-\frac{(y^{(i)} - \theta^Tx^{(i)})^{2}}{2\sigma ^{2}})
L(θ)=i=1∏mp(y(i)∣x(i);θ)=i=1∏m2πσ1exp(−2σ2(y(i)−θTx(i))2)
上式即是θ参数的似然函数,由于误差是服从高斯分布的,分布在真实值的两边,那么误差的p值越大,误差就越趋近于0,即预测值与真实值的差距越小。这是我们所希望得到的结果,因此似然函数中p值的连乘当然是越大越好,即极大似然估计。
(一). 如何求解极大似然估计呢?
1. 先求对数
由于似然函数中都是连乘,很难计算,想到求对数后式子变为加法运算更加简单。
l
o
g
L
(
θ
)
=
l
o
g
∏
i
=
1
m
1
2
π
σ
e
x
p
(
−
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
2
σ
2
)
logL(\theta) = log\prod_{i=1}^{m}\frac{1}{\sqrt{2\pi}\sigma }exp(-\frac{(y^{(i)} - \theta^Tx^{(i)})^{2}}{2\sigma ^{2}})
logL(θ)=logi=1∏m2πσ1exp(−2σ2(y(i)−θTx(i))2)
展开化简后的式子如下:
∑
i
=
1
m
l
o
g
1
2
π
σ
e
x
p
(
−
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
2
σ
2
)
=
m
l
o
g
1
2
π
σ
−
1
σ
2
⋅
1
2
∑
i
=
1
m
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
\sum_{i=1}^{m}log\frac{1}{\sqrt{2\pi}\sigma }exp(-\frac{(y^{(i)} - \theta^{T}x^{(i)})^{2}}{2\sigma ^{2}}) = mlog\frac{1}{\sqrt{2\pi}\sigma } - \frac{1}{\sigma ^{2}}\cdot \frac{1}{2}\sum_{i=1}^{m}(y^{(i)} - \theta^{T}x^{(i)})^{2}
i=1∑mlog2πσ1exp(−2σ2(y(i)−θTx(i))2)=mlog2πσ1−σ21⋅21i=1∑m(y(i)−θTx(i))2
2. 我们的目标时让似然函数的值越大越好
从上式可以看出,前面一段是常数,因此只要后面一段的值越小越好。可以从后一段式子看出,除去常数值,可以简化为下式:
J
(
θ
)
=
1
2
∑
i
=
1
m
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
J(\theta) = \frac{1}{2}\sum_{i=1}^{m}(y^{(i)} - \theta^{T}x^{(i)})^{2}
J(θ)=21i=1∑m(y(i)−θTx(i))2
这个式子可以用最小二乘法来求解。
首先,将平方项的求和转换为矩阵的乘积,即矩阵的转置乘以矩阵自身,平方项即误差值。
1
2
(
X
θ
−
y
)
T
(
X
θ
−
y
)
\frac{1}{2}(X\theta - y)^{T}(X\theta - y)
21(Xθ−y)T(Xθ−y)
然后将矩阵的转置展开
1
2
(
θ
T
X
T
−
y
T
)
(
X
θ
−
y
)
\frac{1}{2}(\theta^{T}X^{T} - y^{T})(X\theta - y)
21(θTXT−yT)(Xθ−y)
将两个乘式展开,
1
2
(
θ
T
X
T
X
θ
−
θ
T
X
T
y
−
y
T
X
θ
+
y
T
y
)
\frac{1}{2}(\theta^{T}X^{T}X\theta - \theta^{T}X^{T}y - y^{T}X\theta + y^{T}y)
21(θTXTXθ−θTXTy−yTXθ+yTy)
要想求式子的最小值,一般是求式子的极值点,参数为θ,因此对θ求偏导。
1
2
(
2
X
T
X
θ
−
X
T
y
−
(
y
T
X
)
T
)
=
X
T
X
θ
−
X
T
y
\frac{1}{2}(2X^{T}X\theta - X^{T}y - (y^{T}X)^{T}) = X^{T}X\theta - X^{T}y
21(2XTXθ−XTy−(yTX)T)=XTXθ−XTy
偏导等于0,可求出θ的值为
θ
=
(
X
T
X
)
−
1
X
T
y
\theta = (X^{T}X)^{-1}X^{T}y
θ=(XTX)−1XTy
至此,θ这个参数的值已被求出,线性回归的式子也因此求出。这就是去求解线性回归参数的全过程。
不过,求得参数后我们需要对线性回归的效果进行评估,最常用的评估方法如下:
R
2
:
1
−
∑
i
=
1
m
(
y
i
^
−
y
i
)
2
(
残差平方和
)
∑
i
=
1
m
(
y
i
−
y
ˉ
)
2
(
类似方差项
)
R^{2}:1- \frac{\sum_{i=1}^{m}(\hat{y_{i}} - y_{i})^{2}(残差平方和)}{\sum_{i=1}^{m}(y_{i} - \bar{y})^{2}(类似方差项)}
R2:1−∑i=1m(yi−yˉ)2(类似方差项)∑i=1m(yi^−yi)2(残差平方和)
上式右边的分子为预测值与真实值的差距的平方和,分母为真实值与平均值的差距的平方和,所以上式评估的取值越接近于1,可以认为模型拟合效果越好。