Logistic Regression (逻辑回归)

什么是逻辑回归?

Logistic回归与多重线性回归实际上有很多相同之处,最大的区别就在于它们的因变量不同,其他的基本都差不多。正是因为如此,这两种回归可以归于同一个家族,即广义线性模型(generalizedlinear model)。

这一家族中的模型形式基本上都差不多,不同的就是因变量不同。

  • 如果是连续的,就是多重线性回归;
  • 如果是二项分布,就是Logistic回归;
  • 如果是Poisson分布,就是Poisson回归;
  • 如果是负二项分布,就是负二项回归。

Logistic回归的因变量可以是二分类的,也可以是多分类的,但是二分类的更为常用,也更加容易解释。所以实际中最常用的就是二分类的Logistic回归。

Logistic回归的主要用途:

  • 寻找危险因素:寻找某一疾病的危险因素等;
  • 预测:根据模型,预测在不同的自变量情况下,发生某病或某种情况的概率有多大;
  • 判别:实际上跟预测有些类似,也是根据模型,判断某人属于某病或属于某种情况的概率有多大,也就是看一下这个人有多大的可能性是属于某病。

Logistic回归主要在流行病学中应用较多,比较常用的情形是探索某疾病的危险因素,根据危险因素预测某疾病发生的概率,等等。例如,想探讨胃癌发生的危险因素,可以选择两组人群,一组是胃癌组,一组是非胃癌组,两组人群肯定有不同的体征和生活方式等。这里的因变量就是是否胃癌,即“是”或“否”,自变量就可以包括很多了,例如年龄、性别、饮食习惯、幽门螺杆菌感染等。自变量既可以是连续的,也可以是分类的。

Logistic 函数由来

当预测目标是概率这样的,值域需要满足大于等于0,小于等于1的,且可以接受所有的输入。这个时候单纯的线性模型是做不到的,因为在定义域不在某个范围之内时,值域也超出了规定区间。

Logistic Regression (逻辑回归)

所以此时需要这样的形状的模型会比较好:

Logistic Regression (逻辑回归)

那么怎么得到这样的模型呢?

  • 这个模型需要满足两个条件 “大于等于0”,“小于等于1”
  • 大于等于0 的模型可以选择绝对值,平方值,这里用指数函数,一定大于0;
  • 小于等于1 用除法,分子是自己,分母是自身加上1,那一定是小于1的了。

再做一下变形,就得到了 logistic regressions 模型:

Logistic Regression (逻辑回归)

通过源数据计算可以得到相应的系数了:

Logistic Regression (逻辑回归)

最后得到 logistic 的图形:

Logistic Regression (逻辑回归)

Logistic 常规步骤

Regression问题的常规步骤为:

  1. 寻找h函数(即hypothesis);
  2. 构造J函数(损失函数);
  3. 想办法使得J函数最小并求得回归参数(θ)

构造预测函数h

Logistic回归虽然名字里带“回归”,但是它实际上是一种分类方法,主要用于两分类问题(即输出只有两种,分别代表两个类别),所以利用了Logistic函数(或称为Sigmoid函数),函数形式为:

Logistic Regression (逻辑回归)

Sigmoid 函数在有个很漂亮的“S”形,如下图所示(引自维基百科):

Logistic Regression (逻辑回归)

Decision boundary(决策边界)

Logistic Regression (逻辑回归)

Cost function(代价函数,成本函数)

Logistic Regression (逻辑回归)

Logistic Regression (逻辑回归)

Simplified cost function and gradient descent(简化版代价函数及梯度下降算法)

Logistic Regression (逻辑回归)

公式 18 与最小二成的形式一样,但是实际上是不一样的,因为函数 h 不一样。

但这并不是巧合,这几乎是一种通用的规则,你可以选择不同的假设,但如果使用梯度下降算法的话,更新规则都是如公式 18 的形式。

Advanced optimization(其他优化算法)

优化算法除了梯度下降算法外,还包括:

  • Conjugate gradient method(共轭梯度法)
  • Quasi-Newton method(拟牛顿法)
  • BFGS method
  • L-BFGS(Limited-memory BFGS)

后二者由拟牛顿法引申出来,与梯度下降算法相比,这些算法的优点是:

  • 第一,不需要手动的选择步长;
  • 第二,通常比梯度下降算法快;

但是缺点是更复杂-更复杂也是缺点吗?其实也算不上

Multi-class classification: One-vs-all(多类分类问题)

Logistic Regression (逻辑回归)