美文网首页逻辑回归
逻辑回归(Logistic Regression)

逻辑回归(Logistic Regression)

作者: 此间不留白 | 来源:发表于2019-01-28 22:10 被阅读1次

分类问题(Classification)

在前面的学习中,我们已经详细了解了线性回归问题。本篇文章将详细介绍监督学习中常见的另一类问题:分类问题,典型的分类问题有肿瘤良性或者恶性的预测,垃圾邮件的分类等。分类问题的输出,常用y表示,如下所示:
y∈\{0,1\}:
0: “负例(Negative Class )”
1: “正例(Positive Class)”

分类问题的假设函数

在之前的线性回归问题中,我们使用线性函数h_\theta(x)用来拟合数据。然而,对于分类问题而言,我们要求其输出y的范围应该在(0,1)之间,而线性回归问题的假设函数h_\theta(x)输出值可能大于1或者小于0,显然,线性回归的假设函数已然不适用于分类问题,我们需要重新找一个新的假设函数用来拟合分类问题的期望输出。

  • Sigmod函数
    线性回归问题中的假设函数h_\theta(x) = \theta^T x,而想要其输出值满足 0\leq h_\theta(x) \leq1,引进Sigmod函数,如下所示:
    g(z) = \frac{1}{1+e^{-z}}
    z = \theta^T x
    g(z)的函数图像如下所示,由函数图像可知,sigmod函数能够满足逻辑回归的基本要求,并且当g(z)>0.5时可将其近似认为g(z)=1,而当g(z)\leq0.5时,认为g(z)=0g(z)的输出,在某种程度上表示一个分类问题在给定x的条件下等于0或者1的概率。
  • 决策边界(Decision Boundary)
    假设存在一假设函数h_\theta(x)=\theta^Tx,如下图所示,假设函数的曲线将平面划分为两半,则曲线上方表示y=1,曲线下方表示y=0,则由h_\theta(x)函数构成的曲线称之为决策边界(Decision Boundary)。

代价函数(Cost Function)

  • 代价函数的表示
    与线性回归问题一样,寻找合适的\theta参数对于假设函数与训练集的拟合是非常重要的,而寻找代价函数的最小值无疑是至关重要的,显然,梯度下降算法对于寻找代价函数的最小值仍然是一种行之有效的方法。与线性回归问题类似,代价函数的表达式可以如下表示:
    J(\theta) = \frac{1}{m}\sum_{i=1}^{m}Cost(h_\theta(x_i),y_i)
    与线性回归问题不同的是,因为假设函数的表达式含有e^{-z}这一分量,为了更好地表达逻辑回归的相关问题,需要对逻辑回归的的代价函数作如下处理:
    Cost(h_\theta(x),y) =\begin{cases} -log(h_\theta(x)) \ \ \ \ \ \ \ \ \ if\ \ \ \ y=1 \ \\-log(1-h_\theta(x)) \ \ if \ \ \ y=0 \end{cases}
    根据y=1y=0两种不同的情况,其代价函数的图像如下所示:


    根据代价函数两种不同情况下的图像,可以清楚得表达出h_\theta(x)与其代价函数大小之间的关系。
  • 代价函数的优化
    以上,我们已经正确地表达出了代价函数的表达式,但是,为了更加方便的求解代价函数,我们需要将代价函数的两个表达式合并成一个表达式,根据y=0y=1两种不同的情况,很容易推导出其合并后的表达式如下所示:
    Cost(h_\theta(x),y) = -ylog(-h_\theta(x))-(1-y)log(1-h_\theta(x))
  • 代价函数的最小化
    与线性回归一样,得到代价函数之后,需要对代价函数求取最小值,仍然使用梯度下降算法,如下所示,需要注意的是必须同时更新代价函数的所有\theta参数
    Repeat \ \ \{
    \theta_j := \theta_j- \alpha\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}
    \}
    从以上表达式中,可以看出虽然\theta的更新算法的表达式与线性回归的中\theta的更新算法的表达式基本一致,但是,需要注意其表达式中的h_\theta(x)与线性回归算法中h_\theta(x)的表达式形式有着根本性的差异。

注意:线性回归算法中的特征缩放也适用于逻辑回归算法

一对多的分类问题

以上,我们已经了解的逻辑回归问题以及相关算法,并且能够运用合适的算法将其应用于解决实际问题,然而,现实中的问题并不仅仅是简单的二元分类,可能面临着更加复杂的问题,例如天气情况的分类,邮件类型的分类等等。为此,一对多的分类问题可以用下图简单表示:



先将其中一个类别划分为负例,另外两个类别划分为正例,寻找其决策边界,如上图所示,通过多次划分,最终找到3条决策边界线,实现一对多问题的分类。

附:代价函数的推导

以上,我们已经了解了逻辑回归的假设函数,则根据假设函数的定义,可以认为根据y的取值(0或者1)概率用如下公式表示:
P(y|x,\theta) = h_\theta(x)^y(1-h_\theta(x))^{1-y}

有了概率分布的函数表达式,就可以利用最大似然估计法估计合适的\theta值,根据以上概率分布函数以及最大似然估计法,可以写出如下的最大似然函数

L(\theta) = \prod_{i=1}^{m}h_\theta(x^i)^{y(i)}(1-h_\theta(x^{i}))^{1-y(i)}

其中m表示样本个数。
如下所示,对似然函数进行取对数:
J(\theta) = -\frac{1}{m}lnL(\theta) =\frac{1}{m}\sum_{i=1}^{m} -y^{(i)}log(h_\theta(x^{(i)}))-(1-y^{(i)})log(1-h_\theta(x^{(i)}))

根据最大似然估计法,对J(\theta)关于\theta求导,根据链式求导法则,求导详细过程如下所示:

相关文章

网友评论

    本文标题:逻辑回归(Logistic Regression)

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