机器学习数学基础(2)--最大似然函数
声明:本文章是根据网上资料,加上自己整理和理解而成,仅为记录自己学习的点点滴滴。可能有错误,欢迎大家指正。
在机器学习和统计学领域中,似然函数(Likelihood Function)是一个至关重要的概念。它不仅是参数估计的基础,而且在模型选择、模型评估以及众多先进的算法和技术中都有着广泛的应用。
1. 似然VS概率
概率和似然是统计学中两个不同的概念,它们在概念上和应用上都有所区别。以下是通过一个具体例子来展示这两者之间的区别:
1.1 概率(Probability)
定义:概率是在给定的参数下,某个事件发生的可能性。它是未来事件发生的度量,通常用介于0和1之间的数值表示。
例子:假设我们有一个标准的六面骰子,每个面上有1到6的数字。当我们掷骰子时,得到数字6的概率是:𝑃(数字=6)=1/6
在这个例子中,参数是骰子的面数(6面),事件是掷出数字6,概率是已知的,并且是在掷骰子之前就确定的。这里的关键是,概率是在给定参数(骰子的公平性,即所有面出现概率相同)的情况下,事件发生的可能性。
1.2 似然(Likelihood)
定义:似然是在已知观测数据的情况下,这些数据对于不同参数值的支持程度。它不是数据发生的概率,而是在给定数据时参数值的相对合理性。
现在,假设我们不确定骰子是否公平,我们通过掷骰子20次,观察到数字6出现了5次。我们想要估计掷出数字6的真实概率 𝜃:
- 似然函数 表示为 𝐿(𝜃∣5次6),是 𝜃 的函数,表示在参数 𝜃下观测数据(5次6)的相对可能性。似然函数是: 𝐿(𝜃∣5次6)=
。
- 对𝜃的求解,可用最大似然方法,具体可看后面,这时求出的𝜃的值不一定是1/6。
对比上面的例子:
概率函数 给出了在给定参数下事件发生的可能性。在我们的例子中,它告诉我们在假设骰子公平的情况下,掷出6的概率是 1/6。
似然函数 用于在已知观测数据的情况下,评估不同参数值的合理性。在我们的例子中,它帮助我们根据观测到的5次6来估计 𝜃 的值。
1.3 两者区别:
- 概率是已知参数下事件的度量:在概率中,参数是已知的,我们计算的是某个事件发生的可能性。
- 似然是已知数据下参数的度量:在似然中,数据是已知的,我们评估的是不同参数值对数据的支持程度。
- 概率是绝对的:概率给出了在给定参数下事件发生的确切概率。
- 似然是相对的:似然比较了在已知数据下,不同参数值的相对合理性。
总结来说,概率关注的是在给定参数下事件发生的可能性,而似然关注的是在给定数据下参数值的合理性。这两者在统计分析中扮演着不同的角色。
2. 概率函数VS似然函数
2.1 概率函数(Probability Function, PF)
-
定义:概率函数是描述随机变量取各种可能值的概率。对于离散随机变量,它是一个定义在所有可能结果上的函数;对于连续随机变量,它是一个概率密度函数。
-
用途:概率函数用于计算在给定参数下,随机变量取特定值或处于某个区间的概率。
(1)概率函数
- 对于离散型随机变量,概率函数通常指的是概率质量函数(Probability Mass Function, PMF),它给出了随机变量取每个可能值的概率.
-
对于离散随机变量 X,概率函数可以表示为
,满足以下性质:。
- 非负性:对于所有的 𝑥x,有 𝑃(𝑋=𝑥)≥0。
- 归一性:所有可能的 𝑥x 上的概率之和为1,即:
- 对于连续随机变量 X
(2) 概率密度函数(Probability Density Function, PDF)
- 概率密度函数是用于描述连续型随机变量在某个值或某个区间内取值的概率的函数。
- 对于连续型随机变量 X,其概率密度函数
表示为
,其中
是累积分布函数满足以下性质:
- 非负性:对于所有的 𝑥,有 𝑓(𝑥)≥0。
- 归一性:𝑋的整个取值范围内,概率密度函数的积分总和为1,即:
2.2 似然函数(Likelihood Function, LF)
-
定义:似然函数是在已知观测数据的情况下,这些数据对于不同参数值的相对可能性。它是参数的函数,用于估计参数。
-
用途:似然函数用于参数估计,特别是在最大似然估计中,通过找到使似然函数最大化的参数值。
-
数学表示:对于简单随机样本,似然函数可以表示为观测数据的概率函数的乘积:
其中,𝜃 是参数,
是观测值,
是给定参数 𝜃下第 𝑖个观测值的概率密度函数或概率质量函数。
2.3 两者区别:
- 参数与数据的角色:在概率函数中,参数是已知的,数据是随机的;而在似然函数中,数据是已知的,参数是未知的。
- 目的:概率函数用于计算特定事件发生的概率,似然函数用于估计模型参数。
- 形式:概率函数通常与特定的概率分布相关联(如正态分布、二项分布等),而似然函数是观测数据对参数的函数。
例子:假设我们有一个骰子,并且想知道掷出6点的概率 𝜃。
- 概率函数:如果我们假设骰子是公平的,那么掷出6点的概率函数是 𝑃(6点)=𝜃=1/6。
- 似然函数:若我们掷了20次,观察到5次6点,似然函数将是
。我们通过最大化这个似然函数来估计 𝜃 的值。
3.最大似然估计
极大似然估计(Maximum Likelihood Estimation, MLE)是一种在已知观测数据的情况下估计概率模型参数的方法。它基于以下原则:
-
似然函数:首先定义似然函数,它是在给定参数值
下观测数据
的概率。对于独立同分布的观测数据
,似然函数可以表示为所有观测数据
的概率密度函数(对于连续型随机变量)或概率质量函数(对于离散型随机变量)的乘积:
-
最大化似然:然后,选择使似然函数达到最大值的参数
。这些参数值被称为极大似然估计值。
-
对数转换:为了简化计算,通常对似然函数取对数,因为对数是单调函数,可以将乘积转换为求和:
-
求解参数:对对数似然函数求导,并找到导数为零的点,这通常涉及到数值优化技术。
-
统计性质:在大样本情况下,极大似然估计具有一些良好的统计性质,如一致性(估计值随着样本量的增加而趋近于真实值)和渐近正态性(估计量的分布趋近于正态分布)。
仍然是上面的例子:现在,假设我们不确定骰子是否公平,我们通过掷骰子20次,观察到数字6出现了5次。我们想要估计掷出数字6的真实概率 𝜃:
写出似然函数:根据观测结果(例如,掷20次得到5次6),写出似然函数:
取对数:为了简化计算,通常对似然函数取对数,得到对数似然函数:
求导数:对 𝜃 求导,并找到导数为零的点,这通常通过设置导数等于零并解方程来完成:
解方程:解上述导数等于零的方程,得到 𝜃 的值:
,可得
得到最大似然估计:解得
或 0.25,这就是掷出数字6的最大似然估计概率。
如果骰子是完全公平的,我们期望 θ 接近 1/6,但由于我们的样本数据,我们得到的估计值是 1/4。这可能表明骰子存在偏差,或者仅仅是由于随机变异。
4. 似然比
似然比(Likelihood Ratio)是统计学中用于比较两个统计模型对同一数据集的拟合优度的量。它是两个似然函数值的比率,通常用于模型选择、假设检验和参数估计中。
定义:
似然比 𝜆λ 可以定义为两个模型的似然函数值的比值: 其中,
和
分别是参数 𝜃1和 𝜃2 下观测数据 𝑋 的似然函数值。
应用:
- 模型选择:在比较两个模型时,似然比可以用来评估哪个模型对数据的拟合更好。
- 似然比检验:一种统计假设检验方法,用于比较零假设(𝐻0H)和备择假设(𝐻1)下的似然函数值。
例子:假设我们有一个简单的数据集,由10个观测值组成,我们想要比较以下两个模型:
- 模型1(零假设 𝐻0): 假设观测值来自均值为
,标准差为
的正态分布。
- 模型2(备择假设 𝐻1): 假设观测值来自均值为
,标准差为
的正态分布。
假设我们观测到的数据是 X={2,3,4,5,6,7,8,9,10,11}。
计算似然函数:首先,我们为每个模型计算似然函数。假设
和
是已知的,我们只估计均值 𝜇。
模型1的似然函数(假设
):
![]()
模型2的似然函数(假设
):
计算似然比:
评估似然比:如果似然比 𝜆 接近1,说明两个模型对数据的拟合程度相似;如果 𝜆 显著大于1,模型1可能更合适;如果 𝜆显著小于1,模型2可能更合适。
似然比检验:在实际应用中,我们通常对数化似然比,并将其与特定的统计量进行比较,以决定是否拒绝零假设。
通过这个例子,我们可以看到似然比如何用于比较不同模型对同一数据集的拟合优度,并在模型选择和假设检验中发挥作用。
相关文章:
机器学习数学基础(2)--最大似然函数
声明:本文章是根据网上资料,加上自己整理和理解而成,仅为记录自己学习的点点滴滴。可能有错误,欢迎大家指正。 在机器学习和统计学领域中,似然函数(Likelihood Function)是一个至关重要的概念。…...
详解 @RequestHeader 注解在 Spring Boot 中的使用
个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119@qq.com] 📱个人微信:15279484656 🌐个人导航网站:www.forff.top 💡座右铭:总有人要赢。为什么不能是我呢? 专栏导…...
C# 表达式树的简介与说明
文章目录 1. 表达式树是什么?2. 表达式树的基本组成3. 构建表达式树的步骤4. 表达式树的使用场景5. 示例代码6. 总结 在 C# 编程中,表达式树(Expression Tree)是一个强大的概念,它允许我们以代码的形式表示运行时的代码…...
【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第六十三章 输入子系统实验
i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…...
[补题记录]Leetcode 15. 三数之和
传送门:三数之和 思路 为了去重,需要先排序。 排序之后,显然每一个 n u m s [ i ] nums[i] nums[i] 就可以作为三数之中的第一个数。 因此,对于每一个 i i i,第二、三个数只能在 [ i 1 , n ] [i 1, n] [i1,n]…...
什么是sql注入攻击,如何预防介绍一下mysql中的常见数据类型
什么是sql注入攻击,如何预防 sql注入攻击指的是应用程序对用户输入数据的合法性没有判断或者过滤不严格,在sql语句中插入任意的恶意语句进行非法操作。 预防方式1:使用预编译语句比如PrepareStatement,用户输入的所有数据都以参数…...
史上最全的Seata教学并且连接springcloudAlibaba进行使用
来都来了点个赞收藏一下在走呗~~🌹🌹玫瑰 一、Seata是什么 Seata(Simple Extensible Autonomous Transaction Architecture,简单可扩展自治事务框架)是一种分布式事务解决方案,旨在解决分布式系统中的事务…...
InternLM Git 基础知识
提交一份自我介绍。 创建并提交一个项目。...
【Unity模型】古代亚洲建筑
在Unity Asset Store上,一款名为"Ancient Asian Buildings Pack"(古代亚洲建筑包)的3D模型资源包,为广大开发者和设计师提供了一个将古代亚洲建筑风格融入Unity项目的机会。本文将详细介绍这款资源包的特点、使用方式以…...
木马后门实验
实验拓扑 实验步骤 防火墙 配置防火墙—充当边界NAT路由器 边界防火墙实现内部 DHCP 分配和边界NAT需求,其配置如下 登录网页 编辑接口 配置e0/0 配置e0/1 编辑策略 测试:内部主机能获得IP,且能与外部kali通信 kali 接下来开启 kali 虚…...
【React】useState:状态更新规则详解
文章目录 一、基本用法二、直接修改状态 vs 使用 setState 更新状态三、对象状态的更新四、深层次对象的更新五、函数式更新六、优化性能的建议 在 React 中,useState 是一个非常重要的 Hook,用于在函数组件中添加状态管理功能。正确理解和使用 useState…...
C#中的异步编程:Task、Await 和 Async
public async void DoSth() {await Task.Run(() > {//...DoSth...}); } ①函数的返回类型前加上: async ②函数内加上: await Task.Run(() > { }); ③在上面{ ... } 内添加要处理的程序代码, 这样运行到 DoSth() 函数就…...
SSRF-labs-master靶场
目录 file_get_content.php sql_connect.php download.php dns-spoofing.php dns_rebinding.php 访问链接 http://127.0.0.1/SSRF/# file_get_content.php 在编程语言中,有一些函数可以获取本地保存文件的内容。这些功能可能能够从远程URL以及本地文件 如果没…...
HBuilder X中配置vue-cli项目和UI库
目录 一.前端项目结构 二.在HBuilder X中搭建vue-cli项目 1. 安装node.js前端环境 2. HBuilder X创建一个vue-cli项目 3. vue-cli项目结构 4. 如何运行前端项目 5. 创建组件 6. 组件路由(页面跳转) 6.1 创建router目录 6.2 使用路由 6.3 在main.js中配置路由 6.4 路…...
如何用PostMan按照规律进行循环访问接口
①设置动态变量 步骤一: 设置环境变量 1. 创建环境变量集合 在 Postman 左上角选择 "环境",然后点击 "添加" 来创建一个新的环境变量集合。给它起一个名称,比如 "uploadDemo". 2. 添加初始变量 在新创建的环境变量集…...
稳态准直太阳光模拟器仪器光伏电池组件IV测试
太阳能模拟器电池IV测试仪、单体测试仪,配备匹配标准的AAA Class稳态太阳能模拟器及相关测试附件,可对太阳能电池片的IV性能进行测量、分级分选等; 介绍 AAA class太阳光模拟器整合完整的IV测量系统,针对各种太阳能电池的性能&a…...
vue3 reactive原理(二)-代理Set和Map及ref原理
Set和Map类型的数据也属于异质对象,它们有特定的属性和方法用来操作自身。因此创建代理时,针对特殊的方法需要特殊的对待。 Vue 的ref 是基于reactive函数实现的,它在其基础上,增加了基本类型的响应性、解决reactive在解构时丢失…...
Python自然语言处理库之NLTK与spaCy使用详解
概要 自然语言处理(NLP)是人工智能和数据科学领域的重要分支,致力于让计算机理解、解释和生成人类语言。在Python中,NLTK(Natural Language Toolkit)和spaCy是两个广泛使用的NLP库。本文将详细介绍NLTK和spaCy的特点、功能及其使用方法,并通过具体示例展示如何使用这两…...
Hive-内部表和外部表
区别 内部表实例 准备数据 查看数据 删除数据 外部表实例 准备数据 查看数据 删除数据 区别 内部表:管理元数据(记录数据的文件和目录的信息)和数据。当删除内部表时,会删除数据和表的元数据,所以当多个表关…...
Java并发编程(三)
Java并发编程 1、什么是 Executors 框架 Executors框架是一个根据一组执行策略调用,调度,执行和控制的异步任务的框架。 无限制的创建线程会引起应用程序内存溢出。所以创建一个线程池是个更好的的解决方案,因为可以限制线程的数量并且可以…...
RISC-V MCU移植RTOS实战:以鸿蒙OS LiteOS-M与CH32V307为例
1. 项目概述与核心思路 最近在折腾一块沁恒微电子的CH32V307开发板,这是一颗基于RISC-V架构的MCU,性能不错,外设也丰富。手头正好有个任务,需要把华为的鸿蒙OS LiteOS-M内核给移植上去。这活儿听起来挺唬人,但实际拆解…...
本centOS 10 机器所安装的数据库
方案三:考虑使用系统自带的 MySQL 版本检查 CentOS Stream 10 默认的 AppStream 仓库中是否提供了 MySQL 或其他变体(如 MariaDB)。这些版本会与系统完美兼容。sudo dnf module list mysql sudo dnf install -y mysql:8.0 # 如果可用 # 或者…...
3分钟免费解锁B站大会员4K视频:终极B站视频下载器完整指南
3分钟免费解锁B站大会员4K视频:终极B站视频下载器完整指南 【免费下载链接】bilibili-downloader B站视频下载,支持下载大会员清晰度4K,持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader 还在为无法下载…...
Mythos模型:AI安全能力跃迁与红队自动化新范式
1. 这不是一次普通模型发布:Mythos背后的真实技术分水岭“Claude Mythos Preview”这七个字,最近在安全圈和AI工程一线引发的震动,远超多数人最初预估。它不是又一个参数堆叠的“更大模型”,也不是一次常规的SOTA刷新——它是一次…...
Blender3mfFormat终极指南:开启3D打印无缝工作流的新时代
Blender3mfFormat终极指南:开启3D打印无缝工作流的新时代 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 你是否曾为Blender与3D打印软件之间的格式转换而烦恼…...
2026年第十八届“中国电机工程学会杯”全国大学生电工数学建模竞赛A题绿电直连型电氢氨园区优化运行参考仿真及论文(仿真代码+论文)
2026年第十八届“中国电机工程学会杯”全国大学生电工数学建模竞赛A题绿电直连型电氢氨园区优化运行参考仿真及论文。www.bilibili.com/video/BV1Q7Li6hE27/?vd_source6ea1beb17174384a0b3d09d6d35580f6 摘 要 本文针对绿电直连型电氢氨园区的优化运行问题,在题目…...
NV040D语音芯片在儿童坐姿纠正器中的低成本高效应用
1. 项目概述:从痛点出发的智能硬件设计作为一名在消费电子和智能硬件领域摸爬滚打了十几年的工程师,我见过太多“为设计而设计”的产品,它们功能花哨,却往往忽略了最核心的用户需求。今天想和大家深入聊聊的,是一个看似…...
Serverless多事件触发器:提升FaaS效率的关键技术
1. Serverless计算中的多事件触发器:突破传统FaaS的局限在当今云原生架构中,Serverless计算已成为构建弹性应用的重要范式。作为其核心组件的函数即服务(FaaS)平台,如AWS Lambda和Google Cloud Functions,通过事件驱动机制实现了资…...
Maven依赖管理进阶:如何用dependencyManagement和import scope优雅管理Spring Cloud版本(附父子模块配置实例)
Maven依赖管理进阶:如何用dependencyManagement和import scope优雅管理Spring Cloud版本 在微服务架构盛行的今天,一个项目动辄包含数十个模块已成为常态。我曾接手过一个Spring Cloud Alibaba项目,由于历史原因,各子模块中Spring…...
医疗票据 OCR 识别 API 多场景落地指南:医保结算 + 商保理赔 + 医疗信息化(附 Python/Java 完整示例)
《医疗 OCR 识别 API 怎么选?(报告单 / 发票 / 检测单)》医疗票据 OCR 识别 API 多场景落地指南:医保结算 商保理赔 医疗信息化(附 Python/Java 完整示例) 导语:每天上万张医疗票据ÿ…...
