【机器学习】--- 逻辑回归算法

news2024/11/25 6:51:48

目录

逻辑回归基础

1. 概述

逻辑回归是机器学习的一种分类算法,主要运用于二分类问题。将线性回归的结果,映射到不同的类别之中。算法简单而高效,实际广泛运用。

简单来说:逻辑回归 = 线性回归 + S i g m o i d Sigmoid Sigmoid函数(分类函数)

2.优点与缺点

优点:

  1. 简单而且容易实现。逻辑回归的模型相对简单,只需要对输入特征进行线性组合,然后通过 S i g m o i d Sigmoid Sigmoid函数进行分类预测。
  2. 计算效率高。逻辑回归的计算量相对较小,可以处理大规模的数据集。
  3. 可解释性强。逻辑回归的结果可以解释为某个事件发生的概率,比较直观易懂。
  4. 可以在线学习。逻辑回归可以通过梯度下降算法进行在线学习,适用于增量学习和实时预测。

缺点:

  1. 对特征的依赖性强。逻辑回归对特征之间的依赖性较为敏感,如果特征之间存在较强的相关性,会导致模型效果较差。
  2. 对异常值较为敏感。逻辑回归对异常值较为敏感,可能会影响模型的预测结果。
  3. 需要大量的特征工程。为了提高逻辑回归的性能,通常需要进行大量的特征工程,包括特征选择、特征变换等。
  4. 无法处理非线性问题。逻辑回归是一种线性模型,无法处理非线性问题,需要通过添加多项式特征或者引入核函数来解决非线性问题。

逻辑回归的理论解释

1.问题背景

现在你有一份数据,里面有病人的肿瘤大小(tumor size)和是否是恶性肿瘤的判断(malignant?),把这份数据可视化,用1来表示恶性肿瘤,0表示良性,这样你就获得了下面这张图。
在这里插入图片描述
根据上面的图你可以简单的总结一个函数,如红线所示,来帮助你判断肿瘤是否恶性,现在又来了一个病人,他的肿瘤大小用紫色点表示,根据我们总结的函数,判断出有70%的概率肿瘤是恶性,但是你不能直接输出0.7,只能判断是或否,因此你会输出1(yes),这一条你总结出来的函数就是 S i g m o i d Sigmoid Sigmoid函数
在这里插入图片描述

2. S i g m o i d Sigmoid Sigmoid函数

也称为逻辑函数,具体函数定义如下
g ( z ) = 1 1 + e − z g(z) = \frac{1}{1+e^{-z}} g(z)=1+ez1

x坐标是z的值,范围是负无穷到正无穷
值域是(0,1)
图像如下
在这里插入图片描述

那么 z z z的值是由谁决定的?还记得文章一开头讲的:逻辑回归 = 线性回归 + S i g m o i d Sigmoid Sigmoid函数(分类函数), z z z的值是从线性回归中得来的
在这里插入图片描述
z = w T x + b z = w^Tx+b z=wTx+b
逻辑回归函数表达
f w , b ( x ) = g ( z ) = g ( w T x + b ) = 1 1 + e − ( w T x + b ) f_{w,b}(x) = g(z) = g(w^Tx+b) = \frac{1}{1+e^{-(w^Tx+b)}} fw,b(x)=g(z)=g(wTx+b)=1+e(wTx+b)1

3.决策边界

函数输出0还是1,取决于 f w , b ( x ) ≥ 0.5 f_{w,b}(x) \ge 0.5 fw,b(x)0.5,若成立,那么 y ^ = 1 \hat{y} =1 y^=1,反之 y ^ = 0 \hat{y}=0 y^=0

下图是一组数据集,蓝色圆圈 y ^ \hat{y} y^输出为0,红色交叉 y ^ \hat{y} y^输出为1,经过逻辑回归可以获得其回归函数
在这里插入图片描述
在这里插入图片描述
根据 S i g m o i d Sigmoid Sigmoid函数, z = 0 z=0 z=0点就是两个类别的分隔点

  • z = x 1 + x 2 − 3 = 0 z = x_1 +x_2 -3 = 0 z=x1+x23=0
  • x 1 + x 2 = 3 x_1 +x_2 = 3 x1+x2=3

在这里插入图片描述
那么得到的这条线,就叫做决策边界,只要点出现在决策边界下方,就输出0,出现在决策边界上方,就输出1

在这里插入图片描述
在这里插入图片描述

当然,决策边界也不一定是直线,也可以是曲线

  • z = x 1 2 + x 2 2 − 1 z = x_1^2 +x_2^2 -1 z=x12+x221
  • x 1 2 + x 2 2 = 1 x_1^2 +x_2^2 = 1 x12+x22=1

4.损失函数

L ( f w , b ( x ( i ) ) , y ( i ) ) = { − l o g ( f w , b ( x ( i ) ) ) , if  y ( i ) = 1 − l o g ( 1 − f w , b ( x ( i ) ) ) , if  y ( i ) = 0 L(f_{w,b}(x^{(i)}),y^{(i)})= \begin{cases} -log(f_{w,b}(x^{(i)})), & \text {if $y^{(i)} = 1$} \\\\ -log(1-f_{w,b}(x^{(i)})), & \text{if $y^{(i)}=0$} \end{cases} L(fw,b(x(i)),y(i))= log(fw,b(x(i))),log(1fw,b(x(i))),if y(i)=1if y(i)=0

or

L ( f w , b ( x ( i ) ) , y ( i ) ) = − y ( i ) l o g ( f w , b ( x ( i ) ) ) + ( 1 − y ( i ) ) l o g ( 1 − f w , b ( x ( i ) ) ) L(f_{w,b}(x^{(i)}),y^{(i)}) = -y^{(i)}log(f_{w,b}(x^{(i)}))+(1-y^{(i)})log(1-f_{w,b}(x^{(i)})) L(fw,b(x(i)),y(i))=y(i)log(fw,b(x(i)))+(1y(i))log(1fw,b(x(i)))
以上两条式子完全等价
那么代价函数就是每一个点的损失累加起来
J ( w , b ) = 1 m ∑ i = 1 m L ( f w , b ( x ( i ) ) , y ( i ) ) J(w,b) = \frac{1}{m}\sum_{i=1}^m L(f_{w,b}(x^{(i)}),y^{(i)}) J(w,b)=m1i=1mL(fw,b(x(i)),y(i))
使用梯度下降的方法,找到代价函数的1阶导最小值即可,有关梯度下降的介绍可以看线性回归中的介绍
【机器学习】-- 线性回归算法

正则化

为了防止模型出现过拟合的问题,出现原本数据集没有的特征,可以采取正则化的方法,来降低高次方项的系数
在这里插入图片描述
正则化就是在计算代价函数时,增加惩罚项,来逼迫模型减小高次方项的系数

1.L1正则化

J ( w , b ) = 1 m ∑ i = 1 m L ( f w , b ( x ( i ) ) , y ( i ) ) + ∑ λ m ∣ w i ∣ J(w,b) = \frac{1}{m}\sum_{i=1}^m L(f_{w,b}(x^{(i)}),y^{(i)}) +\sum\frac{\lambda}{m}|w_i| J(w,b)=m1i=1mL(fw,b(x(i)),y(i))+mλwi
λ \lambda λ表示惩罚力度,过高可能会导致欠拟合,过低可能会导致过拟合,因此通常要搭配网格搜索方法来寻找最佳的惩罚力度

2.L2正则化

J ( w , b ) = 1 m ∑ i = 1 m L ( f w , b ( x ( i ) ) , y ( i ) ) + ∑ λ 2 m w i 2 J(w,b) = \frac{1}{m}\sum_{i=1}^m L(f_{w,b}(x^{(i)}),y^{(i)}) +\sum\frac{\lambda}{2m}w_i^2 J(w,b)=m1i=1mL(fw,b(x(i)),y(i))+2mλwi2

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

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

相关文章

day-52 三数之和

思路 双指针&#xff1a;确定最小的那个数&#xff08;i0<i<nums.length-2&#xff09;&#xff0c;剩下两个数可以利用双指针的思想。当最小的那个数大于零时&#xff0c;可以直接返回&#xff0c;因为后面的不可能还有满足题意的组合。 解题过程 为了所有满足题意的组…

async、await、promise异步操作详解

一、async、await、Promise使用介绍 当然&#xff01;在 TypeScript 中&#xff0c;Promise 的使用可以涉及多个方面&#xff0c;包括基础用法、类型系统、异步操作的错误处理以及高级用法等。下面我会详细讲解这些内容。 1. Promise 的基本概念 Promise 是一种用于处理异步操…

StorageSync数据缓存API

uni.setStorageSyncs参数:将 data 存储在本地缓存中指定的 key 中&#xff0c;会覆盖掉原来该 key 对应的内容&#xff0c;这是一个同步接口。 uni.setStorageSync函数里面写两个参数,分别是key和值,两个参数名称可以随便取,如果有同名的key,那么后面key的值会覆盖掉前面key的值…

git cz 规范化 git commit 格式

git cz 规范化 git commit 格式 npm install git-cz --save-devnpm install commitizen --save-devnpm install cz-customizable --save-dev // 这是package.json自动生成的 "config": {"commitizen": {"path": "./node_modules/cz-custo…

《OpenCV计算机视觉》—— 图像金字塔

文章目录 什么是图像金字塔&#xff1f;一、定义与基本原理二、主要类型三、构建过程四、应用领域 图像金字塔中的下采样和上采样一、下采样&#xff08;Downsampling&#xff09;二、上采样&#xff08;Upsampling&#xff09;三、总结 代码实现 什么是图像金字塔&#xff1f;…

[进阶]面向对象之多态(二)

文章目录 多态调用成员的特点多态的优势和弊端 多态调用成员的特点 变量调用:编译看左边,运行也看左边方法调用:编译看左边,运行看右边 多态的优势和弊端 优势&#xff1a; 在多态形式下&#xff0c;右边对象可以实现解耦合&#xff0c;便于扩展和维护定义方法的时候&…

【MySQL】查询表中重复数据、模糊查询列信息、快速copy表数据(1)

一、SQL查询重复的数据&#xff1a; 1、SQL格式&#xff1a; Select * From 数据表 Where 重复记录字段 in ( select 重复记录字段 From 数据表 Group By 重复记录字段 Having Count(重复记录字段)>1) 2、举例&#xff1a; 在这个patient_member_info表中&#xff0c;我们…

kkFileView PDF Image Mode Preview BUG

kkFileView PDF & Image Mode Preview BUG lazyload.js officePicture.ftl pdf.ftl kkFileView getCorsFile?urlPath 会触发SSRF漏洞 kkFileView SSRF-CSDN博客 commonHeader.ftl initWaterMark() 修改代码的工作量&#xff0c;主要是先部署项目&#xff0c;解…

2023年408真题计算机网络篇

https://zhuanlan.zhihu.com/p/6954228062023年网络规划设计师上午真题解析TCP流量计算_哔哩哔哩_bilibili 1 1在下图所示的分组交换网络中&#xff0c;主机H1和H2通过路由器互联&#xff0c;2段链路的数据传输速率为100 Mb/s、时延带宽积 &#xff08;即单向传播时延带宽&am…

计算机毕业设计 家校互联管理系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

【Linux实践】实验一:Linux系统安装与启动

【Linux实践】实验一&#xff1a;Linux系统安装与启动 实验目的实验内容实验步骤及结果1. 下载VMware2. 下载 Linux 操作系统3. 在VMware中安装Ubuntu系统4. 配置Ubuntu系统5. 关机 实验目的 1.掌握Linux系统的安装过程和简单配置方法。 2.掌握与Linux相关的多操作系统的安装方…

centos挂载fat32和ntfs文件系统u盘

centos挂载u盘 一、 挂载fat32文件系统u盘1. 查看u盘的文件系统2. 查看系统是否识别到u盘3. 挂载fat32文件系统u盘 二、挂载ntfs文件系统u盘1. 检查u盘文件系统&#xff08;忽略&#xff09;2. 查看系统是否识别到u盘3. 挂载ntfs文件系统3.1. 下载ntfs-3g组件3.2. 挂载u盘 一、…

嵌入式day42

framebuffer&#xff1a;帧缓冲、帧缓存 Linux内核为显示提供的一套应用程序接口&#xff08;驱动内核支持&#xff09; 分辨率&#xff1a;像素点的总和 像素点&#xff1a; 显示屏&#xff1a;800*600&#xff08;横向有800个像素点&#xff0c;纵向有600个像素点&#x…

【笔记】1.1 拉伸力-伸长(延伸)曲线和应力-应变曲线

文章目录 拉伸力-伸长&#xff08;延伸&#xff09;曲线低碳钢的拉伸力-伸长&#xff08;延伸&#xff09;曲线公称应力公称应变真应力真应变公称应力和真应力、公称应变和真应变的关系 应力-应变曲线公称应力-公称应变曲线真应力-真应变曲线 拉伸力-伸长&#xff08;延伸&…

Unity1 Prefab

修改预设体 进入预设体面板来改 在Hierarchy中可以给预制体添加对象 第一种方法&#xff1a;添加了之后把Hierarchy中的预制体拖到Project中的预制体上 就可以修改原本的预制体 第二种方法&#xff1a;添加了之后在inspector中 点revert 就是重置所有预制体 添加的就没有…

Docker基本管理--Dockerfile镜像制作(Docker技术集群与应用)

容器端口映射&#xff1b; 容器间通信&#xff1b; 容器数据卷&#xff1b; DockerFile; 容器端口映射: 实验环境&#xff1a;紧接着之前的快照&#xff0c;将该文件夹拉取进去&#xff1b; 然后执行导入的脚本&#xff0c;会将该目录下所有打包好的镜像文件导入进入。 然后进…

containerd二进制安装

文章目录 安装版本&#xff08;截止2024年9月10日&#xff09;方式1&#xff1a;yum安装&#xff08;不推荐&#xff09;设置主机名设置IP获取阿里YUM源查询containerd安装验证与启动服务测试命令 方式2&#xff1a;二进制安装&#xff08;推荐&#xff09;安装之前先了解conta…

游戏创作的梦想之地!EE GAMES 创作者社区上线,VipSkill产学研结合迈开重大步伐

&#xff25;&#xff25; &#xff27;&#xff21;&#xff2d;&#xff25;&#xff33; 官网 EE GAMES创作者社区 是一个怎样的平台&#xff1f; EE GAMES 创作者社区&#xff0c;是专注于链接每一位游戏创作者&#xff0c;提供全方位服务的游戏领域垂类社区。 这里不仅…

信号完整性仿真中关于铜箔粗糙度的三篇文献

首先放文献&#xff1a; Paul G. Huray. "Surface Roughness", in The Foundations of Signal Integrity. John Wiley & Sons, Inc., Hoboken, New Jersey. 2009. Paul G. Huray. "Impact of Copper Surface Texture on Loss: A model That Works", …

算法工程师重生之第三天( 链表理论基础 移除链表元素 设计链表 反转链表 )

参考文献 代码随想录 一、 链表理论基础 什么是链表&#xff0c;链表是一种通过指针串联在一起的线性结构&#xff0c;每一个节点由两部分组成&#xff0c;一个是数据域一个是指针域&#xff08;存放指向下一个节点的指针&#xff09;&#xff0c;最后一个节点的指针域指向nu…