zoukankan      html  css  js  c++  java
  • 机器学习模型之逻辑回归

    1、逻辑回归模型

    关于逻辑回归,可以看做是感知机的加强版本,感知机是线性的分类器,逻辑回归在感知机的基础上加上了一个sigmoid函数,将其变成了一个非线性的分类器,其效果要优于感知机。逻辑回归公式如下

    [ f(x) = frac {1} {1 + exp -(wx+b)} ag{1} ]

    其中(w)(x)均为向量。(f(x))可以理解为范围在[0,1]的概率值,若(f(x) > 0.5)那么可以将这个类归为正类,若(f(x) < 0.5)那么,将这个类归为负类。

    2、逻辑回归策略

    那么逻辑回归的损失函数是什么呢?逻辑回归公式如下

    [ prod_{i=1}^{n} f(x_{i}) ^ {y_{i}} (1 - f(x_{i}))^{1-y_{i}} ag{2} ]

    其中(f(x_{i}))为预测值,(y_{i})为真实值,当真实值为(y_{i} = 1)时,我们就最大化(f(x_{i})),即我们希望这个输出值变大,当真实值为(y_{i} = 0)时,我们希望最大化(1 - f(x_{i})),即我们希望将(f(x_{i}))的输出值尽可能变小。

    3、逻辑回归算法

    我们的目标是最大化式子(2),那么我们可以对他进行转换,最小化式子(2)的负数,并取(log)

    [ L(w,b) = - log prod_{i=1}^{n} f(x_{i}) ^ {y_{i}} (1 - f(x_{i}))^{1-y_{i}} \ = - log sumlimits_{i=1}^{n} y_{i} f(x_{i}) + (1-y_{i})(1-f(x_{i})) ag{3} ]

    首先给出sigmoid的求导公式

    [ frac {partial sigmoid (x)}{partial x} = sigmoid (x) * (1- sigmoid (x)) ag{4} ]

    接下来,我们利用优化公式对(L(w,b))进行求导,首先对(w)进行求导

    [ frac {partial L(w,b)}{partial w} = sumlimits_{i=1}^{n} y_{i} * frac {1}{f(x_{i})} * f(x_{i}) * (1 - f(x_{i})) * x_{i} - (1-y_{i}) * frac {1} {1-f(x_{i})} * f(x_{i}) * (1 - f(x_{i})) * x_{i} \ = sumlimits_{i=1}^{n} x_{i}y_{i}(1-f(x_{i})) - x_{i}(1-y_{i})*f(x_{i}) \ = sumlimits_{i=1}^{n} x_{i}y_{i} - x_{i}y_{i}f(x_{i}) - x_{i}f(x_{i}) + x_{i}y_{i}f(x_{i}) \ = sumlimits_{i=1}^{n} (y_{i} - f(x_{i})) * x_{i} ag{5} ]

    接下来对(b)求导,公式基本上和(5)相类似,这里,我们直接给出结果。

    [ frac {partial L(w,b)}{partial b} = sumlimits_{i=1}^{n} y_{i} - f(x_{i}) ag{6} ]

    最后,我们可以进行参数更新。

    [ w^{*} = w - alpha frac {partial L(w,b)}{partial w} \ b^{*} = b - alpha frac {partial L(w,b)}{partial b} ]

  • 相关阅读:
    java数据库连接池dbcp的使用
    图片轮显效果大全
    W5500问题集锦(持续更新中)
    Gamma校正及其OpenCV实现
    GlusterFS源代码解析 —— GlusterFS 日志
    cocos2dx 以子弹飞行为例解说拖尾效果类CCMotionStreak
    leetcode__Convert Sorted List to Binary Search Tree
    昨天面试新浪 java试题
    linux概念之性能调优
    Java实现 黑洞数
  • 原文地址:https://www.cnblogs.com/stephen-goodboy/p/12882720.html
Copyright © 2011-2022 走看看