美文网首页
逻辑斯蒂回归

逻辑斯蒂回归

作者: 陈文瑜 | 来源:发表于2019-10-08 16:45 被阅读0次

    提出背景

    • 解决分类问题

    尽管叫回归,其实解决的是分类问题

    • 举例说明
      判定 是否为恶性肿瘤,是一个二分类问题
    • 引入sigmoid函数
      y = \frac 1 {1+e^{-x}}
      sigmod函数.png

    将所有的结果值 映射到一个概率区间 概率大于0.5就是恶性肿瘤,小于0.5就不是恶性肿瘤 。公式的x的值,是预测值,x大于0越大,恶性肿瘤概率就越大,x小于0,越小,非恶性肿瘤的概率就越大。

    • 将输入特征 和 预测函数 结合
      原线性回归的预测函数 h_\theta(x) = \theta^Tx ,令 z(x) = \theta^T x ,则逻辑回归的预测函数为:
      h_\theta(x) = g(z) =g(\theta^T x) = \frac1{1+e^{-\theta^Tx}}

    • 用概率论公式表示
      h_\theta(x) = P(y=1|x,\theta) 这是一个条件概率
      对于二分类问题
      P(y=1|x,\theta) + P(y=0|x,\theta) = 1

    • 判定边界

    就是 区分 类别 的线/面 ,可以是直线、圆、曲线。逻辑回归的 本质其实是在找判定边界

    • 线性可分栗子
      分类图: h_{\theta}(x) = g(\theta_0 + \theta_1x_1 +\theta_2x_2)
      二分类.png

    h_{\theta}(x) >=0 \quad y=1 \quad else \quad y=0 ,一个特例:h_{\theta} =0 时,概率为0.5也就是不太好判断是不是了。

    • 非线性 判断边界举例
      h_{\theta}(x) = g(\theta_0 + \theta_1x_1 +\theta_2x_2+\theta_3x_1^2+\theta_4x_2^2)

    如果 \theta = [-1,0,0,1,1] 则其边界就是个圆,大于0则是圆外,小于0为圆内,当然我们也可以做出 更 复杂的模型

    • 损失函数

    经过sigmod 激活后的函数,如果继续使用 线性回归模型的 损失函数,最终很可能会导致无法通过迭代找到 损失函数最小值。

    • 专为 sigmod 打造的损失函数
      Cost(h_{\theta}(x),y)= \begin{equation} \left\{ \begin{array}{lr} -log(h_{\theta}(x)), \quad if \quad y=1 \\ -log(1-(h_{\theta}(x)), \quad if \quad y=0 \end{array} \right. \end{equation}
      log函数.png

    理解:结果是1,预测值如果是0,则损失会非常大,预测值是1,损失就会很小。选用这个函数作为损失函数,很大原因是为了好算哈。

    • 合并公式
      Cost(h_{\theta}(x),y) = -ylog(h_\theta(x))-(1-y)log(1-h_\theta(x))

    • 所有样本 损失 函数的均值
      J(\theta) = - \frac1{m}[\sum_{i=1}^m y^{(i)}log(h_\theta(x^{(i)}))+(1-y^{(i)})log(1-h_\theta(x^{(i)}))]

    梯度下降法

    • 迭代使得损失函数达到最小值
      \theta_j := \theta_j -\alpha \frac {\partial}{\partial \theta_j}J(\theta)

    注意: 逻辑回归中 h_\theta(x) = \frac 1 {1+e^{-\theta^T x}} ,线性回归中 h_\theta(x) = \theta^Tx

    多元分类

    • 多元分类问题可以拆分为二分类问题进行求解

    正则化

    • 线性回归模型正则化
      J(\theta) = \frac 1{2m} \sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})^2 + \lambda \sum_{j=1}^n \theta_j^2
    • 逻辑回归模型正则化
      J(\theta) = - \frac1{m}[\sum_{i=1}^m y^{(i)}log(h_\theta(x^{(i)}))+(1-y^{(i)})log(1-h_\theta(x^{(i)}))] + \frac{\lambda}{2m} \sum_{j=1}^n \theta_j^2
    • L1范式,L2范式

    \lambda越小,越容易出现过拟合,\lambda越大,越容易出现欠拟合。L1参数作为正则项,会是模型参数稀疏化,只留下几个关键的特征,就容易看到因果关系。而L2范数作为正则项,则会使模型的特征对预测值都有少量的贡献,避免模型过拟合。所以一般情况,L1范数作为正则项,更多的是一个分析工具,而适合用来对模型求解。因为它会把不重要的特征直接去除。大部分的情况下解决过拟合问题,还是选择L2范数作为正则项,这也是scikit-learn里的默认值。

    相关文章

      网友评论

          本文标题:逻辑斯蒂回归

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