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

目录

一、认识逻辑回归

二、二元逻辑回归(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.rhkb.cn/news/399321.html

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

相关文章

大厂面试题分享第一期

大厂面试题分享第一期 Redis持久化方式AOF优缺点RDB优缺点 如何保证Redis和Myql的一致性索引下推输入url到浏览器发生了什么ReentranLock底层原理SpringBoot 的启动流程 Redis持久化方式 Redis提供了两种主要的持久化机制,分别是AOF(Append-Only File&a…

Python 数据可视化,怎么选出合适数据的图表

数据可视化最佳实践 1. 引言:为什么数据可视化最佳实践很重要 数据可视化是数据分析和决策过程中不可或缺的一部分。通过有效的可视化,复杂的数据可以转化为易于理解的信息,从而帮助观众快速做出正确的判断。然而,糟糕的可视化可…

单片机IO灌入5V电压导致其他IO电压测量到大于供电电压问题

最近用GD32F103RCT6做项目,用了3个485收发器,都是直接接在单片机IO上的。 485收发器是5V供电的,这个时候就出现5V电平和3.3V电平兼容的问题了。 一开始只用了PA10、PC11这两个串口,他俩是兼容5V的,从手册可以看出IO最…

企业源代码也需要加密!十款好用的源代码加密软件排行榜

在当今竞争激烈的商业环境中,企业的源代码是其核心资产之一。为了保护这些宝贵的知识产权不被泄露,源代码加密成为了众多企业的重要举措。2024 年,市面上出现了众多功能强大的源代码加密软件。接下来,就让我们一同来探索十款备受好…

DockerCompose编排Nginx+Mysql并实现Nginx配置Mysql(TCP协议)负载均衡

场景 Nginx配置实例-负载均衡实例:平均访问多台服务器: Nginx配置实例-负载均衡实例:平均访问多台服务器_我想访问五个服务器的信息用nginx怎么做-CSDN博客 以上实现Nginx的http协议的负载均衡,如果使用Nginx实现TCP协议的负载…

Java的JVM中的概念之——新生代和老年代

JVM新生代和老年代是JVM中非常重要的概念,那么他们在JVM中扮演者什么样的角色和含义呢? 在Java虚拟机(JVM)的垃圾回收(GC)中,内存被分为不同的区域,其中两个主要区域是新生代&#…

PHP餐厅点餐系统小程序源码

🍽️【餐厅点餐新纪元,点餐系统让用餐更便捷!】📱 🔍 一键浏览,菜单尽在掌握 📱 走进餐厅,无需再担心找不到服务员或菜单被抢光!餐厅点餐系统让你轻松扫描桌上的二维码…

HarmonyOS Developer之图片帧动画播放器

创建image-animator组件 在pages/index目录下的hml文件中创建一个image-animator组件,css文件中编写组件样式,js文件中引用图片。 设置image-animator组件属性 添加iteration(播放次数)、reverse(播放顺序&#xf…

LVS原理及实例

目录 LVS原理 LVS概念 lvs集群的类型 lvs-nat 解释 传输过程 lvs-dr 解释 传输过程 特点 lvs-tun LVS(Linux Virtual Server)常见的调度算法 防火墙标记(Firewall Marking)结合轮询调度 实战案例 lvs的nat模式配置 …

使用Linux实现FTP云盘1

关于FTP服务器 FTP(文件传输协议)服务器是在互联网上提供文件存储和访问服务的计算机,它们依照FTP 协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。 程序运行,服务端不断接收客户端指令,服务 端可同时处…

提取含有特定字符的行和列grep函数(含有替换)

目录 ①grep提取含有特定字符的列 ②grep提取含有特定字符的行 R语言进行字符的替换和删减gsub,substr函数R语言进行字符的替换和删减gsub,substr函数_r语言数据框字符替换-CSDN博客 ①grep提取含有特定字符的列 在一个dataframe中,需要提…

Element学习(axios异步加载数据、案例操作)(5)

1、这次学习的是上次还未完成好的恶element案例,对列表数据的异步加载,并渲染展示。 ——>axios来发送异步请求 (1) (2)在vue当中安装axios (注意在当前的项目目录,并且安装完之后…

Xcode 在原生集成flutter项目

笔者公司有一个从2017年就开始开发的iOS和安卓原生项目,现在计划从外到内开始进行项目迁徙。 1》从gitee拉取flutter端的代码;(Android报错Exception: Podfile missing) 2》替换Xcode里的cocopods里Podfile的路径 然后报警 然后…

Linux从0到1——进程池

Linux从0到1——进程池 1. 进程池的概念2. 进程池实现思路3. 进程池的代码实现3.1 创建管道,创建子进程3.2 封装任务3.3 Work接口3.4 发送任务3.5 回收资源,关闭管道(重点)3.6 改造CreatChannels接口 4. 完整代码 1. 进程池的概念…

ECMAScript6模板字面量:反引号、${}占位符的使用

ECMAScript 6 中引入了模板字面量,主要通过多行字符串和字符串占位符对字符串进行增强操作。如下: //使用ECMAScript6模板字面量拼接字符串,例如:2024年8月12日 15:38:28 星期一 let dateRet ${Year}年${Month}月${Dates}日 ${H…

lvs、集群

1.集群和分布式 当多个用户当用户访问一个服务器时,服务器server1可能就会崩,假如这时候我们新加一个服务器server2来缓解server1的压力,那么就需要一个调度器lvs来分配,所以现在就是用户的访问就需要通过调度器之后到达服务器&a…

简述MYSQL聚簇索引、二级索引、索引下推

一丶聚簇索引 InnoDB的索引分为两种: 聚簇索引:一般创建表时的主键就会被mysql作为聚簇索引,如果没有主键则选择非空唯一索引作为聚簇索引,都没有则隐式创建一个索引作为聚簇索引;辅助索引:也就是非聚簇索…

KillWxapkg 自动化反编译微信小程序,小程序安全评估工具,发现小程序安全问题,自动解密,解包,可还原工程目录,支持修改Hook,小程序

纯Golang实现,一个用于自动化反编译微信小程序的工具,小程序安全利器,自动解密,解包,可还原工程目录,支持微信开发者工具运行 由于采用了UPX压缩的软件体积,工具运行时可能会出现错误报告&…

在等保测评中,如何平衡技术风险和非技术风险的评估?

在等保测评中平衡技术风险和非技术风险的评估,需要一个综合的方法来确保所有相关的风险都得到适当的考虑。以下是一些关键步骤: 1. 全面风险识别:首先识别所有可能影响组织的风险,包括技术风险(如系统漏洞、恶意软件&…

企业大模型落地从0到0.1

现在人工智能里的“大明星”——大模型,正在悄悄改变各行各业。这就像给企业装上了一颗聪明的大脑,能帮助解决各种棘手问题,提升工作效率。今天,我们就来分析下企业如何一步一步让这个“大脑”在自家地盘里真正派上用场&#xff0…