[吃瓜教程]南瓜书第3章对数几率回归

第三章 对数几率回归

3.1 算法原理

对数几率回归(Logistic Regression)是一种统计方法,主要用于二分类问题。它通过拟合一个对数几率函数(logit function),即对数几率(log-odds)与输入变量的线性组合之间的关系,来预测一个事件发生的概率。其基本公式为:
l o g i t ( P ) = l n ( P 1 − P ) = β 0 + β 1 X 1 + β 2 X 2 + . . . + β n X n logit(P)=ln(\frac{P}{1-P})=\beta_0+\beta_1X_1+\beta_2X_2+...+\beta_nX_n logit(P)=ln(1PP)=β0+β1X1+β2X2+...+βnXn
其中,P是事件发生的概率, β 0 \beta_0 β0是截距, β 1 , β 2 , . . . , β n \beta_1,\beta_2,...,\beta_n β1,β2,...,βn是回归系数, X 1 , X 2 , . . . , X n X_1,X_2,...,X_n X1,X2,...,Xn是输入变量。通过对参数 β \beta β进行估计,模型可以用于预测新数据点的分类结果。
简单来说,它是在线性模型的基础上套了一个映射函数来实现分类功能,在这里是套了一个 1 1 + e − z \frac{1}{1+e^{-z}} 1+ez1函数,其图像如下图所示:
在这里插入图片描述

3.2损失函数的极大似然估计推导(策略)

第一步: 确定概率质量函数(质量密度函数)
已知离散型随机变量 y ∈ { 0 , 1 } y\in{\{0,1\}} y{0,1}取值为1和0的概率分别建模为:
p ( y = 1 ∣ x ) = 1 1 + e − ( w T x + b ) = e w T x + b 1 + e w T x + b p(y=1|x)=\frac{1}{1+e^{-(w^Tx+b)}}=\frac {e^{w^Tx+b}}{1+e^{w^Tx+b}} p(y=1∣x)=1+e(wTx+b)1=1+ewTx+bewTx+b
p ( y = 0 ∣ x ) = 1 − p ( y = 1 ∣ x ) = 1 1 + e w T x + b p(y=0|x)=1-p(y=1|x)=\frac {1}{1+e^{w^Tx+b}} p(y=0∣x)=1p(y=1∣x)=1+ewTx+b1
通过以上概率取值可推得随机变量 y ∈ { 0 , 1 } y\in{\{0,1\}} y{0,1}的概率质量函数为
p ( y ∣ x ^ ; β ) = y ⋅ p 1 ( x ^ ; β ) + ( 1 − y ) ⋅ p 0 ( x ^ ; β ) p(y|\hat x;\beta)=y \cdot p_1(\hat x;\beta)+(1-y)\cdot p_0(\hat x;\beta) p(yx^;β)=yp1(x^;β)+(1y)p0(x^;β)
另一种表达是,
p ( y ∣ x ^ ; β ) = [ p 1 ( x ^ ; β ) ] y + [ p 0 ( x ^ ; β ) ] 1 − y p(y|\hat x;\beta)=[p_1(\hat x;\beta)]^y+[p_0(\hat x;\beta)]^{1-y} p(yx^;β)=[p1(x^;β)]y+[p0(x^;β)]1y
第二步: 写出似然函数
L ( β ) = ∏ i = 1 m p ( y i ∣ x ^ i ; β ) L(\beta)=\prod \limits_{i=1}^mp(y_i|\hat x_i;\beta) L(β)=i=1mp(yix^i;β)
对数似然函数为
l ( β ) = l n L ( β ) = ∑ i = 1 m p ( y i ∣ x ^ i ; β ) l(\beta)=lnL(\beta)=\sum_{i=1}^mp(y_i|\hat x_i;\beta) l(β)=lnL(β)=i=1mp(yix^i;β)
l ( β ) = ∑ i = 1 m l n ( y i p 1 ( x ^ i ; β ) + ( 1 − y i ) p 0 ( x ^ i ; β ) ) l(\beta)=\sum_{i=1}^mln(y_ip_1(\hat x_i;\beta)+(1-y_i)p_0(\hat x_i;\beta)) l(β)=i=1mln(yip1(x^i;β)+(1yi)p0(x^i;β))
带入化简得:
l ( β ) = ∑ i = 1 m ( y i β T x ^ i − l n ( 1 + e β T x ^ i ) ) l(\beta)=\sum_{i=1}^m(y_i\beta^T\hat x_i-ln(1+e^{\beta^T\hat x_i})) l(β)=i=1m(yiβTx^iln(1+eβTx^i))
最后取反即得到西瓜书得式(3.27),即对小化损失函数。

3.3损失函数的信息论推导(策略)

信息论(Information Theory)是一门研究信息的度量、传输和处理的科学。它由克劳德·香农(Claude Shannon)在20世纪中期创立。信息论的应用广泛,包括数据压缩、加密、通信系统设计、机器学习等领域。通过量化信息和不确定性,信息论为理解和优化信息处理系统提供了理论基础。
关键概念:
1.自信息:在信息论中,自信息(Self-Information),又称为信息量或惊讶度,是一个度量事件不确定性的概念。自信息量用于描述单个事件的置信度或信息含量。其定义如下:
I ( x ) = − l o g P ( x ) I(x)=-logP(x) I(x)=logP(x)
其中,I(x)是事件x的自信息量,P(x)是事件x发生的概率,log 表示对数运算,可以是以2为底(通常用于信息论中的单位为比特)或以自然对数为底(单位为纳特,nats)。
2.信息熵(Entropy)是信息论中的一个核心概念,用来衡量一个随机变量的不确定性或信息量。它是由克劳德·香农(Claude Shannon)在其1948年的论文《通信的数学理论》中提出的,因此有时也称为香农熵。信息熵的定义如下:
H ( X ) = − ∑ i P ( x i ) l o g P ( x i ) H(X)=-\sum_iP(x_i)logP(x_i) H(X)=iP(xi)logP(xi)
其中:
H ( X ) H(X) H(X)是随机变量X的熵;
P ( x i ) P(x_i) P(xi)是随机变量X取值为 x i x_i xi的概率。
log是对数运算
要注意的一点是,当 p ( x ) = 0 p(x)=0 p(x)=0,则 p ( x ) l o g b p ( x ) = 0 p(x)log_bp(x)=0 p(x)logbp(x)=0
3.相对熵(Relative Entropy),也称为Kullback-Leibler散度(Kullback-Leibler Divergence, 简称KL散度),是信息论中用来衡量两个概率分布之间差异的非对称度量。它描述了从一个分布到另一个分布的额外信息量或“代价”。相对熵的定义如下:
对于两个概率分布P和Q,相对熵 D K L ( P ∣ ∣ Q ) D_{KL}(P||Q) DKL(P∣∣Q)定义为:
D K L ( P ∣ ∣ Q ) = ∑ x ∈ X P ( x ) l o g P ( x ) Q ( x ) D_{KL}(P||Q)=\sum_{x\in \mathcal X}P(x)log \frac{P(x)}{Q(x)} DKL(P∣∣Q)=xXP(x)logQ(x)P(x)
其中,
P和Q是定义在同一随机变量X上的两个概率分布;
X \mathcal X X是X的取值范围;
log是对数运算。
上面的式子可以化为:
D K L ( p ∣ ∣ q ) = ∑ x p ( x ) l o g p ( x ) − ∑ x p ( x ) l o g b q ( x ) D_{KL}(p||q)=\sum_{x}p(x)log p(x)-\sum_xp(x)log_bq(x) DKL(p∣∣q)=xp(x)logp(x)xp(x)logbq(x)
可以看到上面的式子的后半部分就是交叉熵。由于理想分布p(x)是未知但固定的分布(频率学派的角度),所以式子的前办部分是一个常量,那么最小化相对熵就等价于最小化交叉熵。
以对数几率回归为例,对单个样本 y i y_i yi来说,它的理想分布是
p ( y i ) = { p ( 1 ) = 1 , p ( 0 ) = 0 , y i = 1 p ( 1 ) = 0 , p ( 0 ) = 1 , y i = 0 p(y_i)=\left\{ \begin{aligned} p(1)=1,p(0)=0,y_i=1 \\ p(1)=0,p(0)=1,y_i=0\\ \end{aligned} \right. p(yi)={p(1)=1,p(0)=0,yi=1p(1)=0,p(0)=1,yi=0
模拟分布为:
q ( y i ) = { e β T x ^ 1 + e β T x ^ = p 1 ( x ^ ; β ) , y i = 1 1 1 + e β T x ^ = p 0 ( x ^ ; β ) , y i = 0 q(y_i)=\left\{ \begin{aligned} \frac{e^{\beta^T\hat x}}{1+e^{\beta^T\hat x}}=p_1(\hat x;\beta),y_i=1 \\ \frac{1}{1+e^{\beta^T\hat x}}=p_0(\hat x;\beta),y_i=0\\ \end{aligned} \right. q(yi)= 1+eβTx^eβTx^=p1(x^;β),yi=11+eβTx^1=p0(x^;β),yi=0
带入交叉熵公式同时全体训练样本的交叉熵求和化简得到,
∑ i = 1 m ( − y i β T x ^ i + l n ( 1 + e β T x ^ i ) ) \sum_{i=1}^m(-y_i\beta^T\hat x_i+ln(1+e^{\beta^T\hat x_i})) i=1m(yiβTx^i+ln(1+eβTx^i))

3.4补充

对数几率回归算法的机器学习三要素:
1.模型:线性模型,输出值得范围为[0,1],近似阶跃得单调可微函数
2.策略:极大似然估计,信息论
3.算法:梯度下降,牛顿法(近似求解方法,没有闭式解)

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

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

相关文章

构建基于LLM的高效知识库问答系统:MaxKB一站式开源解决方案探析

随着人工智能技术的飞速发展,尤其是大型语言模型(LLMs)的广泛应用,知识管理与交互进入了新的纪元。今天,我们将深入探讨一个创新的开源项目——MaxKB,这是一个集成了最新技术、旨在提供一站式解决方案的知识库问答系统。MaxKB以其开箱即用、高度可定制性以及对多种主流大…

淘宝店铺商家订单API-接入ERP,多平台订单同步的利器

淘宝开放平台给商家们提供了丰富的API,以方便大家扩展业务流程。但是需要调用这些API,商家们要提交资质审核,审核条件也是很严格的。第三方数据公司的存在可以为大家解决这个问题。 custom-自定义API操作 请求参数 请求参数:ap…

告别手机废片,这几款APP让你随手出大片

想象一下,你站在壮丽的风景前,满怀期待地按下手机相机的快门,但得到的照片却总与眼前美景有所差距。 是不是觉得手机的原生相机有时候并不那么“给力”? 今天,我们就来一起探讨一下手机原生相机的不足之处,…

web前端课程大作业-高校学生事务中心

文章目录 概述代码页面截图代码链接 概述 仿制高校的学生事务中心&#xff0c;一个登录和注册页面 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" conten…

网约车停运损失费:1、事故经过

目录 &#x1f345;点击这里查看所有博文 随着自己工作的进行&#xff0c;接触到的技术栈也越来越多。给我一个很直观的感受就是&#xff0c;某一项技术/经验在刚开始接触的时候都记得很清楚。往往过了几个月都会忘记的差不多了&#xff0c;只有经常会用到的东西才有可能真正记…

用ChatGPT快速打造一个专业WordPress网站

作为一个使用HostEase多年的老用户&#xff0c;我想和大家分享一下如何利用HostEase和ChatGPT快速构建一个WordPress网站的经验。这不仅仅是一个简单的操作步骤&#xff0c;更是一次从零到有的实战经历。希望我的分享能给你们带来一些实用的帮助。 获取主机服务和域名 首先&a…

ModuleNotFoundError: No module named ‘gdal‘

第一步检查gdal包是否正确安装&#xff1a; conda list 已经安装显示如下 若查找不到&#xff1a;请按照此说明步骤进行安装&#xff1a;ModuleNotFoundError: No module named ‘osgeo‘_modulenotfounderror: no module named osgeo-CSDN博客 第二步&#xff1a;检查是否可以…

HistoQC|病理切片的质量控制工具

小罗碎碎念 这期推文介绍的内容&#xff0c;我相信研究病理组学的人&#xff0c;一定都非常熟悉——HistoQC——病理切片的质量控制。 之前写过Hover Net系列的推文&#xff0c;反响还可以&#xff0c;但是Hover Net是用于细胞核检测和分类的&#xff0c;直接从这里开始还不够系…

Win11:系统属性,由于启动计算机时出现了页面文件配置问题,Windows 在你的计算机上创建了一个临时页面文件。

Win11&#xff1a;系统属性&#xff0c;由于启动计算机时出现了页面文件配置问题&#xff0c;Windows 在你的计算机上创建了一个临时页面文件。所有磁盘驱动器的总页面文件大小可能稍大于你所指定的大小。确定。 解决方法&#xff1a;

Vue - HTML基础学习

一、元素及属性 1.元素 <p>我是一级标题</p>2.嵌套元素 把元素放到其他元素之中——这被称作嵌套。 <p>我是<strong>一级</strong>标题</p>3.块级元素 块级元素在页面中以块的形式展现&#xff0c;会换行&#xff0c;可嵌套内联元素。 …

「漏洞复现」申瓯通信 在线录音管理系统 download 任意文件读取漏洞

0x01 免责声明 请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;作者不为此承担任何责任。工具来自网络&#xff0c;安全性自测&#xff0c;如有侵权请联系删…

Echarts 图表添加点击事件跳转页面,但只有图表部分点击才会跳转页面,坐标轴,区域缩放等点击不跳转。

默认的点击事件是这样的&#xff1a; myChart.on(click, function (param) {console.log(param) }) 这个事件需要点击具体图形才会触发&#xff0c;例如我上面的图&#xff0c;想选择a柱子&#xff0c;就需要明确点击到柱体才行&#xff0c;明显不符合正常的预期&#xff0c;正…

浮点数原理与`BigDecimal`实践应用

浮点数原理与BigDecimal实践应用 问题引入&#xff1a; 浮点数 浮点数如何表示数字&#xff1f; 浮点数采用科学计数法表示一个数字&#xff0c;具体格式为&#xff1a; V ( − 1 ) S ∗ M ∗ R E V (-1)^S * M * R^E V(−1)S∗M∗RE S&#xff1a;符号位&#xff0c;取…

vue3+crypto-js插件实现对密码加密后传给后端

最近在做项目的过程中又遇到了一个新的问题&#xff0c;在实现后端管理系统的个人信息页面中&#xff0c;涉及到修改密码的功能&#xff0c;刚开始我直接通过传参的方式将修改的密码传入给后端&#xff0c;可是后端说需要将原密码、新密码以及确认密码都进行加密处理&#xff0…

大模型技术的应用场景

大模型技术&#xff08;Large Language Model&#xff0c;LLM&#xff09;是指具有大量参数和训练数据的神经网络模型&#xff0c;它能够学习语言的统计规律&#xff0c;并生成与人类书写的文本相似的文本。大模型技术在近年来取得了重大进展&#xff0c;并开始在各种领域得到应…

OpenAI 推迟了 ChatGPT 的新语音模式

今年 5 月&#xff0c;OpenAI 首次为其人工智能聊天机器人平台ChatGPT演示了一种非常逼真、近乎实时的"高级语音模式"。几个月后&#xff0c;OpenAI 表示需要更多时间。 OpenAI 在其官方 Discord 服务器上发布了一篇文章&#xff0c;称其原计划于 6 月底开始向一小部…

04 Shell编程之正则表达式与文本处理器

1、正则表达式 1.1 正则表达式的定义 正则表达式又称为正规表达式、常规表达式。 正则表达式是使用单个字符来描述、匹配一系列符合某个句法规则的字符串&#xff0c; 简单来说&#xff0c;正则表达式就是一种匹配字符串的方法&#xff08;通过一些特殊符号&#xff0c;实现…

搜狗微信文章数据爬取可视化

搜狗微信文章数据爬取可视化 一、爬取流程1.1 寻找数据接口1.2 发送请求获取数据1.3 xpath表达式解析数据1.4 保存数据二、数据可视化三、完整代码一、爬取流程 搜狗微信的主页:https://weixin.sogou.com/,主页截图如下,在搜索框中输入要查询的内容,以“百合花”为例: 观…

学习记录698@基带传输和频带传输基础

还是在学习计算机网络物理层时遇到这些知识点&#xff0c;这里简单的记录一下&#xff0c;主要都是通信专业的知识 基带传输 信源发出的原始信号叫做基带信号&#xff0c;基带信号分为模拟基带信号与数字基带信号。基带信号一般是低频成分&#xff0c;适合在具有低通特性的有…

203.回溯算法:N皇后(力扣)

class Solution { public:vector<vector<string>> result; // 用于存储所有合法的 N 皇后放置方案// 判断当前位置 (row, col) 是否可以放置皇后bool isValid(int row, int col, vector<string>& chess, int n) {// 检查当前列是否有皇后for (int i 0;…