机器学习入门笔记系列(3)| 逻辑回归模型

作者: 胖三斤66 | 来源:发表于2018-08-23 13:54 被阅读8次

「逻辑回归模型」解决的是监督学习中的分类问题。但由于历史原因名字中带有回归,但它实际上是分类算法。还是从最基础的分类问题「二分类问题」开始讲起。

先统一符号表达

x_{j}^{(i)} = 第 i 个训练样本中的第 j 个属性值
x^{(i)} = 第 i 个训练样本所有属性组成的向量
m = 样本数
X \varepsilon \mathbb{R}^{m*(n+1)},\theta \varepsilon \mathbb{R}^{(n+1)*1},y \varepsilon \mathbb{R}^{m*1}

二分类问题

我们的输出向量 y 不是连续的值范围,而是只有 0 或 1(即 y ε {0,1})。

假设函数 / 逻辑分类器

假设函数应该满足
0 \leqslant h_\theta(x) \leqslant 1

在二分类问题中,假设函数的含义是 h_\theta(x) = P(y = 1 | x; \theta),即 h_\theta(x) = 在给定的输入特征 x 和参数 \theta 下,预测 y = 1 的概率。

假设函数是 Sigmoid 函数,也称为逻辑函数,公式如下:
h_\theta(x) = g(X\theta) = \frac{1}{1+e^{-X\theta}}

Sigmoid 函数

由 Sigmoid 函数的特点:

  1. X\theta \geq 0 时, h_\theta(x) \geq 0.5,也就是此时预测值等于 1 的概率大于等于50%,所以此时预测 y=1
  2. X\theta < 0 时, h_\theta(x) < 0.5,也就是此时预测值等于 1 的概率小于50%,所以此时预测 y=0

而我们称 X\theta = 0 为「决策边界」,决策边界将分隔 y = 0 和 y = 1 的区域。此外,X\theta 不需要是线性组合,可以是圆形函数(如 X\theta = \theta_0 + \theta_1x_{1}^{2} + \theta_2x_{2}^{2})或者其他形状函数,以适应我们的数据。

代价函数

我们不能使用与线性回归相同的代价函数,因为逻辑回归假设函数不是线性函数,若将逻辑回归假设函数代入到线性回归的代价函数中产生的函数会导致输出波动,从而导致许多局部最优。 换句话说,它不是凸函数。

下面的代价函数 J(θ) 对于逻辑回归模型而言一定是凸函数,它是由最大似然估计原理从统计中得出。而关于如何通过最大似然估计原理得到这个公式就不属于目前讲解范畴。

逻辑回归代价函数

通过合并公式,得:

J(\theta) = \frac{1}{m}\sum_{i=1}^{m}Cost(h_\theta(x) - y^{(i)}) = - \frac{1}{m}\sum_{i=1}^{m}(y^{(i)}log(h_\theta(x)) + (1-y^{(i)})log(1 - log(h_\theta(x))))

矢量化后,公式为:

J(\theta) = - \frac{1}{m}(y^T log(g(X\theta)) + (1-y^T)log(1 - g(X\theta)))

梯度下降算法

梯度下降算法通用形式为:

梯度下降算法通式

将逻辑回归的代价函数代入通式并求导后,公式变为:

逻辑回归梯度下降算法

会发现,此算法与我们在线性回归中使用的算法相同。 但两个模型的假设函数 h_\theta(x) 不同,所以两者的梯度下降算法还有有所区别的。

矢量化:
\theta = \theta - \frac{\alpha }{m}X^T(g(X\theta) - y)

除了梯度下降算法能求逻辑回归模型代价函数的最小值外,还有「共轭梯度算法」 、「BFGS」、「L-BFGS」三种算法。这三种算法的学习需要花上几天甚至几周的时间,这里就不多介绍。简单介绍一下这三种与梯度下降算法的对比,他们的优势和劣势。

优点 缺点
不需要选择学习率 \alpha 算法复杂
收敛速度比梯度算法快

这三种算法使用时最好是调用现有的库。库中的算法是经过数值专家进行优化过的,比自己编写的代码好得多。

多分类问题

学会了解决二分类问题后,现在,我们将数据分类为两类以上,即从 y = {0,1} 扩展到 y = {0,1,...,n}。

一对多算法

「一对多算法」:先将选择其中一个类别独立出来,再将其他的类别当做一个类别,然后运用二分类问题的解决方法就可以解出这个独立类别的决策边界;以此类推,求得所有类别的决策边界。下面用图解释算法的过程。

一对多算法过程

与上图对应 y 值的变化:

image.png

其中,多分类问题的假设函数及其含义如下图:

多分类问题的假设函数

如何预测:将输入值输到每一个假设函数中,将返回结果最大的当做预测结果。

总结

最后用一张表总结一下逻辑回归模型中的算法和公式

逻辑回归模型中的算法和公式

扩展知识

在 Octave 中运行梯度下降算法

fminunc 函数已经对梯度下降算法已经进行一定优化。fminunc 函数的使用细节见使用help fminunc 命令

fminunc函数 costFunction函数的解释

上述的算法代码也可以套用在线性回归模型中。

相关文章

  • 机器学习入门笔记系列(3)| 逻辑回归模型

    「逻辑回归模型」解决的是监督学习中的分类问题。但由于历史原因名字中带有回归,但它实际上是分类算法。还是从最基础的分...

  • 逻辑回归为什么用交叉熵损失函数

    1 Logistic Regression(逻辑回归) 逻辑回归是机器学习中的一个非常常见的模型, 逻辑回归模型其...

  • 逻辑回归

    点击链接:逻辑回归 NG机器学习公开课笔记:机器学习笔记

  • 机器学习算法概述:随机森林&逻辑回归

    摘要:机器学习算法入门介绍:随机森林与逻辑回归! 随机森林是用于分类和回归的监督式集成学习模型。为了使整体性能更好...

  • 2019-02-17

    机器学习系列 机器学习100天 机器学习第1天:数据预处理 机器学习第2天:简单线性回归模型 机器学习第3天:多元...

  • 逻辑回归

    逻辑回归模型简介 --美团 机器学习——从编程角度理解逻辑回归 七种常用回归技术,如何正确选择回归模型? 数据科学...

  • 2018-11-06

    机器学习: 1、kmeans 2、meanshift 3、最小二乘法 4、逻辑回归、线性回归 5、混合高斯模型 6...

  • 机器学习笔记(5):线性回归

    本文来自之前在Udacity上自学机器学习的系列笔记。这是第5篇,介绍了监督学习中的线性回归模型。 线性回归回归这...

  • 2019-10-29

    Day2 简单线性回归模型 机器学习入门--简单线性回归机器学习算法之线性回归算法 导入库matplotlib 绘...

  • sigmoid function为什么是1/{1+exp(-z)

    逻辑回归模型背景 逻辑回归模型是机器学习中最常见的一种基础模型,模型为:f_w,b(x)=\sigma(\sum_...

网友评论

  • 胖三斤66:如果你喜欢本文的话,欢迎点赞、收藏或者关注公号「数据搬瓦工」,上面会同步更新文章

本文标题:机器学习入门笔记系列(3)| 逻辑回归模型

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