第六章-逻辑回归算法 深度之眼_吴恩达机器学习作业训练营

目录

一,分类问题

      1.1 简介

      1.2 引例:肿瘤问题

二,假设函数

三,决策边界

四,损失函数

五,梯度下降法 

六,高级训练方法的使用

七,多分类问题

八,总结


一,分类问题

      1.1 简介

         给定一组具有一些特征的数据,并给出其所属的类型,问给定相似数据是否能确定其类型。当数据所属类型只有两类时称为二分类问题,有三类及其以上时称为多分类问题。

         举例: 给定电子邮件,判断邮件为(垃圾邮件,非垃圾邮件);

                  给定电子交易记录,判断交易为(可靠交易,欺诈交易);等等。                  

      1.2 引例:肿瘤问题

         给定一些有关某部位肿瘤的医疗记录(肿瘤大小,肿块厚度:良性/恶性),试求出相应的二分类模型用来预测肿瘤情况。

图6-1  肿瘤问题

二,假设函数

直接采用线性回归算法拟合数据显然不成立,假设数据线性可分,由线性回归所带来的经验,可依然想到用一个线性函数解决问题,只不过目标不是拟合数据,而是预测概率。设立一个阈值,当概率值大于等于阈值的数据分为一类,小于阈值为另一类。由此便实现了可解决线性可分问题的二分类模型。

      假设样本数据为(x^{(i)}, y^{(i)}), x^{(i)} \in \mathbb{ R }^{ n + 1 }, y^{(i)} \in { \{ 0, 1\} };  一般用 0表示没有,1表示有,所有这里可用1表示有恶性肿瘤,0表示良性肿瘤。将h_{\theta}(x^{(i)}) 可看做是给定样本x^{(i)}预测其是恶性肿瘤的概率,则有 

                                h_{\theta}(X) = p(Y=1 | X,\theta)                (公式 6.1.1)

                             1- h_{\theta}(X) = p(Y=0 | X,\theta)            (公式 6.1.2)

      不妨设 h_{\theta}(X)=g(\theta ^{T} X)其中\theta = ( \theta_{0} ,\theta_{1},\theta_{2} ,......,\theta_{n} )^{T} ,函数g(z)称为sigmoid函数,又叫逻辑函数(Logistic Function)

                               g(Z) = \frac{1}{1+exp(-Z)},                    (公式 6.2)

       如上所述,h_{\theta}(x^{(i)})可看作是样本x^{(i)}为恶性肿瘤的概率,可设定阈值为0.5,即超过50%的可能性则预测其为恶性肿瘤。则有 h_{\theta}(X) >= 0.5, y= 1, h_{\theta}(X) < 0.5, y= 0

      g(Z)即为sigmod()函数,其定义域为全体实数,值域为[0,1]其函数图像如下图6-2:

图像1
图像6-2 sigmod()函数

   

三,决策边界

假设函数的定义虽然有些突兀,但我们可以从图像上观察其正确性。假设有数据样本如下图像6-3所示,假设函数为h_{\theta}(X)=g(\theta_{1} *x_1 +\theta_{2} *x_2 -3 ),最终可训练出模型h_{\theta}(X)=g(x_1 +x_2 -3 )。将方程x_{1} + x_{2} - 3=3的图像与数据合在一起即可得到图像6-3。

图像6-3  决策边界1

由此可看出, 假设函数h_{\theta}(X)=g(\theta ^{T} X)\theta ^{T} X = 0所对应的方程即为划分不同类别的分割线,我们将其称为决策边界(decision boundary)

当数据如图像6-4中所示,无法找到线性的决策边界时,只要其有可分的边界,即可寻找相应的方程\theta ^{T} X = 0,同样可以正确分类。需要注意的是,训练过程中根据样本训练而得出的是参数向量\theta,而不是决策边界。

图像6-4 决策边界2

四,损失函数

由于假设函数和问题的变化,原先适用于线性回归的均方差损失函数:

                                                   J(\theta) = \frac {1 } {2m } \sum_{i=1}^{m} (h_{\theta}(x^{(i)}) - y^{(i)})^2                (公式2.2)

已经不再适用于求解最优模型。因为在该问题中,其会有许多局部最优解来干扰问题求解,即函数非凸,难以最优化。因为假设函数即可看为一个概率函数,则可通过极大似然估计法来得到的对数损失函数(logarithmic loss),具体有:

           J(\theta) = \frac {1}{m} \sum_{i=1}^{m} (-log(h_{\theta}(x^i)))^{y^i}(-log( 1 - h_{\theta}(x^i) ) )^{(1-y^i)})           (公式6.3)

五,梯度下降法 

将 h_{\theta}代入J(\theta)中再利用梯度下降法求偏导可得:

            \theta_{j} = \theta_{j} - \alpha \sum ( h_{\theta}(x^{i}) - y^{i})x^{i}_{j}                                                      (公式 6.4)

        其中i = {1,2,....,m}, j = {0,1,2,....,N}              

即逻辑回归的梯度下降法表达式与线性回归的完全一致,只有假设函数不同。

    结合逻辑函数,对数损失函数以及梯度下降法,即是可求解相应的二分类问题的逻辑回归算法(Logistics Regression)。稍微提一下,逻辑回归中的回归是由于历史问题的遗留的,该算法只适合求解分类问题,不适合应用于回归问题。

六,高级训练方法的使用

除了梯度下降法外还有很多其他的算法可用来训练模型参数,即使梯度下降法也有很多改进变形。到遇到训练问题时,可以尝试使用其他更好的方法,喜欢挑战的同学可以尝试自己去理解,而一般而言只要掌握相应的库函数调用即可。

七,多分类问题

      当数据标签不止两种,而是有N(N>2)种时,我们可为每个类别单独训练一个二分类回归模型(如逻辑回归),计算其在属于各个类别 的可能性(概率),选可能性最大的类别为其类别标签。即:

          h_{\theta}^{i}(x) = p ( y= i | x,\theta ) i = (1, 2, ....., N)                                (公式6.5.1)

         Y = max(h_{\theta}^{i}(x))                                                                    (公式6.5.2)

八,总结

  • 本章主要介绍了分类问题,并着重讲解了逻辑回归算法来求解二分类问题,最后并将其扩展到解决多分类问题。
  • 分类问题的具体流程与求解回归问题类似,只是假设函数以及损失的计算不同。
  • 逻辑回归中相应的数学推倒比较复杂,最好的自己手推,有时间专门讲解。

       

       

         

发布了18 篇原创文章 · 获赞 2 · 访问量 725

猜你喜欢

转载自blog.csdn.net/weixin_41542958/article/details/104021870