分类算法(Classification algorithms)

逻辑回归(logical regression):

逻辑回归这个名字听上去好像应该是回归算法的,但其实这个名字只是在历史上取名有点区别,但实际上它是一个完全属于是分类算法的。

我们为什么要学习它呢?在用我们的线性回归时会遇到一个很大的问题,就比如一下的图形。

在这里我们把以上的图形进行了我们的线性回归得到了在0.5纵坐标的分界线,在0.5左侧是我们的良性肿瘤而在右边是我们的恶性肿瘤,这时我们得到了我们判断是否是良性肿瘤的方法,但当我们再添加一个数据时。

  

我们会发现我们的线性回归往右边平移了,而判断是否为良性肿瘤的值也往右边移动了,这时我们的模型就会因为我们的数据而发生变化,这很明显不是一个准确的方法,让我们得到我们需要的数据。所以我们需要学习一种叫做逻辑回归的算法。

逻辑函数(sigmoid function)

所以我们要创建一种新的函数。 

这里我们使用了sigmoid函数, 

可以看到我们这个函数,g(z)=\frac{1}{1+e^{-z}},它所得到的函数可以是我们上图所示的样子。(可以自己手动画一下)在无限接近正无穷的地方它还是在缓慢的上升,而在负无穷处它则是无限接近于0。

那我们如何才能写一个逻辑回归函数呢?

第一步:我们的回归函数是f_{w,b}(\vec{x}),它的具体写法是z = \vec{w}\cdot \vec{x}+b.。

第二步:我们sigmoid函数是g(z)=\frac{1}{1+e^{-z}}

第三步:我们把第一个式子代入,也就变成了f_{w,b}(x)=g( \vec{w}\cdot \vec{x}+b)=\frac{1}{1+e^{-( \vec{w}\cdot \vec{x}+b)}}

我们解释一下我们得到的函数,在原来g(z)=\frac{1}{1+e^{-z}}函数中我们知道它的y值在0到1,所以我们输入的x总会得到我们的一个值,而这个值一定在0和1之间,举一个例子。就那我们的判断肿瘤是否是恶性的例子,当我们的值为1时,则肿瘤为恶性肿瘤,当我们的值为0时,则它为良性肿瘤,当我们代入一个值时,y值输出为0.7,那么它就表示你有70%的概率会是恶性肿瘤。那为良性肿瘤的概率则为我们的30%。

这里有几个写法需要我们注意:1.p(y=1)+p(y=0)=1,它指的是我们为1和为0的概率加起来为100%。2.f_{w,b}(\vec{x})=p(y=1|\vec{x};\vec{w},\vec{b}),它代表的意思就是我们的y=1时,我们的概率,而这里的w,b他们代表的只是它们对我们的答案会造成影响。

决策边界(Decision Boundary):

简单来说我们的决策边界就是当我们的逻辑函数曲线,在y值等于0.5时,也就是我们的z=0时,我们可以看看这个图。

也就是 \vec{w}\cdot \vec{x}+b = 0。我们举一个例子。比如得到了以下的图形。

在图中我们的❌指的是我们的好的事物,而⭕️指的是坏的事物,这时,我们要找到我们的决策分界线。

我们得到的数据是f_{w,b}(x)=g( \vec{w}\cdot \vec{x}+b)=g(x1\cdot w1+x2\cdot w2+b),这时我们假设我们的w1=1,w2=1,b=-3。这时我们得到的决策函数也就是x_{1}+x_{2}+b=0,x_{1}+x_{2}=3,这时我们就可以画出完美的决策边界。

在上面就是我们的好事物,下面就是坏事物。这里有一个要强调,我们一般把0.5以上的看作是1,把0.5以下的看作成0。 

当然也有多项式的情况,比如下图。

逻辑函数的成本函数(cost function):

在这个例子里面,我们的判断是否是一个良性肿瘤需要多组训练集,这里在前面几个特征与线性回归类似,而最后一个判断是否是良性或恶性用的是1和0来表示。

我们用原来的线性回归中,使用的成本函数,我们得到的图形将是。凹凸不平的,这让我们用梯度下降时只能取到我们的局部最小值,而不能得到我们的全局最小值。 

所以我们要用一个不一样的成本函数。

我们得到了一个新的成本函数:L(f_{\vec{w},b}(\vec{x}^{(i)}),y^{(i)}) ,它的值和\frac{1}{2}(f_{\vec{w},b}(\vec{x}^{(i)})-y^{(i)})^{2}相同,这个比较难推导,可以自己试一下(不建议)。

这时我们会得到两个对数函数,我们会在1和0时用到不同的函数去进行计算。

我们先看上面那一个方程,我们会发现预测的值越接近于1我们的损失就会越小,而我们接近于0的损失就会变大。同样的道理对于下面拿个方程。 

这里的损失函数,每一个都是一个单独的训练项,而不是一个集合。所以在这里的完整的成本函数写法是:J(\vec{w},b)=\frac{1}{m}\sum_{i=1}^{m}L(f_{\vec{w},b}(\vec{x}^{(i)},y^{(i)})) 

因为在这里我们的\hat{y}不是1就是0,所以我们可以简化我们的式子,那么它就变成了:

L(f_{\vec{w},b}(\vec{x}^{(i)}),y^{(i)})=y^{(i)}log(f_{\vec{w},b}(\vec{x}^{(i)}))-(1-y^{(i)})log(1-f_{\vec{w},b}(\vec{x}^{(i)}))J(\vec{w},b)=-\frac{1}{m}\sum_{i=1}^{m}(y^{(i)}log(f_{\vec{w},b}(\vec{x}^{(i)}))-(1-y^{(i)})log(1-f_{\vec{w},b}(\vec{x}^{(i)})))

很明显它与我们在上面的式子是等价的。它是一种叫做最大似然估计的统计原理。

逻辑回归的梯度下降(gradient descent for logical regression):

在我们得到了我们的成本函数,接下来我们就要进行我们的梯度下降,还是一样的公式。

得到了我们的成本函数的式子:J(\vec{w},b)=-\frac{1}{m}\sum_{i=1}^{m}(y^{(i)}log(f_{\vec{w},b}(\vec{x}^{(i)}))-(1-y^{(i)})log(1-f_{\vec{w},b}(\vec{x}^{(i)})))

然后我们还是用相同的方法进行我们的梯度下降。

{ w_{j}=w_{j}-\alpha \frac{\partial }{\partial w_{j}}J(\vec{w},b) }b=b-\alpha \frac{\partial }{\partial b}J(\vec{w},b)

同样的道理,在这里的w,b的值是同时进行改变的,而没有先后的关系。两个偏导数算完之后我们才可以得到我们在上面的两个我们需要的特征值。

上面这个式子似乎和我们一开始在线性回归中用到的函数似乎是一样的但其实我们的f函数是完全不一样的,我们在我们的线性回归中,我们的函数是:f_{\vec{w},b}(\vec{x})=\vec{w}\cdot \vec{x}+b,而在我们的逻辑回归中我们的函数是sigmoid函数(逻辑函数)。只是在我们算我们的梯度下降时我们用到的公式相同罢了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/734113.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

读书·基于RISC-V和FPGA的嵌入式系统设计·第3章

72.8051单片机的弊端和指令集架构CISC的缺点 76.RV指令集的特征(⭐) 特权架构和特权指令集是相关但不完全相同的概念。 特权架构(Privileged Architecture)指的是计算机体系结构中用于实现特权级操作的硬件和软件机制。特权架构定…

RabbitMQ——死信队列

RabbitMQ——死信队列 死信队列(Dead Letter Queue,DLQ)是 RabbitMQ 中的一种重要特性,用于处理无法被消费的消息,防止消息丢失。 死信的来源 在消息队列中,当消息满足一定条件而无法被正常消费时&#xf…

电商运营常用名词解释

电商运营中的基础名词解释 GMV∶成交总额,含拍下未支付订单金额 ROl:投入产出比,ROl交易额/花费,投入产出比越高越好 uV︰独立访客,统计1天内访问某站点的用户数 PV:访问量,即页面浏览量或点击量。一个顾客浏览了两次…

前端框架的发展历史介绍

前端框架的发展历史是Web技术进步的一个重要方面。从最初的简单HTML页面到现在的复杂单页应用程序(SPA),前端框架和库的发展极大地推动了Web应用程序的构建方式。以下是一些关键的前端框架和库,以及它们的发布年份、创建者和主要特…

java-ssm-jsp的问卷调查系统的设计与实现

java-ssm-jsp的问卷调查系统的设计与实现 获取源码——》公主号:计算机专业毕设大全

抖音商家活动信息未在商详展示会有哪些处罚?

一、什么是「违规玩法-活动信息未在商详展示」? 什么是「违规玩法-活动信息未在商详展示」?由于当前平台未提供官方营销工具(例如免单、返现等),但是创作者在进行商品推广(不仅限口播、画面、标题文案等)宣传该类营销玩法,未在商品商详页展示说明&…

第十五章垃圾回收相关算法

第十五章垃圾回收相关算法 文章目录 第十五章垃圾回收相关算法1. 垃圾标记阶段的算法之引用计数算法1.1 垃圾标记阶段:对象存货判断1.2 方式一:引用计数算法循环引用 1.3 小结 2. 垃圾标记阶段的算法之可达性分析算法2.1 方式二:可达性分析&a…

Qt 定时器事件

文章目录 1 定时器事件1.1 界面布局1.2 关联信号槽1.3 重写timerEvent1.4 实现槽函数 启动定时器 2 定时器类 项目完整的源代码 QT中使用定时器,有两种方式: 定时器类:QTimer定时器事件:QEvent::Timer,对应的子类是QTi…

sys内建模块

一、概述 sys 模块是 Python 标准库中的一个内置模块,提供了与 Python 解释器及其运行时环境交互的函数和变量。它允许你访问和操作与解释器状态相关的信息 1、需要导包 不会自动导入,需要显示的将sys模块导入 import sys 二、常用方法 1、sys.exit(…

Linux命令-cp命令(将源文件或目录复制到目标文件或目录中)

说明 cp命令 用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录&am…

HttpURLConnection详解及使用

HttpURLConnection 请求响应流程 设置连接参数的方法 setAllowUserInteractionsetDoInputsetDoOutputsetIfModifiedSincesetUseCachessetDefaultAllowUserInteractionsetDefaultUseCaches 发送URL请求 建立实际连接之后,就是发送请求,把请求参数传到…

docker-swarm集群搭建

目录 一、docker swarm介绍 二、部署docker 三、搭建集群 3.1 工作模式 3.2 将当前主机作为leader 3.3 将第二个节点slave1加入到worker 3.4 将第三个节点slave2也加入到worker 3.5 将第四个节点(slave3)加入到manager 四、总结 一、docker swarm介绍 Docker Swarm…

python图像处理,opencv笔记汇总

基本图像处理 翻转 使用python翻转图片 按比例缩放,拼接 【opencv】指定宽或高按比例缩放图片 & 拼接图片 待更新

java中{ }对变量可用scope的限制

改变变量定义位置可解决 y定义在{}内,属于局部变量,只能再在{}其中有效使用,因此第二个输出报错。 将int y6放在main()后,{}前可解决

Toyota Programming Contest 2024#3(AtCoder Beginner Contest 344)(A,B,C,D,E,F)

比赛链接 这场偏简单,C是暴力,D是变种背包,E是map链表,F是四维dp。DF出的很好,建议做。 A Spoiler 题意: 给你一个由小写英文字母和 | 组成的字符串 S S S。 S S S 中保证包含两个 |。 请删除两个|之间…

浅析开源内存数据库Fastdb

介绍: Fastdb是免费开源内存数据库,其优秀的性能,和简洁的C代码,让我学习使用过程中收益颇多,但是国内中文相关研究的文章相当稀少,外文我查询相当不便。有兴趣的朋友可以通过以下网站访问:Mai…

《vtk9 book》 官方web版 第3章 - 计算机图形基础 (3 / 6)

3.8 演员几何 我们已经看到了光照属性如何控制演员的外观,以及相机如何结合变换矩阵将演员投影到图像平面上。剩下的是定义演员的几何形状,以及如何将其定位在世界坐标系中。 建模 计算机图形学研究中的一个重要主题是建模或表示物体的几何形状。…

一劳永逸的方法解决:LNK1168无法打开 xxx.exe 进行写入 报错问题

这种错误的产生原因: 运行程序退出不是按正常流退出,是按窗口右上角的 “X” 来关闭程序,但是后台的xxx.exe控制台程序还在运行;修改程序的代码后再运行,就会报LNK1168的错误; 报错示例: 解决方…

欢迎来到实力至上教室-名言(解释来自文心一言)

Il ne faut pas soffenser que les autres nous cachent la vrit,puisque nous nous la cachons si souvent nous-mmes. 我们不必为他人隐藏本性而感到愤怒,因为你自己也在隐藏本性。 解释-- 这句话提醒我们要以宽容和理解的态度对待他人。当我们意识到自己也在隐藏…

文本生成视频:从 Write-a-video到 Sora

2024年2月15日,OpenAI 推出了其最新的文本生成视频模型——Sora。Sora 能够根据用户的指令生成一分钟长度的高质量视频内容。这一创新的发布迅速在社会各界引发了广泛关注与深入讨论。本文将围绕本实验室发表于SIGGRAPH AISA 的 Write-a-video和 Sora 展开&#xff…