logistic regression

一般来说,回归是不用于分类的,因为回归是连续的,受噪声影响较大。为了能够处理分类问题,引入了逻辑回归。

逻辑回归本质上来说还是线性回归,他只是在线性回归的基础上加了一个映射函数。

假设函数:$h_\theta\left(x\right) = g\left(\theta^T x \right) = \frac{1}{1+e^{-\theta^Tx}}$

              $g\left(z\right) = \frac{1}{1+e^{-z}}$

这里我们讨论二分类问题,即$y\in{0,1}$,这里假设二值满足伯努利分布。

伯努利试验:在同样的条件下,重复地、相互独立地进行的一种随机试验,其结果只有两种:发生(概率为p)或者不发生(概率为1-p)。

伯努利分布:进行一次伯努利实验,成功(X=1)的概率为p,失败(X=0)的概率为1-p,则称随机变量x服从伯努利分布。

这里$h_\theta\left(x\right)$表示样本x为第一类(对于的y=1)的概率,所以有:

$P\left( y=1 | x ; \theta \right) = h_\theta\left(x\right)$

$P\left( y=0 | x ; \theta \right) = 1-h_\theta\left(x\right)$

将两者结合起来:

$P\left( y | x ; \theta \right) = h_\theta\left(x\right)^y \left(1-h_\theta\left(x\right) \right)^\left(1-y\right)$

 令$L\left(\theta\right) = \prod_{i=1}^m P\left( y^\left(i\right) | x^\left(i\right) ; \theta \right)$

对其取对数:$l\left(\theta\right) = \log L\left(\theta\right) = \sum_{i=1}^m y^\left(i\right) \log h_\theta\left(x^\left(i\right)\right) + \left(1- y^\left(i\right)\right) \log \left(1-h_\theta\left(x^\left(i\right)\right) \right)$

我们要求的是 $\max_\limits{\theta}{l\left(\theta\right)}$

采用梯度上升的方法

$\frac{\partial l\left(\theta\right)}{\partial \theta_j} = \sum_{i=1}^m \left( \frac{y^\left(i\right)}{h_\theta \left( x^\left(i\right)\right)} - \frac{1-y\left(i\right)}{1- h_\theta \left( x^\left(i\right)\right)} \right) \frac{\partial h_\theta \left( x^\left(i\right)\right)}{\partial \theta_j}$

$= \sum_{i=1}^m \left( \frac{y^\left(i\right)}{g \left( \theta^T x^\left(i\right)\right)} - \frac{1-y\left(i\right)}{1- g\left( \theta^T x^\left(i\right)\right)} \right) g\left(\theta^T x^\left(i\right)\right)\left( 1- g\left(\theta^T x^\left(i\right)\right) \right) x_j^\left(i\right) $

$ = \sum_{i=1}^m \left( y^\left(i\right) - g\left(\theta^T x^\left(i\right)\right)\right) x_j^\left(i\right) $

$\theta := \theta + \alpha \sum_{i=1}^m \left( y^\left(i\right) - g\left(\theta^T x^\left(i\right)\right)\right) x_j^\left(i\right)  $

 

牛顿法:收敛速度较快,属于二次收敛

例如:求$f\left(x\right)=0$对应的x

1: 随机取x的初始值$x_0$

2: $x_1 = x_0 - \frac{f\left(x_0\right)}{f'\left(x_0\right)}$

3: 重复2

利用牛顿法求$\max_\limits{\theta}{l\left(\theta\right)}$,即令$l'(\theta)=0$

1:随机取$\theta^0$

2:$\theta^1 = \theta^0 - \frac{l'(\theta^0)}{l''(\theta^0)}$

3:$\theta^{t+1} = \theta^t - \frac{l'(\theta^t)}{l''(\theta^t)}$

 

 

kaggle中的应用:Titanic问题

参照博客:http://blog.csdn.net/han_xiaoyang/article/details/49797143

posted @ 2017-04-18 02:09  江小修  阅读(217)  评论(0编辑  收藏  举报