Python实现(ScikitLearn_0.19.0)
中文代码笔记传送门:
www.wjml.tech/Study/Linear_model.html
逻辑回归和线性回归都是广义线性模型中的一种,接下来我们来解释为什么是这样的?
1、指数族分布
指数族分布和指数分布是不一样的,在概率统计中很对分布都可以用指数族分布来表示,比如高斯分布、伯努利分布、多项式分布、泊松分布等。指数族分布的表达式如下
其中η是natural parameter,T(y)是充分统计量,exp−a(η)是起到归一化作用。 确定了T、a、b, 我们就可以确定某个参数为η的指数族分布。
统计学中很多熟悉的概率分布都是指数族分布的特定形式。下面我们介绍其中的伯努利分布和高斯分布,从而推导出逻辑回归和线性回归的表达式
1)伯努利分布
我们将伯努利分布的式子按照指数族分布的形式表示出来
把伯努利分布写成指数族分布的形式,将指数族分布中的每一项都拆分出来,则有
我们根据上述式子可以得出Φ的表达式,式子的形式就是Sigmoid函数的形式
2)高斯分布
将高斯分布用指数族的形式表示
在这里我们假设了方差为1,简化式子,便于我们的推导。将指数族分布中的每一项拆分出来
2、广义线性模型
无论是在做分类问题还是回归问题,我们都是在预测某个随机变量y 和 随机变量x 之间的函数关系。在推导线性模型之前,我们需要做出三个假设:
1)P(y|x; θ) 服从指数族分布
2)给定了x,我们的目的是预测T(y) 在条件x下的期望。一般情况下T(y) = y,这也就意味着我们希望预测h(x) = E[y|x]
3)参数η 和输入x 是线性相关的:η=θTx
在这三个假设的前提下,我们可以开始推导我们的线性模型,对于这类线性模型称之为广义线性模型。
最小二乘法(线性回归)
假设p(y|x; θ)∼N(μ, σ2),μ可能依赖于x,那么有
因为输出服从高斯分布,因此期望为μ,再结合上面的三天假设就可以推导出线性回归的表达式。因此线性回归模型的响应变量是服从高斯分布(正态分布)。
逻辑回归(LR)
逻辑回归是二分类问题,y∈ {0, 1},对于二分类问题,我们假设p(y|x; θ)∼Bernoulli(ϕ),即响应变量服从伯努利分布。那么有
因此可以看出逻辑回归的表达式是如何得来的,为什么用Sigmoid函数来处理非线性问题
3、逻辑回归
逻辑回归是在线性回归的基础上演变过来的,逻辑回归实际上是处理二分类问题的模型,输出结果y∈ {0, 1},为了满足这样的输出结果,我们引入Sigmoid函数将行数的输出值控制在(0, 1) 范围内,Sigmoid函数表达式如下
因为逻辑回归是个二分类问题,服从伯努利分布,输出结果用概率的形式表示,可以将表达式写成
为了便于后面的分析计算,我们将分段函数整合
对于给定的训练样本,这属于已经发生的事情,在概率统计中认为已经发生事情应该是概率最大的事件(概率小的事件不容易发生),因此可以用极大似然法来求解模型参数,我们将所有样本的联合分布概率给出
为了便于计算,我们将似然函数转化为对数似然函数
上面的函数是求极大值,而我们通常的损失函数都是求极小值,因此可以转变为
对于损失函数J(w) 是比较复杂的,利用正规方程去获得参数的解是很困难的,因此引入梯度下降法(梯度的负方向就是损失函数下降最快的方向),利用梯度下降来极小化损失函数。
如果觉得《python实现广义线性模型_「原理」机器学习算法入门—广义线性模型(线性回归 逻辑回归)...》对你有帮助,请点赞、收藏,并留下你的观点哦!