【机器学习1】线性回归与逻辑回归

‌逻辑回归与线性回归的主要区别在于理论基础、应用场景和数学模型。

1 线性回归

1.1 理论基础

线性回归主要用于建模自变量与连续性因变量之间关系的统计方法,试图利用一条线来拟合自变量与因变量之间的线性关系。

1.2 应用场景

从应用场景来说,适用于连续数值的预测,如房价预测股票价格预测等。线性回归模型假设因变量与自变量之间存在线性关系,适用于那些关系可以近似为直线的情况‌

1.3 数学建模

1.3.1 模型的建立
以房价预测为例,建立一个线性模型:
y = b + ∑ w i x i y=b+ \sum_ {} w_ix_i y=b+wixi
其中 w i w_i wi是参数, x i x_i xi是因变量,一些影响房价的因素(面积,交通是否便利等), y y y是最终预测房价值。
1.3.2 参数的评估(损失函数)
如何评估一组参数 w i w_i wi的好坏呢?将这组参数代入模型,计算得到预测房价 y p r e y_{pre} ypre与真实房价之间的差距 y t r u e y_{true} ytrue,将其定义为 l o s s loss loss l o s s loss loss越小,说明预测值与真实值之间的差距越小,则说明这组参数越好,反之亦然。
L ( f ) = L ( w , b ) L(f)=L(w,b) L(f)=L(w,b)
L ( f ) = ∑ ( y t r u e − ( b + w i x i ) ) 2 L(f)= \sum_{} (y_{true}-(b+w_ix_i))^2 L(f)=(ytrue(b+wixi))2
**1.3.3 参数优化 **
如何挑选最好的function,使得 l o s s loss loss最小?
f ∗ = a r g m i n ∑ ( y t r u e − ( b + w i x i ) ) 2 f^*=arg min \sum_{} (y_{true}-(b+w_ix_i))^2 f=argmin(ytrue(b+wixi))2,其中矩阵 w w w,矩阵 b b b是待优化的参数
只要 f ∗ f^* f是可微分的,我们可以使用梯度下降(Gradient sescent)来优化 f ∗ f^* f的参数 w w w, b b b.

  • 首先考虑 f ∗ f^* f只有一个参数 w w w的情况下。
  1. 随机初始化参数 w 0 w^0 w0;
    2.计算参数 w 0 w^0 w0对loss的微分 d L d w ∣ w = w 0 \frac{dL}{dw} |_{w=w^0} dwdLw=w0的结果
    3.如果如果斜率是负数,说明左边的loss值更高,应该增大 w w w的值,找寻更小的loss值如果斜率是正数,应该减 w w w的值。在这里插入图片描述
    减少或者增加的w的大小应该如何选择呢:
    取决于两个因素:
    斜率计算出来的数值,第二个是 η η η学习率(learning_rate)
    w 1 ← w 0 − η ∗ d L d w ∣ w = w 0 w^1 \leftarrow w^0 - \eta * \frac{dL}{dw} |_{w=w^0} w1w0ηdwdLw=w0
    多次更新 w w w的数值,直到 l o s s loss loss到达一个局部最优值(local optimal)
  • 考虑 f ∗ f^* f存在两个参数 w w w b b b的情况下:
    1)随机初始两个参数值
    2)对其 l o s s loss loss分别计算偏微分
    在这里插入图片描述
    gradient:所有偏导的向量矩阵
    在Linear regression中, the loss is convex,不存在local optimal

以上过程,模型在已知数据(训练数据)上调整参数,可以作为回归模型的训练过程。模型在未知数据(测试集)上的表现,称为模型的泛化程度(generalization)。模型越复杂,在训练数据上就越拟合,但是可能会在测试数据上出现过拟合的情况。
在这里插入图片描述
loss的主要来源:bias 和variance
在这里插入图片描述
Simpler model is less influenced by the sampled data
一个较大的bias 导致每次预测结果在一个相近范围,但与目标值较远 模拟欠拟合,过于简单

当model不能fit训练集是是bias大
如果在训练集上过拟合,测试集上无法fit说明variance大、

如果bias,
需要重新设计一个更为精细的模型,
添加更多的输入特征

如果variance大的话:
增加data(数据增强)
Regularization 让参数越少越好,曲线越平滑越好

There is usually a trade-off between bias and variance
选择一个模型在这两种error中总error最小的model

将training set 划分为两组:training set 和validation set
N-flod cross validation 几折交叉验证 算平均精度

2 逻辑回归

2.1理论基础

逻辑回归用于建模自变量与离散型因变量之关系的统计方法,常使用逻辑函数建立自变量与因变量之间的非线性关系。

2.2 应用场景

适用于二分类问题的预测,如垃圾邮件分类肿瘤诊断金融欺诈检测等。逻辑回归通过sigmoid函数将输出限制在0和1之间,适用于处理只有两种可能结果的情况‌

2.3 数学建模

2.3.1 逻辑函数

与线性回归loss计算预测值与真实值之间的差距不同,逻辑回归中,loss是计算模型在训练数据上预测错误的次数。即:
L ( f ) = ∑ δ ( f ( x n ) ≠ y t r u e ) L(f)=\sum_{} \delta(f(x^n) \neq y^{true}) L(f)=δ(f(xn)=ytrue)
这种情况下,无法微分,如果进行参数优化的步骤呢?

引入Sigmoid函数
Sigmoid函数的公式为 1 1 + e − Z \frac{1}{1+e^{-Z}} 1+eZ1,其中 Z Z Z是线性组合的结果,Sigmoid函数的输出范围是(0, 1),非常适合表示概率。这意味着无论输入值为何,通过Sigmoid函数处理后,输出都在0到1之间,我们可以将这个值解释为属于某一类的概率‌。

δ ( w , b ) = 1 1 + e − ( w T x + b ) \delta(w,b)=\frac{1}{1+e^{-(w^Tx+b)}} δ(w,b)=1+e(wTx+b)1
此外,Sigmoid函数是可微的,这意味着我们可以计算它的导数,从而在使用梯度下降法优化逻辑回归模型参数时,能够直接根据Sigmoid函数的导数计算梯度,更新模型的权重和偏置‌。

对数损失(Log Loss) 逻辑回归采用极大似然估计推导损失函数,等价于最小化交叉熵损失(Cross-Entropy Loss)
对于单个样本损失为:
L ( y i p r e , y i t r u e ) = − y i p r e l o g ( y i t r u e ) − ( 1 − y i p r e ) l o g ( 1 − y i t r u e ) ) L(y^{pre}_{i}, y_{i}^{true})=-y^{pre}_{i}log(y_{i}^{true})-(1-y^{pre}_{i})log(1-y_{i}^{true})) L(yipre,yitrue)=yiprelog(yitrue)(1yipre)log(1yitrue))

以下内容摘抄 https://zhuanlan.zhihu.com/p/659617924
在信息论中,将一个事情的不确定性。称为熵,如果一件事情发生的概率为 p i p_i pi,其赌赢的熵则为 I ( p i ) = − l o g ( p i ) I(p_i)=-log(p_i) I(pi)=log(pi)。 其寓意在于,一个事情会发生的可能性越低,其包含的信息量(不确定性)就越大,
在这里插入图片描述
从上图很容易看到,当概率为1时,它表示时间发生的概率为100%,不存在不确定性,此时自信息为0,反之,概率越小,不确定性就越大,自信息也就越大。

如果训练集有多个观察样本,我们希望所有样本的熵之和最小(相当于混杂程度最小),在取得均值的情况下,可以描述为: ∑ i = 1 N I ( p i ) = − 1 N ∑ i = 1 N l o g ( p i ) \sum_{i=1}^{N} I(p_i)= -\frac{1}{N} \sum_{i=1}^{N} log(p_i) i=1NI(pi)=N1i=1Nlog(pi)

期望值(Expectation,简称E)是对随机变量可能取值的加权平均。每个取值的权重是它发生的概率。通过计算加权平均,我们可以得到随机变量的期望值。

信息熵是一种数学方式来度量信息的平均不确定性,它也可以表述为,事件在所有可能情况下的自信息期望值,其计算公式如下:
H ( X ) = E x P [ I ( x ) ] = ∑ i p ( x i ) l o g 2 ( 1 p ( x i ) ) = − ∑ i p ( x i ) l o g 2 ( p ( x i ) ) ) H(X)=E_{x~P}[I(x)]=\sum_{i} p(x_i)log_2(\frac{1}{p(x_i)})=-\sum_{i} p(x_i)log_2(p(x_i))) H(X)=Ex P[I(x)]=ip(xi)log2(p(xi)1)=ip(xi)log2(p(xi)))

其中, H ( X ) H(X) H(X)表示随机变量 X X X的信息熵, p ( x i ) p(x_i) p(xi)是随机变量 X X X取值为 x i x_i xi的概率, l o g 2 ( 1 p ( x i ) ) log_2(\frac{1}{p(x_i)}) log2(p(xi)1)就是 p ( x i ) p(x_i) p(xi)概率下的编码长度, E x P E_{x~P} Ex P 表示编码长度的数学期望.

在本质上,对数损失其实求的也是一种熵,即也是一种编码长度的期望,不过这个期望有点不同。不同之处在于:用于求编码长度的概率,来自于模型的实际输出 y i p r e y^{pre}_{i} yipre,取值介于0~1之间,它对应的编码长度记做 l o g ( 1 y i t r u e ) log(\frac{1}{y^{true}_{i}}) log(yitrue1) ,但评价这个编码长度的权值,却来自于真实概率 y i t r u e {y^{true}_{i}} yitrue.即 − y i p r e l o g ( y i t r u e ) -y^{pre}_{i}log(y_{i}^{true}) yiprelog(yitrue)

同理,二分类问题中,另一个对立面,可以计算其熵为: ( 1 − y i p r e ) − ( 1 − l o g ( y i t r u e ) ) (1-y^{pre}_{i})-(1-log(y_{i}^{true})) 1yipre1log(yitrue))

又因为,对于特定实例,前面两项情况只有一个成立,因此可以巧妙地把上述这两种情况统一在一起,便于统一操作,即可得到: − y i p r e l o g ( y i t r u e ) − ( 1 − y i p r e ) l o g ( 1 − y i t r u e ) ) -y^{pre}_{i}log(y_{i}^{true})-(1-y^{pre}_{i})log(1-y_{i}^{true})) yiprelog(yitrue)(1yipre)log(1yitrue))

Sigmoid 函数:

σ ( z ) = 1 1 + e − z \sigma(z) = \frac{1}{1 + e^{-z}} σ(z)=1+ez1

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

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

相关文章

小程序 顶部栏标题栏 下拉滚动 渐显白色背景

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/3164fd0e6d6848efaa1e87e02c35179e.png 下拉 100px 后 变成渐变成白色 显示原理 <wd-navbar fixed safeAreaInsetTop :bordered"false":custom-style"background-color: rgba(255, 255, 255, op…

Java底层原理:深入理解类加载机制与反射

一、Java类加载机制 Java类加载机制是Java运行时环境的重要组成部分&#xff0c;它负责将字节码文件加载到JVM内存中&#xff0c;并将其转换为可执行的类。类加载机制的实现涉及类加载器&#xff08;ClassLoader&#xff09;、类加载过程和类加载器的层次结构。 &#xff08;…

Android 中查看数据库内容方式

一、背景 创建的db数据库&#xff0c;有时候需要查看数据库中的数据内容,或者查看数据是否有更新到数据等等。这时候就需要查看数据库的内容。 二、数据库路径 博主用的是第三方的greendao数据库框架,生成的.db文件路径如下:(路径仅供参考) /data/data/app_package/database…

unity实现浮动组件

目录 前言方法后言组件代码 前言 在unity中&#xff0c;要让一个物体变得让人感到轻飘飘的&#xff0c;就可以给一个物体添加上浮动组件。今天我们就来实现它。 方法 我们先来看一下 sin ⁡ \sin sin函数的曲线。 在这条曲线上&#xff0c;随着 x x x向右移动&#xff0c; y…

Cisco Nexus93240接口带宽显示异常高故障- bug

hardware: cisco N93240 software: 9.3(10) 1个万兆接口&#xff0c;显示的rate超出几万倍 开case查询&#xff0c;告知是bug&#xff0c;需要版本升级解决。

pyhton基础【15】函数进阶一

目录 一. 函数进阶 1. 默认参数&#xff1a; 2. 关键字参数&#xff1a; 3. 可变参数&#xff1a; 4. 装饰器&#xff1a; 5. 匿名函数lambda&#xff1a; 6. 高阶函数&#xff1a; 7. 递归函数&#xff1a; 8. 类型注解&#xff1a; 二.函数参数的高级使用 缺…

【软考高级系统架构论文】论企业应用系统的数据持久层架构设计

论文真题 数据持久层 (Data Persistence Layer) 通常位于企业应用系统的业务逻辑层和数据源层之间,为整个项目提供一个高层、统一、安全、并发的数据持久机制,完成对各种数据进行持久化的编程工作,并为系统业务逻辑层提供服务。它能够使程序员避免手工编写访问数据源的方法…

ubuntu使用 Conda 安装 pyseer详细教程

pyseer 是一个用于 微生物全基因组关联分析(GWAS) 的生物信息学工具。它可以帮助研究者识别微生物(如细菌)中与表型(如耐药性、毒力、致病性)相关的遗传变异。 一、安装mamba conda install -n base -c conda-forge mamba二、创建虚拟环境 conda create -n pyseer-env …

Redis04

redis 一、redis的作用和使用场景 redis是一个内存级的高速缓存数据库。&#xff08;对比磁盘IO&#xff09; 使用场景&#xff1a;1、并发访问量大的 2、数据量小 3、修改不频繁 项目中&#xff1a;1、验证码 2、登录成功用户信息 3、首页&#xff08;模块数据 轮播图&…

计算机网络学习笔记:TCP可靠传输实现、超时重传时间选择

文章目录 一、TCP可靠传输实现二、TCP超时重传时间选择 一、TCP可靠传输实现 TCP可靠传输的实现&#xff0c;主要基于发送方和接收方的滑动窗口&#xff0c;以及确认机制&#xff1a; 发送方在未收到确认&#xff08;ACK&#xff09;前&#xff0c;可以将序号落在发送窗口内的…

Perl 正则表达式

Perl 正则表达式 引言 Perl 正则表达式&#xff08;Regular Expressions&#xff09;是Perl编程语言中一个强大且灵活的工具&#xff0c;用于字符串处理和模式匹配。正则表达式在文本处理、数据验证、搜索和替换等任务中发挥着至关重要的作用。本文将深入探讨Perl正则表达式的…

Security: RSA: 1024 bit 长度已经变得不安全了

文章目录 参考推荐限制RHEL相关配置man crypto-policies包含的应用使用方法是配置文件include参考 https://csrc.nist.gov/pubs/sp/800/57/pt1/r2/final https://www.linuxquestions.org/questions/linux-security-4/1024-bit-dsa-vs-2048-bit-rsa-4175439131/ https://csrc.n…

第一课:大白话中的机器学习

各位看官好啊!今天咱们来聊一个听起来高大上但实际上特别接地气的玩意儿——机器学习。别被这名字吓到,它其实就是教电脑像人类一样学习知识的一套方法。想象一下你教你家狗子坐下、握手的过程,机器学习差不多就是这么回事,只不过"学生"换成了电脑。 一、啥是机…

实现 el-table 中键盘方向键导航功能vue2+vue3(类似 Excel)

实现 el-table 中键盘方向键导航功能vue2vue3&#xff08;类似 Excel&#xff09; 功能需求 在 Element UI 的 el-table 表格中实现以下功能&#xff1a; 使用键盘上下左右键在可编辑的 el-input/el-select 之间移动焦点焦点移动时自动定位到对应单元格支持光标位置自动调整…

MyBatis:从入门到进阶

&#x1f4cc; 摘要 在 Java 后端开发中&#xff0c;MyBatis 是一个非常流行且灵活的持久层框架。它不像 Hibernate 那样完全封装 SQL&#xff0c;而是提供了对 SQL 的精细控制能力&#xff0c;同时又具备 ORM&#xff08;对象关系映射&#xff09;的功能。 本文将带你从 MyB…

leetcode51.N皇后:回溯算法与冲突检测的核心逻辑

一、题目深度解析与N皇后问题本质 题目描述 n皇后问题研究的是如何将n个皇后放置在nn的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。给定一个整数n&#xff0c;返回所有不同的n皇后问题的解决方案。每一种解法包含一个明确的n皇后问题的棋子放置方案&#xff0c;该方…

算法-每日一题(DAY9)杨辉三角

1.题目链接&#xff1a; 118. 杨辉三角 - 力扣&#xff08;LeetCode&#xff09; 2.题目描述&#xff1a; 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 示例 1: 输入: numRo…

【MATLAB代码】制导方法介绍与例程——追踪法,适用于二维平面,目标是移动的|附完整源代码

追踪法(追踪导引法)是一种常见的导弹导引方式,其基本原理是保持导弹的速度矢量始终指向目标。在追踪法中,导弹的加速度可以表示为指向目标的加速度。 本文给出二维平面下,移动目标的追踪法导引的介绍、公式与matlab例程 订阅专栏后,可以直接查看完整源代码 文章目录 运行…

小白的进阶之路系列之十八----人工智能从初步到精通pytorch综合运用的讲解第十一部分

从零开始的NLP:使用序列到序列网络和注意力机制进行翻译 我们将编写自己的类和函数来预处理数据以完成我们的 NLP 建模任务。 在这个项目中,我们将训练一个神经网络将法语翻译成英语。 [KEY: > input, = target, < output]> il est en train de peindre un table…

SSL安全证书:数字时代的网络安全基石

SSL安全证书&#xff1a;数字时代的网络安全基石 在当今数字化浪潮中&#xff0c;网络通信安全已成为个人、企业和组织不可忽视的核心议题。SSL&#xff08;Secure Sockets Layer&#xff0c;安全套接层&#xff09;安全证书作为保障数据传输安全的关键技术&#xff0c;通过加…