逻辑斯特回归之基础
从线性回归到逻辑斯特回归
让我们思考一个实际的分类问题:
通过学生的学习时间,估计他期末考试是否能够及格。
那么,我们是否可以通过在[机器学习-1.1]线性回归之基础中描述的方法来实现这个分类问题呢?
让我们先看这样一张图:
![[机器学习-2.1]逻辑斯特回归之基础 [机器学习-2.1]逻辑斯特回归之基础](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNd01DODNOamhrWW1aa09USXlaVFZsTnpSbFltWTJaRFkxTURRMlpHTmlaalE0WXk1d2JtYz0=)
横坐标表示学习时间,纵坐标表示及格与否。1代表及格,0代表不及格。
0.5为界限,也就是说,输入一个学生的学习时间给分类器,分类器就是一个函数,函数输出一个数,大于阈值0.5,判定为及格,小于0.5判定为不及格。
蓝点代表不及格学生数据,水红点代表及格学生数据。安装线性回归的算法,得到分类函数为黄色线,我们可以明显看见,分类器很好的分出了,及格学生和不及格学生。
但是,当我们加入右上角的新数据时候,再次利用线性回归算法得到分类函数,为红色线,这个时候就会出现分类出错的情况。
之所以会出现分类出错的情况,是因为,线性回归对异常值敏感,算法为了照顾这些异常点,会使得分类不符合实际情况。
为此,我们需要引入一种模型,更加符合这种给定x和θ得到输出变量y服从贝努利分布(0-1分布,二项分布)的分类问题。
以上是直觉理解分析,以下通过理论分析得到我们需要的逻辑斯特回归模型。
这种已知x预测y的问题,可以通过构建广义线性模型(GLM)来解决,GLM由三大假设,也就是说,让上述的二分类问题遵循GLM,就可以达成预测模型的构建。
-
y∣x;θ 服从一个参数为η的指数族分布
- 给定x,预测y的期望值,即得到h(x)=E(y∣x)
- 假设参数η和输入变量x是线性关系,也就有η=θTx
首先第一步,让p(y∣θ)服从指数族分布。
指数族分布满足如下概率密度函数:
p(y;η)=b(y)e(ηT(y)−a(η))
其中,η是自然参数,T(y)是充分统计量,a(η)为正则化项。
通常T(y)=1。
在上述的二分类问题中,输出变量服从二项分布:
p(y;θ)=ϕy(1−ϕ)(1−y)
将其转化为指数族分布的形式:
p(y;θ)=e((log(1−ϕϕ))y+log(1−ϕ))
对照指数族公式的通式,可以得到:
ϕ=1+e−η1
b(y)=1
a(η)=log(1+eη)
又有η=θTx,则,我们可以得到
p(y∣x;θ)=(1+e−θx1)y(1−1+e−θx1)1−y
至此,我们知道我们需要的函数是sigmoid函数,即为ϕ=1+e−η1。
从最大似然得到目标函数
假设hθ(x)=g(θTx)=1+e−θx1
那么似然函数有:
L(θ)=p(y∣X;θ)=i=1∏mhθ(x(i))y(i)(1−hθ(x(i)))1−y(i)
对数似然函数:
l(θ)=lnL(θ)=i=1∑m(y(i)lnhθ(x(i))+(1−y(i))ln(1−hθ(x(i))))
以上对数似然函数,就是我们常说的交叉熵,可以把其看做目标函数。
利用梯度上升法求解
对参数θ求目标函数的偏导,也就是求对数似然,得到:
∂θj∂l(θ)=i=1∑m(y(i)−g(θTx(i)))xj(i)
参数θ梯度更新法则:
Repeatuntilconvergence{θi=θi−αj=1∑m(hθ(x(j))−y(j))xi(j)}
或者:
Loop{forj=1tom{θi=θi−α(hθ(x(j))−y(j))xi(j)}}
注意,梯度下降或者上升,只是正负好的差别。