Logistic 回归推导

Logistic 回归是机器学习中经典的分类方法,常见的二项 Logistic 回归模型是一种二项分类模型,由条件概率分布 P(Y|X) 表示,形式为参数化的Logistic 分布。为了更好地理解 Logistic 回归,我们先从线性回归开始说起。
假设有 m 个样本点,记为{(x(i),y(i)),i=1,2,3...,m},其中 x 为输入变量,y为输出变量。每个样本点输入变量 x(i) 都有 n 个特征,分别是x(i)1,x(i)2,x(i)3,...,x(i)n。对于所有样本点我们用线性回归模型去拟合这些样本点,对于二维来说模型是一条直线,对于多维是一个超平面。
设线性回归模型为 hθ(x)=θ0+θ1x1+θ2x2++θnxn ,记 θ⃗ =(θ0,θ1,θ2,...,θn)T,x⃗ =(1,x1,x2,...,xn)T ,那么模型可以写成 hθ(x)=θ⃗ Tx⃗ 
当然我们知道模型的估计值 θTx(i) 与实际值 y(i) 之间是有误差的,我们即为 ε(i) ,因此可得 y(i)=θTx(i)+ε(i) ,根据中心极限定理,误差 ε(i)(1im) 是独立同分布的,服从均值为0,方差为某定值 σ2 的高斯分布(高斯分布即正态分布),因而 ε(i) 的概率分布为:

p(ε(i))=12πσexp((ε(i))22σ2)
ε(i) 替换成 y(i)θTx(i) 可得:
p(y(i)|x(i);θ)=12πσexp((y(i)θTx(i))22σ2)
根据极大似然估计,该分布的似然函数为:
L(θ)=i=1m12πσexp((y(i)θTx(i))22σ2)
取对数为:
logL(θ)=logi=1m12πσexp((y(i)θTx(i))22σ2)=mlog12πσ1σ212i=1m(y(i)θTx(i))2
我们令:
J(θ)=12i=1m(y(i)θTx(i))2
因此要求 L(θ) 的极大值,即可求 J(θ) 的极小值,事实上 J(θ)=12mi=1(y(i)θTx(i))2 即为最小二乘。

Logistic 函数(或叫 Sigmoid 函数)为 g(x)=11+ex ,它的函数图像如下:
这里写图片描述
它的值域为[0, 1],这是一个很好的性质,我们可以认为他是一个概率分布,这是 Logistic 回归的关键。还有,对 g(x) 求导结果如下(大家可以自己证明):

g(x)=g(x)(1g(x))
在上面所述的线性回归中, hθ(x)=θTx ,而对于 Logistic 回归将其改成:
hθ(x)=g(θTx)=11+eθTx
二项 Logistic 回归模型是如下的条件概率分布:
p(y=1|x;θ)=hθ(x)
p(y=0|x;θ)=1hθ(x)
即为:
p(y|x;θ)=(hθ(x))y(1hθ(x))1y
根据极大似然估计,似然函数为:
L(θ)=i=1m(hθ(x(i)))y(i)(1hθ(x(i)))1y(i)
对数似然函数为:
logL(θ)=i=1my(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))
对其求极大值,得到 θ 的估计值。求解可以采用梯度下降法或拟牛顿法。
如果 θ 的极大似然估计值是 θ^ ,那么学习到的 Logistic 回归模型即为:
p(y=1|x)=11+eθ^Tx
p(y=0|x)=eθ^Tx1+eθ^Tx

好的,我来简单介绍一下 logistic 回归的原理推导Logistic 回归是一种分类算法,它的目标是根据输入特征预测样本属于哪个类别。在二分类问题中,我们通常将样本分为正类和负类两种情况。Logistic 回归的核心思想是通过一个 Sigmoid 函数将输入特征映射到 0 到 1 的概率值,然后根据概率值进行分类。 具体来说,我们假设有 $m$ 个样本,每个样本有 $n$ 个特征,我们用 $x^{(i)}$ 表示第 $i$ 个样本的特征向量,用 $y^{(i)}$ 表示第 $i$ 个样本的标签(0 或 1)。我们的目标是学习一个函数 $h_{\theta}(x)$,使得对于任意输入特征 $x$,$h_{\theta}(x)$ 都能够预测出该样本属于正类的概率。 我们可以使用逻辑回归模型来实现这个目标。逻辑回归模型的形式如下: $$h_{\theta}(x) = g(\theta^Tx) = \frac{1}{1+e^{-\theta^Tx}}$$ 其中,$\theta$ 是模型参数,$g(z)$ 是 Sigmoid 函数,其定义为: $$g(z) = \frac{1}{1+e^{-z}}$$ 我们的目标是最大化似然函数,即: $$L(\theta) = \prod_{i=1}^m h_{\theta}(x^{(i)})^{y^{(i)}}(1-h_{\theta}(x^{(i)}))^{1-y^{(i)}}$$ 为了方便计算,我们通常使用对数似然函数: $$l(\theta) = \log L(\theta) = \sum_{i=1}^m y^{(i)}\log h_{\theta}(x^{(i)}) + (1-y^{(i)})\log(1-h_{\theta}(x^{(i)}))$$ 我们的目标是最大化对数似然函数,即: $$\max_{\theta} l(\theta)$$ 我们可以使用梯度上升算法来求解最优参数 $\theta$。具体来说,我们需要计算对数似然函数的梯度: $$\frac{\partial l(\theta)}{\partial \theta_j} = \sum_{i=1}^m (h_{\theta}(x^{(i)})-y^{(i)})x_j^{(i)}$$ 然后根据梯度上升算法的更新公式更新参数 $\theta$: $$\theta_j := \theta_j + \alpha \frac{\partial l(\theta)}{\partial \theta_j}$$ 其中,$\alpha$ 是学习率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值