逻辑回归学习笔记

概述

Logistic Regression/Logit Regression的中文翻译有的叫作逻辑回归,周志华老师西瓜书中成为对数几率回归,李航老师统计学习方法中翻译为逻辑斯谛回归。这里不讨论翻译的优劣,仅需要知道是一个东西即可。Logistic Regression是分类问题中一个较为经典的模型,属于对数线性模型。

对于二类分类问题,我们需要输出的标记为\(y\in\{0, 1\}\),但是常规线性回归模型产生的预测值\(z=\theta^\mathrm{T}x\),这时需要将实值\(z\)再转换为0/1值。logistic function是一个常用的替代函数。它的定义为为\(g(z)=\frac{1}{1+e^{-z}}\),也被称为Sigmoid函数,可以将实值\(z\)转换为接近0/1的值。下图展示了logistic function的图形。

这里易得logistic function的导数为

\[\begin{align}g'(z)&=\frac{\mathrm d}{\mathrm dz}\frac{1}{1+e^{-z}}\\&=\frac{1}{\left(1+e^{-z}\right)^2}\left(e^{-z}\right)\\&=\frac{1}{1+e^{-z}}\cdot\left(1-\frac{1}{1+e^{-z}}\right)\\&=g(z)(1-g(z))\end{align} \]

这在接下去的求解中会用到这里推出来导数。

我们将常规线性回归模型的公式与logistic function整合,便得到了

\[h_\theta(x)=g(\theta^\mathrm{T}x)=\frac{1}{1+e^{-\theta^\mathrm{T}x}} \]

求解

设$$P(y=1\mid x;\theta)=h_\theta(x)\P(y=0\mid x;\theta)=1-h_\theta(x)$$
有$$P(y=0\mid x;\theta)=h_\theta(x_i)^y \left(1-h_\theta(x_i)\right)^{1-y}$$

其似然估计函数为

\[\begin{align} L(\theta)&=P(\vec y \mid X;\theta) \\&=\prod_{i=1}^nP(y_i \mid x_i;\theta) \\&=\prod_{i=1}^n h_\theta(x_i)^{y_i} (1-h_\theta(x_i))^{1-y_i} \end{align}\]

取自然对数后得

\[\begin{align} \mathscr{l}(\theta)&=\ln L(\theta) \\&=\sum_{i=1}^n y_i \ln h_\theta (x_i)+(1-y_i) \ln(1-h_\theta (x_i)) \end{align}\]

我们的目标就是最大化\(\mathscr{l}(\theta)\),这里采用梯度上升法来求解。

对其进行求偏导得

\[\begin{align} \frac{\partial}{\partial \theta_j}\mathscr{l}(\theta)&=\sum_{i=1}^n \left(y_i\frac{1}{g(\theta^\mathrm{T}x_i)} - (1-y_i)\frac{1}{1-g(\theta^\mathrm{T}x_i)} \right) \frac{\partial}{\partial\theta_j}g(\theta^\mathrm{T}x_i) \\&=\sum_{i=1}^n \left(y_i\frac{1}{g(\theta^\mathrm{T}x_i)} - (1-y_i)\frac{1}{1-g(\theta^\mathrm{T}x_i)} \right) g(\theta^\mathrm{T}x)(1-g(\theta^\mathrm{T}x))\frac{\partial}{\partial\theta_j}\theta^\mathrm{T}x_i \\&=\sum_{i=1}^n \left(y_i(1-g(\theta^\mathrm{T}x_i))-(1-y_i)g(\theta^\mathrm{T}x_i)\right) x_{ij} \\&=\sum_{i=1}^n \left(y_i-g(\theta^\mathrm{T}x_i\right)x_{ij} \\&=\sum_{i=1}^n \left(y_i-h_\theta(x_i)\right)x_{ij} \end{align}\]

得出批量梯度上升的更新式为:

\[\theta_j:=\theta_j+\alpha\sum_{i=1}^n \left(y_i-h_\theta(x_i)\right)x_{ij}\quad (j=0,\cdots,m) \]

很容易发现,这与线性回归中的批量梯度上升更新式其实是一样的。

对于随机梯度上升,类似地,我们得出更新式为:

\[\theta_j:=\theta_j+\alpha \left(y_i-h_\theta(x_i)\right)x_{ij}\quad (j=0,\cdots,m) \]

评价

对于二类分类问题而言,比较常见的评价指标有精确率(precision)和召回率(recall)。一般会把分类中一类叫做正类,另一类叫做负类。定义四种预测的结果类型如下:

  • True Positive(TP) --将正类预测为正类数
  • False Negative(FN) --将正类预测为负类数
  • False Positive(FP) --将负类预测为正类数
  • True Negative(TN) --将负类预测为负类数

则精确率的定义为: \(P=\frac{TP}{TP+FP}\),召回率定义为\(R=\frac{TP}{TP+FN}\)
通过计算精确率和召回率的调和平均值得到\(F1=\frac{2}{\frac{1}{P}+\frac{1}{R}}=2\cdot\frac{P\cdot R}{P+R}\)

参考

posted @ 2017-10-29 21:58  活在夢裡  阅读(308)  评论(0)    收藏  举报