zoukankan      html  css  js  c++  java
  • 吴恩达机器学习笔记三_Logistic Regression

    Logistic Function

    Logistic Function 针对某一类问题往往会比线性回归更加有效。如下图:

    假如使用线性回归处理的话,针对离散值,如上图最右边一点,会导致线性函数向X轴正向倾斜,预测结果出现较大的改动。这个就不是一类很好的分类函数了,因为它对离散值敏感。

    通过分析,我们可以知道它是一个二元问题。针对二元问题可以使用特殊的模型,如下:

    这个Logistic Function或另称Sigmoid Function,与之前所说的线性回归方程最大的不同就在:(0<=h_ heta(X)<=1)。从曲线中也可以看出,它对之前提到的离散值不敏感,不容易出现过拟合的情况。

    下面是Logistic Function的函数:

    [g(z)=frac{1}{1+e^{-z}} ]

    Decision Boundary

    这里记录Decision Boundary,即决策边界,算是一个新知识点。

    个人的理解是,Decision Boundary存在于在分类问题中,即它用于划分类与类之间的分界线;而线性回归问题更偏向预测分析,这应该是两类问题最大的不同点。如下:

    可以看到,( heta)的值决定了边界的位置。对于非线性的分类问题,我们还可以通过增加( heta)的维度来拟合。

    从上图也可以看出,( heta)的维度越高,它能拟合的形状越细腻。但也容易猜想到,它的维度越高,对计算量和数据量的要求也更高,同时也更容易出现过拟合的问题。

    Cost Function

    Logistic Regression问题中,对分类函数参数( heta)的选择也是通过Cost Function最小化来实现的。但如果直接采用线性回归里的形式,就会出现多个局部最优点的问题:

    为了避免出现这种情况,这里的Cost Function采用以下形式:

    大概是因为代价函数是对数形式的,所以Logistics Regression又被翻译为对率回归,当然,它本质还是一个二元分类问题。

    这里简要记录以下Logistics Function和Cost Function:

    [J( heta) = frac{1}{m}sum_{i=1}^mCost(h_ heta(x^{(i)}), y^{(i)}) ]

    [Cost(h_ heta(x), y) = -ylog(h_ heta(x)) - (1-y)log(1-h_ heta(x)) , y = (0, 1) ]

    [h_ heta(x) = frac{1}{1+e^{- heta T x}} ]

    其中第一个函数就是代价函数最小化所使用的梯度下降函数,形式上和线性回归问题大概类似。

    Advanced Optimization

    这里NG列举了其他方法来实现代价函数的最小化。他的建议是,尽可能地使用各工具包中的优化方法,而不是自己去写。最近也在学数值分析,确实一个好的优化方法在实现原来目标的情况下,可以减少大量运算时间和内存。

    引用参考

    Coursera机器学习笔记(五) - Logistic Regression

  • 相关阅读:
    在mac系统上安装Eclipse,编写java程序
    显示和隐藏Mac隐藏文件的终端命令
    iOS中UIKit——UIDataDetectors(数据检测器)它将电话、邮件、网址等变为链接
    C语言中的关键字
    IOS基础——静态方法(类方法)和实例方法
    IOS基础——alloc、init和new方法
    IOS基础——实例变量四种范围类型
    iOS中UIKit——UIFont得到iOS设备上的系统字体
    iOS中UIKit——UIButton设置边框
    IOS中获取屏幕尺寸
  • 原文地址:https://www.cnblogs.com/ChanWunsam/p/9743445.html
Copyright © 2011-2022 走看看