当前位置: 首页 > article >正文

机器学习--逻辑回归

逻辑回归

前情提要:线性回归

关于分类 C l a s s i f i c a t i o n Classification Classification

  在逻辑回归中,我们只讨论 y ∈ { 0 , 1 } y\in\{0, 1\} y{0,1} 的情况。其中 1 1 1 表示 p o s i t i v e    c l a s s positive \; class positiveclass 0 0 0 表示 n e g a t i v e    c l a s s negative \; class negativeclass

对线性回归进行修改

  在线性回归中,我们有 h ( x ) = w T x h(x) = w^Tx h(x)=wTx(这里写的是增加了 x 0 ( i ) x^{(i)}_0 x0(i) w 0 w_0 w0 的),而在逻辑回归中,我们希望 h ( x ) ∈ [ 0 , 1 ] h(x) \in [0, 1] h(x)[0,1],而 h ( x ) h(x) h(x) 的值具体代表着 y = 1 y = 1 y=1 的概率,所以我们需要引入一个函数: s i g m o i d    f u n c t i o n sigmoid \; function sigmoidfunction,也叫 l o g i s t i c    f u n c t i o n logistic \; function logisticfunction

g ( t ) = 1 1 + e − t g(t) = \frac{1}{1 + e^{-t}} g(t)=1+et1

  图像长这样:

在这里插入图片描述

  我们可以看到,这个函数过点 ( 0 , 0.5 ) (0, 0.5) (0,0.5)

  我们考虑把 h ( x ) h(x) h(x) 改成这样:

h ( x ( i ) ) = g ( w T x ( i ) ) = P ( y = 1 ∣ x ; w ) h(x^{(i)}) = g(w^Tx^{(i)}) = P(y = 1 | x ; w) h(x(i))=g(wTx(i))=P(y=1∣x;w)

  如果我们考虑将概率超过 1 2 \frac 12 21 的归为 y = 1 y = 1 y=1 的一类,并把概率小于 1 2 \frac 12 21 的归为 y = 0 y = 0 y=0 的这一类的话,我们会发现一件事:

  1. h ( x ( i ) ) > 1 2 h(x^{(i)}) > \frac 12 h(x(i))>21 g ( w T x ( i ) ) > 1 2 g(w^Tx^{(i)}) > \frac12 g(wTx(i))>21 又因为 g ( t ) g(t) g(t) 单增且过 ( 0 , 1 2 ) (0, \frac 12) (0,21),所以此时 w T x ( i ) > 0 w^Tx^{(i)} > 0 wTx(i)>0
  2. h ( x ( i ) ) ≤ 1 2 h(x^{(i)}) \le \frac 12 h(x(i))21 g ( w T x ( i ) ) ≤ 1 2 g(w^Tx^{(i)}) \le \frac12 g(wTx(i))21 又因为 g ( t ) g(t) g(t) 单增且过 ( 0 , 1 2 ) (0, \frac 12) (0,21),所以此时 w T x ( i ) ≤ 0 w^Tx^{(i)} \le 0 wTx(i)0

  也就是说:

  1. y被判定为 1 1 1 w T x ( i ) > 0 w^Tx^{(i)} > 0 wTx(i)>0
  2. y被判定为 0 0 0 w T x ( i ) ≤ 0 w^Tx^{(i)} \le 0 wTx(i)0

  而在线性回归中 w T x ( i ) w^Tx^{(i)} wTx(i) 是表示我们拟合出来的那条直线(二维的情况下,一下解释也是二维的情况下,高维就类比就行了)。而并且上过高中的都知道, w T x ( i ) > 0 w^Tx^{(i)} > 0 wTx(i)>0 表示的是这条直线上方的半平面部分,而 w T x ( i ) ≤ 0 w^Tx^{(i)} \le 0 wTx(i)0 表示的是这条直线下方的半平面部分。

  也就是说,我们用 w T x ( i ) w^Tx^{(i)} wTx(i) 这条直线将平面分成了两部分,一部分中的点是 y = 1 y = 1 y=1 的点,另一部分是 y = 0 y = 0 y=0 的点。

在这里插入图片描述

构造 c o s t    f u n c t i o n cost \; function costfunction

  同样的,我们考虑和线性回归一样构造一个表示差异程度的函数,然后用 G D GD GD 最小化它就解决了,这里,我们有:

c o s t ( x , y ) = { − ln ⁡ ( h ( x ) ) i f      y = 1 − ln ⁡ ( 1 − h ( x ) ) i f      y = 0 cost(x, y) = \left\{ \begin{array}{} -\ln (h(x)) & if \;\; y = 1 \\ -\ln (1 - h(x)) & if \;\; y = 0 \end{array}\right. cost(x,y)={ln(h(x))ln(1h(x))ify=1ify=0

  也可以写成:

c o s t ( x , y ) = − [ y ln ⁡ h ( x ) + ( 1 − y ) ln ⁡ ( 1 − h ( x ) ) ] cost(x, y) = -\bigg[y\ln h(x) + (1 - y)\ln (1 - h(x))\bigg] cost(x,y)=[ylnh(x)+(1y)ln(1h(x))]

  我们来分类讨论一下:

  1. y = 1 y = 1 y=1 时, h ( x ) → 1 h(x) \rightarrow 1 h(x)1 时, c o s t cost cost 应该趋近于 0 0 0 h ( x ) → 0 h(x) \rightarrow 0 h(x)0 时, c o s t cost cost 应该很大。而 − ln ⁡ x -\ln x lnx 的图像刚好满足这个性质
  2. y = 0 y = 0 y=0 时, h ( x ) → 0 h(x) \rightarrow 0 h(x)0 时, c o s t cost cost 应该趋近于 0 0 0 h ( x ) → 1 h(x) \rightarrow 1 h(x)1 时, c o s t cost cost 应该很大。而 − ln ⁡ ( 1 − x ) -\ln (1-x) ln(1x) 的图像刚好满足这个性质

在这里插入图片描述

  然后我们就有我们的 c o s t    f u n c t i o n cost \; function costfunction

J ( w ) = − ∑ i = 1 m [ y ln ⁡ h ( x ) + ( 1 − y ) ln ⁡ ( 1 − h ( x ) ) ] J(w) = -\sum_{i = 1}^m \bigg[y\ln h(x) + (1 - y)\ln (1 - h(x))\bigg] J(w)=i=1m[ylnh(x)+(1y)ln(1h(x))]

  之后 g d gd gd 就搞定了


http://www.kler.cn/a/309093.html

相关文章:

  • 【Pikachu】目录遍历实战
  • ArcGIS Pro属性表乱码与字段名3个汉字解决方案大总结
  • 数据结构与算法-前缀和数组
  • linux 下查看程序启动的目录
  • uni-app中使用 unicloud 云开发平台③
  • 后端接口返回二进制文件,前端 window.opent预览展示
  • JavaScript如何判断输入的是空格
  • 常见的反爬虫和应对方法
  • 【SQL】数据库详解-标准SQL语句
  • 协同过滤算法商品推荐系统设计与实现
  • 解决ruoyi-vue-pro-master框架引入报错,启动报错问题
  • 毕设开源 基于python的搜索引擎设计与实现
  • 智能 Uber 发票 PDF 合并工具
  • 【乐企-业务篇】乐企开票具体代码实现
  • Java和西门子S7-1200通讯调试记录
  • GC的算法
  • 从基础到高级:模块化RAG技术全览
  • 【云原生监控】Prometheus之Alertmanager报警
  • 线性基速通
  • 哪款宠物空气净化器是除浮毛王者?希喂、范罗士、霍尼韦尔宠物空气净化器实测
  • 爬坑--docker构建容器ssh连接容器环境变量会发生变化
  • Redis的IO模型
  • 计算机网络分层结构解析:OSI与TCP/IP模型
  • Blender渲染太慢怎么办?blender云渲染已开启
  • 在设计开发中,如何提高网站的用户体验?
  • Qt开发技巧(四)“tr“使用,时间类使用,Qt容器取值,类对象的删除,QPainter画家类,QString的转换,用好 QVariant类型