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

目录

一、认识逻辑回归

二、二元逻辑回归(LogisticRegression)

1. 损失函数

2. 正则化

3. 梯度下降

4. 二元回归与多元回归

sklearn%E4%B8%AD%E7%9A%84%E9%80%BB%E8%BE%91%E5%9B%9E%E5%BD%92%EF%BC%88%E8%87%AA%E6%9F%A5%EF%BC%89-toc" style="margin-left:0px;">三、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%E4%B8%AD%E7%9A%84%E9%80%BB%E8%BE%91%E5%9B%9E%E5%BD%92%EF%BC%88%E8%87%AA%E6%9F%A5%EF%BC%89">三、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.ppmy.cn/news/1508626.html

相关文章

怎么在网站底部添加站点地图?

在优化网站 SEO 时,站点地图(Sitemap)是一个非常重要的工具。它帮助搜索引擎更好地理解和抓取您的网站内容。幸运的是,从 WordPress 5.5 开始,WordPress 自带了站点地图生成功能,无需额外插件。下面将介绍如…

EPIC 数据库 Chronicles 的连接方式

EPIC 使用的是 IRIS 数据库,但是在 EPIC 内部,却有一个称为 Chronicles 的系统。 有关这个 Chronicles 的连接方式,请参考: Chronicles Chronicles 在 EPIC 内部被称为 DBMS,是 EPIC 的数据库管理系统。 我们可以认…

TDengine Cloud 助力智源未来,引领能源管理革新

在全球能源转型的大背景下,能源管理和储能技术的创新成为了各行业关注的焦点。随着能源需求的不断增加和对可再生能源的广泛应用,企业对高效、智能的能源管理解决方案的需求也在迅速增长。储能技术不仅能够平衡电力供应与需求,还能够在电网高…

如何高效记录并整理编程学习笔记?

如何高效记录并整理编程学习笔记? 笔记工具选择 1、Typora 轻量化,简单好用 2、 飞书云文档 手机电脑都可以看,随时同步笔记。 笔记结构设计 做好清晰的标题,按照知识去分类。 Java基础知识 开源框架 中间件 实践与复习策略 只…

10、java程序流程控制之二:分支语句(switch-case结构)、循环结构(for循环)(经典案例)

java程序流程控制之二: Ⅰ、分支语句:switch-case1、switch-case 分支结构:其一、描述:其二、代码为:其三、截图为: 2、switch-case 分支结构的案例1:判断是否合格其一、描述:其二、…

HC32F460 IIC访问总结

IC 总线由一根时钟线( SCL),一根数据线( SDA)构成。所有的连接器件必须是漏 极开路输出。 SCL, SDA 线外接上拉电阻。电阻阻值取决于系统应用。 通常情况下,一个完整的通信过程包括下列 4 部分&…

人类的信仰从何而来?

原创 Kirill Nikitine 新发现科普书单 自人类诞生伊始,就不乏热衷于这个哲学基本问题的人士。基于近 15 个世纪以来多名伟大思想家发起的研究,科学家终于给出了答案。究其原因,人类学、神经学和文化因素促使人类拥有信仰。 在蒂姆・伯顿&…

执行start-dfs.sh后,datenode没有启动的最全解决办法(全网最全)

前言 在Hadoop中申请一个Flink的Session会话的时候出现了报错 报错内容 File /user/.flink/application_1723473994699_0002b/flink-table-api-java-uber-1.17.0.jar could only be written to 0 of the 1 minReplication nodes. There are 0 datanode(s) running and 0 node…

docker stop pause 区别

先说区别 🛑 docker stop :通过发送 SIGTERM 信号来停止正在运行的容器,如果容器在宽限期后仍未停止,则发送 SIGKILL 信号。这将完全停止容器的进程。 ⏸️ docker pause :使用 cgroups 冻结器暂停正在运行的容器中的…

理解 Objective-C 中 +load 方法的执行顺序

在 Objective-C 中,load 方法是在类或分类(category)被加载到内存时调用的。它的执行顺序非常严格,并且在应用启动过程中可能会导致一些令人困惑的行为。理解 load 方法的执行顺序对调试和控制应用的初始化过程非常重要。 load 方…

CVE-2024-38077:Windows远程桌面授权服务的‘隐形杀手’——深度剖析与紧急防护策略

文章目录 CVE-2024-38077:Windows远程桌面授权服务的‘隐形杀手’——深度剖析与紧急防护策略1 漏洞描述2 漏洞影响2.1 处置优先级:高2.2 影响版本 3 漏洞检测3.1 漏洞检测工具3.2 漏洞检测工具使用介绍3.2.1 漏洞检测工具当前支持三种方式检测3.2.2 漏洞…

【迁移学习】迁移学习的基本概念与应用

迁移学习 迁移学习的基本概念与应用 引言 迁移学习是一种机器学习技术,旨在将从一个领域中学到的知识应用到另一个相关领域中,以解决目标任务的训练数据不足和模型训练时间过长的问题。它在计算机视觉、自然语言处理等领域中得到了广泛应用。本文将详细…

2024年华为OD机试真题-学生重新排队-Python-OD统一考试(C卷D卷)

2024年OD统一考试(D卷)完整题库:华为OD机试2024年最新题库(Python、JAVA、C++合集) 题目描述: n个学生排成一排,学生编号分别是1到n,n为3的整倍数。老师随机抽签决定将所有学生分成m个3人的小组,n=3*m 为了便于同组学生交流,老师决定将小组成员安排到一起,也就是同…

java和c++两种语言的多态对比(java选手转c++必学!)多态-保研机试,大厂面试必问

多态(Polymorphism)是面向对象编程(OOP)中的一个重要概念,指的是同一个接口或基类在不同情况下可以表现出不同的行为。多态允许对象通过相同的接口或方法名以不同的方式执行操作,这种能力使代码更加灵活和可…

【唐氏题目 nt题】与众不同

# 与众不同 ## 题目描述 A是某公司的CEO,每个月都会有员工把公司的盈利数据送给A,A是个与众不同的怪人,A不注重盈利还是亏本,而是喜欢研究「完美序列」:一段连续的序列满足序列中的数互不相同。 A想知道区间[L,R]之…

“头”和“段”里有什么? ——WEB开发系列04

作为前端开发人员&#xff0c;理解HTML的基本结构及语义是至关重要的。我们将继续深入探讨HTML中的标题&#xff08;​​<h1>​​到​​<h6>​​标签&#xff09;和段落&#xff08;​​<p>​​标签&#xff09;。 1. HTML文档结构回顾 在深入标题和段落之前…

芯片bring-up的测试用例

文章目录 前言一、测试用例的规划和编写原则1、冒烟测试1&#xff09;电源时钟复位测试2&#xff09;寄存器扫描测试3&#xff09;单一功能冒烟测试 二、遍历测试三、随机测试四、性能测试五、压力测试 总结 前言 最近做了一些用测试用例点亮芯片的工作&#xff0c;从测试用例…

LabVIEW电机测试系统

LabVIEW电机测试系统采用共直流母线架构&#xff0c;优化能量循环方式&#xff0c;实现内部能量循环。系统利用高精度仪器与先进软件技术&#xff0c;提供了一个高效、可靠的测试平台&#xff0c;适用于200 kW以下的交流异步电机和永磁同步电机的性能及耐久性测试。 项目背景 …

Unity读取Android外部文件

最近近到个小需求,需要读Android件夹中的图片.在这里做一个记录. 首先读写部分,这里以图片为例子: 一读写部分 写入部分: 需要注意的是因为只有这个地址支持外部读写,所以这里用到的地址都以 :Application.persistentDataPath为地址起始. private Texture2D __CaptureCamera…

OpenHarmony南向开发 SA服务SELinux权限配置一站式傻瓜式教程

Selinux权限配置 OpenHarmony中SELinux使用详解 目录 SELinux简介SELinux概念SELinux模式OH中SELinux使用详解新增SA服务如何配置SELinux权限SELinux简介 SELinux是Security Enhanced Linux 的缩写,也就是安全强化的 Linux,旨在增强传统Linux操作系统的安全性,解决传统Li…