美文网首页
Logistic 回归

Logistic 回归

作者: Athenaearl | 来源:发表于2019-03-16 10:35 被阅读0次

这是一个十分基础的分类算法
对于一个二分类问题,我们希望的应该是一条线将空间进行划分,在线的一侧是一类,另一侧就是另一类。
也就是说:
\theta^T x < 0 分为一类
\theta^T x > 0 分为另一类
然后由于是一个二分类问题,我们希望结果压缩到0 和 1 之间
那么我们首先应该想到的是
f(x)=\begin{cases} 1, & x>0\\ 0, & x\leq 0 \end{cases}
\theta^T x传入f(x)可以获得想要的结果

但是
以上的f(x)的数学性质不是很好,不是可导函数,因此要有适当的变形
h(x) = \frac{1}{1+e^{-x}}f(x) 非常像,而且h(x) 的数学性质就非常好,因此是非常常用的一种f(x)的替代函数

那么我们应该怎么理解h(x),显然h(x)是一个连续函数,生成的是连续值 而非 只是 0 和 1 两个值
那么我们可以认为h(x)表示的是结果为1的概率,越大数结果越接近1 就相当于得1的可能性越大, 越小的数结果越接近0 代表结果为1的可能性越小。

开始推导

首先,设h_\theta(x) = \frac{1}{1+e^{-\theta^Tx}}
所以:
P(y=1|x;\theta) = h_\theta(x)
P(y=0|x;\theta) = 1 - h_\theta(x)
写成更一般的形式:
P(y|x;\theta) = h_\theta(x)^{y}(1-h_\theta(x))^{1-y}
因此如果向其传入的是真实的样本分类结果,那么它表示的是分类正确的概率,因此我们显然是想要它越大越好
L(\theta) = \prod_{i=0}^mh_\theta(x^{(i)})^{y^{(i)}}(1-h_\theta(x^{(i)}))^{1 - y^{(i)}}
也就是,我们希望L(\theta)越大越好
这样其实就已经很清晰了,我们想要更新\theta,问题就在于如何增大L(\theta)

以下就是处理如何增大L(\theta)
L(\theta) 全是乘法的,因此取log会使计算更加简单
l(\theta) = \sum_{i=0}^m y^{(i)}log(h_\theta(x^{(i)})) + (1-y^{(i)})log(1 - h_\theta(x^{(i)}))
传统的梯度下降法能获得的是局部最小值,这里面我们想要局部最大值,因此,修改公式,变成梯度上升法
\theta_j = \theta_j + \alpha \frac{\partial}{\partial\theta_j}l(\theta)
求得结果:
\theta_j = \theta_j + \alpha \sum_{i = 1}^{m}x_j^{(i)}(h_\theta(x^{(i)} + y^{(i)}))

以上就是更新公式的全部推导

相关文章

网友评论

      本文标题:Logistic 回归

      本文链接:https://www.haomeiwen.com/subject/hgdepqtx.html