机器学习——逻辑回归(学习笔记)

news2024/9/22 18:20:37

目录

一、认识逻辑回归

二、二元逻辑回归(LogisticRegression)

1. 损失函数

2. 正则化

3. 梯度下降

4. 二元回归与多元回归

三、sklearn中的逻辑回归(自查)

1. 分类

2. 参数列表

3. 属性列表

4. 接口列表

四、逻辑回归优点

五、学习中产生的疑问,以及文心一言回答

1. 正则化的相关问题

(1)正则化的原理

(2)L1和L2正则化的优缺点

2. 分箱问题

(1)在IV中要乘WOE,怎样理解?表示了什么意义?

(2)分箱流程

(3)为什么箱子越多,IV必然越小?


一、认识逻辑回归

        逻辑回归,是一种名为 “回归” 的线性分类器,其本质是由线性回归变化而来的,一种广泛使用于分类问题中的广义回归算法。

首先理解线性回归算法:

        𝜃 被统称为模型的参数,其中 𝜃₀被称为截距(intercept),𝜃₁~𝜃n 被称为系数。这个表达式,和 y=ax+b 是同样的性质。可以 使用矩阵来表示 这个方程,其中 x 和 𝜃 都可以被看做是一个 列矩阵,则有:

        线性回归的任务,就是构造一个预测函数 z 来映射输入的特征矩阵 x 和 标签值 y 的线性关系,而构造预测函数的 核心 就是找出模型的参数:𝜃T 和 𝜃₀

        通过函数 z,线性回归 使用输入的特征矩阵 x 来输出一组连续型的标签值 y_pred,以完成各种预测连续型 变量的任务。如果 得到的标签是 离散型变量,尤其是满足 0-1 分布的 离散型变量,我们可以通过引入 联系函数(link function),将线性回归方程 z 变换为 g(z),并且令 g(z)的值分布在(0,1)之间,且当 g(z)接近 0 时样本的标签为类别 0,当 g(z)接近1时样本的标签为类别 1,这样就得到了一个 分类模型。而这个联系函数对于 逻辑回归来说,就是 Sigmoid函数:

        Sigmoid 函数 与 MinMaxSclaer 同理,是 属于数据预处理中的 "缩放" 功能,可以将数据压缩到[0,1]之内。区别在于 MinMaxScaler 归一化之后,是可以取到 0 和 1 的(最大值归一化后就是 1,最小值归一化后 就是 0),但 Sigmoid 函数只是 无限趋近于 0 和 1。

        将 z 带入,可得到 二元逻辑回归模型的 一般形式:

        而 y(x)就是逻辑回归 返回的 标签值。此时,y(x)的取值都在 [0,1] 之间,因此 y(x)和 1-y(x)相加必然为 1。如果令 y(x)除以1-y(x)可以得到 形似几率(odds)的式子,在此基础上取对数,可以得到:

        y(x)的形似几率取 对数的 本质其实就是线性回归 z,我们实际上 是在对线性回归 模型的 预测结果取对数几率 来让其的结果 无限逼近 0 和 1。因此,其对应的模型被称为 “对数几率回归” (logistic Regression),也就是 逻辑回归,这个名为 “回归” 却是用来 做分类工作的 分类器。

二、二元逻辑回归(LogisticRegression)

        涉及模块:sklearn.linear_model

1. 损失函数

        逻辑回归 有着 基于训练数据求解参数 𝜃 的需求,并且 希望训练出来的模型 能够尽可能地 拟合训练数据,即模型在训练集上的 预测准确率越靠近 100%越好

        使用 “损失函数” 这个评估指标,来衡量参数为 𝜃 的模型拟合 训练集时产生的 信息损失的 大小,并以此衡量 参数 𝜃 的优劣。损失函数小,模型在训练集上 表现优异,拟合充分,参数优秀;损失函数大,模型在 训练集上表现 差劲,拟合不足,参数糟糕。我们追求,能够让损失函数最小化的 参数组合。损失函数具体 可以写成:

        其中,𝜃 表示求解出来的 一组参数,m是 样本的个数,yi 是样本 i 上真实的标签,y𝜃(xi)是样本i上,基于 参数 𝜃 算出来的逻辑回归 返回值,xi 是样本 i 各个特征的 取值。

        由于追求损失函数的最小值,让 模型在训练集上 表现最优,可能会引发另一个问题:如果模型在训练集上表示优秀,却在测试集上表现糟糕,模型就会 过拟合。虽然 逻辑回归 和线性回归 是天生 欠拟合的模型,但我们 还是需要控制 过拟合的技术来帮助 我们调整模型。对 逻辑回归中 过拟合的控制,通过 正则化来实现。

2. 正则化

        涉及参数:penalty & C

        正则化是用来防止模型过拟合的过程,常用的有 L1 正则化 和 L2 正则化 两种选项,分别通过在 损失函数后加上 参数向量 0 的 L1范式 和 L2范式 的倍数来实现。这个增加的范式,被称为 “正则项”,也被称为 “惩罚项”。

        L1 正则化会将参数压缩为 0,L2 正则化 只会让参数 尽量小,不会取到 0。L1 正则化 本质是一个 特征选择的过程,掌管了参数的 “稀疏性”,L1 正则化 越强,参数向量中 就越多的参数为 0,参数就 越稀疏,选出来的 特征就越少,以此来 防止过拟合;L2 正则化在 加强的过程中,会尽量让 每个特征对模型都 有一些小的贡献,但 携带信息少,对 模型贡献不大的 特征的参数 会非常接近于 0。

3. 梯度下降

        涉及参数:max_iter

        根据损失函数:

        对这个 函数上的 自变量 𝜃 求 偏导,就可以得到 梯度向量在第 j 组 𝜃 的坐标点上 的 表示形式:

        在这个公式下,只要给定一组 𝜃 的取值 𝜃j;,再带入特征矩阵 x,就可以求得这一组 𝜃 取值下的预测结果 y𝜃(xi),结合 真实标签向量 y,就可以 获得这一组 𝜃j 取值下的 梯度向量,其 大小表示为 dj。我们的 目的是在可能的 𝜃 取值上 进行遍历,一次次计算 梯度向量,并在 梯度向量的反方向上 让损失函数 J 下降至 最小值。在这个过程中,我们的 𝜃 和 梯度向量的大小 d 都会不断改变,而我们遍历 𝜃 的过程可以描述为:

        其中 𝜃 j+1 是第 j 次迭代后的 参数向量,𝜃j 是第 j 次迭代是的参数向量,𝛂被称为 步长,控制着每走一步(每迭代一次)后 𝜃 的变化,并以此来 影响每次迭代后 的梯度向量的 大小和方向。

        sklearn当中,我们设置参数 max_iter 最大迭代次数来 代替步长,帮助我们控制 模型的迭代速度 并适时地 让模型停下。max_iter 越大,代表步长越小,模型迭代时间越长,反之,则代表 步长设置很大,模型迭代 时间很短。

4. 二元回归与多元回归

        涉及参数:solver & multi_class

        “liblinear” 是二分类专用。

三、sklearn中的逻辑回归(自查)

1. 分类

2. 参数列表

3. 属性列表

4. 接口列表

四、逻辑回归优点

    1. 逻辑回归对线性关系的拟合效果非常好,特征与标签之间的线性关系极强的数据,都是逻辑回归的强项。

    2. 对于线性数据,逻辑回归的拟合和计算都非常快,计算效率优于SVM和随机森林。

    3. 逻辑回归返回的分类结果不是固定的 0、1,而是以小数形式呈现的类概率数字,因此可以把逻辑回归返回的结果当成连续型数据来利用。

五、学习中产生的疑问,以及文心一言回答

1. 正则化的相关问题

(1)正则化的原理

(2)L1和L2正则化的优缺点

2. 分箱问题

(1)在IV中要乘WOE,怎样理解?表示了什么意义?

(2)分箱流程

(3)为什么箱子越多,IV必然越小?

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

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

相关文章

11.面试题——消息队列RabbitMQ

1.RabbitMQ是什么?特点是什么? RabbitMQ是一种开源的消息队列中间件,用于在应用程序之间进行可靠的消息传递。它实现了AMQP(Advanced Message Queuing Protocol)协议,提供了强大的消息处理能力。RabbitMQ的…

DVWA—SQL Injection

DVWA—SQL Injection实例 1. low等级 进入界面后,可以看到它是一个ID的查找内容的输入框,我们输入数字1、2可以看到是从后端返回数据库相应的数据,但是我们作为SQL注入的最终目标是得到更多有关的信息,所以我们需要通过构造payl…

【生成式人工智能-九-大型语言模型的幻觉、偏见等安全性问题】

大型语言模型的安全性 幻觉对语言模型的输出做核查 偏见消除偏见的方法 鉴别是否是人工智能输出prompt hacking 语言模型被骗做事情jailbreakingjailbreaking的危害 prompt injection 今天还是先来谈一下有哪些安全性问题,以及简单介绍有那些应对方案。 幻觉 看过大…

BugKu CTF Misc:

前言 BugKu是一个由乌云知识库(wooyun.org)推出的在线漏洞靶场。乌云知识库是一个致力于收集、整理和分享互联网安全漏洞信息的社区平台。 BugKu旨在提供一个实践和学习网络安全的平台,供安全爱好者和渗透测试人员进行挑战和练习。它包含了…

写一个Vue2和vue3的自定义指令(以复制指定作为示例)

文章目录 一、自定义指令是什么?二、自定义指令有啥用?三、自定义指令怎么用?1.自定义指令的参数2.自定义指令的钩子函数(1)五个钩子函数的说明(2)钩子函数的参数(主要参数:el和valu…

高效管理视频文件,2024年视频压缩软件精选集

我的生活中处处都充满了数据的影子,不知道你是不是也这样。而且存储的数据可能由于某些失误会导致我们数据的丢失,幸运的是,现在我们掌握全免费的数据恢复工具的使用方式,就能尽可能地找回丢失的数据。 1.FOXIT数据恢复 连接直达…

解决客户访问超时1s问题

访问公网地址返回状态码499-CSDN博客 需求描述 客户访问公司公网服务,期望在1s内完成。他们在客户端设置了超时1s的配置,如果超过1s公司服务就会报错499,这是正常的请求返回。 分析问题 目前这个服务通过公网的alb负载均衡到ecs&#xff0…

Stable Diffusion绘画 | 提示词格式

推荐格式 提升画质的提示词与画风的提示词,对整体画面影响较大,建议在首行填写 画质词画风词画面主体描述环境、场景、灯光、构图Lora负面词 画质词 常规画质词: (masterpiece:1.2),best quality,highres,extremely detailed CG,perfect…

集成新的 AI 服务时需要考虑的问题

让我们来谈论最近发生的几个恐怖故事。 去年年底,一家雪佛兰经销商在其主页上部署了一个由大型语言模型 (LLM) 驱动的聊天机器人。该 LLM 经过雪佛兰汽车详细规格的训练,旨在仅回答有关雪佛兰汽车的问题。 然而,用户很快就找到了绕过这些限…

驰骋BPM RunSQL_Init接口SQL注入漏洞复现 [附POC]

文章目录 驰骋BPM RunSQL_Init接口SQL注入漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现驰骋BPM RunSQL_Init接口SQL注入漏洞复现 [附POC] 0x01 前言 免责声明:请勿利用文章内的相关技术从事非法测试,由于…

LeetCode 热题 HOT 100 (022/100)【宇宙最简单版】

【技巧】No. 0647 回文子串【中等】👉力扣对应题目指路 希望对你有帮助呀!!💜💜 如有更好理解的思路,欢迎大家留言补充 ~ 一起加油叭 💦 欢迎关注、订阅专栏 【力扣详解】谢谢你的支持&#xff…

step12:qml程序.exe生成指定图标

文章目录 0.文章内容1.在qt中改变图标效果代码 2. 在生成的build应用程序中改变图标效果代码 3. 获取.ico格式图片的连接参考文档 0.文章内容 1.在qt中改变图标 效果 代码 2. 在生成的build应用程序中改变图标 效果 代码 RC_ICONS logo2.ico 3. 获取.ico格式图片的连接 不…

vue 日期控件 100天内的时间禁用不允许选择

vue 日期控件 100天内的时间禁用不允许选择&#xff0c;可以从101天选起 比如&#xff0c;2024年8月9号开始&#xff0c;100天内禁止选择&#xff0c;第101天之后的日期可以选&#xff0c;效果如图所示 // 日期控件代码 加上 :picker-options"pickerOptions" <…

使用 Vue3 生成二维码和条形码

目录 前言 一、前期准备 1.1. 使用Vite创建工程化项目 1.2 安装所需的依赖 二、环境检查 三、生成二维码 3.1 创建二维码组件 3.2 在App.vue中使用二维码组件 四、生成条形码 4.1 创建条形码组件 4.2.在App.vue中使用条形码组件 五、启动测试与效果演示 5.1 启动de…

【前端可视化】大屏可视化项目三 包含了横向柱形图、竖向柱形图、雷达图、环形图、关系图、数据云图、数据展示图和地图可视化等八个部分

基于vite与tailwindcss创建大屏可视化 项目准备 传统的三列布局 <template><div class"w-full h-full"><div v-if"loading" class"bg-[url(assets/images/bg.png)] bg-cover bg-center loading-container h-screen w-full flex jus…

Arthas简介及示例

一、什么是Arthas&#xff1f; Arthas 是一款线上监控诊断产品&#xff0c;通过全局视角实时查看应用 load、内存、gc、线程的状态信息&#xff0c;并能在不修改应用代码的情况下&#xff0c;对业务问题进行诊断&#xff0c;包括查看方法调用的出入参、异常&#xff0c;监测方…

记2024-08原生微信小程序开发

继2024.08 最近需要开发一个微信小程序的一个功能模块&#xff0c;但是之前在学的时候都是好几年前的东东了&#xff0c;然后重新快速过了一遍b站大学的教程&#xff0c;这篇文章就是基于教程进行的一些总结&#xff0c;和自己开发过程当中使用到的一些点和一些技巧什么的吧。 …

uniapp小程序出现【 wxss GetCompiledResult】报错

报错信息 进入页面报错&#xff0c;导致页面无法显示 原因 查看小程序源代码发现 wxss 文件内有个不正常的字符 就是这个 * 导致解析失败 出现解析失败的原因 / 解决办法 是因为这里使用了通配符 注释掉就可以了

多组织系统的设计思路

一、什么是多组织系统 多组织这个概念是一般多用于企业信息化系统。通常是指一个集团分拆了多个子公司进行运营&#xff0c;每家子公司负责集团业务的一个到多个部分&#xff0c;多家子公司共同支撑集团的全部业务。 子公司内部&#xff0c;在业务执行过程中相对独立&#xf…

c++标准库STL————string类的基础模拟

string类 一、构造类函数1.构造一个空内容的对象2.用已知对象进行拷贝构造3.用c语言字符串的形式构造 二、容量型函数三、对象访问四、修改类操作4、非成员函数 一、构造类函数 c11提供了许多参数的重组&#xff0c;但通常这四种类型的构造较为常用。 1.构造一个空内容的对象 …