机器学习——关于极大似然估计法的一些个人思考

最近在回顾机器学习的一些相关理论知识,回顾到极大似然法时,对于极大似然法中的一些公式有些迷糊了,所以本文主要想记录并分享一下个人关于极大似然估计法的一些思考,如果有误,请见谅,欢迎一起前来探讨。当然,如果这篇文章还能入得了各位“看官”的法眼,麻烦点赞、关注、收藏,支持一下!

一、须知前提

可能有一部分小伙伴的概率学等相关理论知识相对薄弱,因此,为了让大家更好的理解,在对极大似然估计法进行说明前,先对相关的须知理论知识做一个简单的说明

在理解极大似然估计法时,有两需要理解,一个是贝叶斯定理,一个是联合概率

1、贝叶斯定理

直接给出公式:

对于贝叶斯定理的公式,可能很多小伙伴不能理解是怎么得来的,其实本人也不甚了解,但是着并并不影响公式的使用,所以大家不需要过度纠结这条公式是怎么来的,其实只要会用就可以,当然有兴趣的小伙伴可以自行去检索一下,相信网络上有很多相关资料。

但是,我们必须要理解公式中每个部分代表着什么,这样才能保证我们可以正常使用。

这里比较重要的是条件概率联合概率,公式中的P(x,c)就是联合概率,对于联合概率此处先不讲,但是会在下一小节重点解释,公式中的P(c|x)和P(x|c)就是条件概率,举两个例子大家感受一下:

P(好瓜|敲声=脆响)=敲声脆响的瓜是好瓜的概率

P(敲声=脆响|好瓜)=好瓜的敲声是脆响的概率

对此,我们不难发现,对于条件概率,大家可以理解为,在某一前提的情况下发生某件事的概率

至于为什么使用贝叶斯公式,其实原因很简单,因为P(c|x)在实际生活中无法求得或者求得的投入入过大不划算,比如说,如果我们要求P(好瓜|敲声=脆响)时,我们通过敲打西瓜可以知道敲声是否脆响,但是无法直接得出是不是好瓜,要想知道西瓜是否是好瓜,我们需要把西瓜切开,一两个瓜还好,要是成百上千呢?如果仅仅只是为了知道瓜是不是好瓜而将每个瓜都切开这不现实。

2、联合概率

在贝叶斯定理部分,已经给出了条件概率的形式,在概率中还有一种概率形式叫做联合概率,其形式如下:

或者是:

 对于联合概率,大家可以理解为,多个事件同时发生的概率,即“”的关系,举个简单的例子大家感受一下:

P(敲声脆响,触感硬滑)=敲声脆响触感硬滑的概率

另外,根据样本的分布是否独立,联合概率分成两种形式。

当属性/样本之间是独立分布时:

或者:

 为了让大家更好理解,我举个例子:

 P(敲声=脆响,触感=硬滑,根蒂=蜷缩)=P(敲声=脆响)*P(触感=硬滑)*P(根蒂=蜷缩)

这里需要注意的是千万千万不要写成累加的形式。为什么是累乘而不是累加,我举个例子简单解释一下,P表示求概率想必大家都知道,概率必然是小于等于1的,若采用累加的形式,当敲声要么脆响要么沉闷,触感要么硬滑要么绵软,根蒂要么蜷缩要么硬挺时:

P(敲声=脆响)=P(触感=硬滑)=P(根蒂=蜷缩)=0.5

 P(敲声=脆响,触感=硬滑,根蒂=蜷缩)=P(敲声=脆响)+P(触感=硬滑)+P(根蒂=蜷缩)=1.5>1

概率值是1.5,大于1,这显然是错误的,因此我们不难得出,采用累加的形式是错误的。

说到这里我就再多说一句,什么情况下我们可以采用累加的形式,举个例子大家感受一下:

当敲声有三个值时,即敲声可以是脆响、清响、沉闷,如果我们要求敲声不为清脆的概率,或者说敲声等于脆响或者沉闷的概率,我们可以用累加,即:

P(敲声清脆)=P(敲声=脆响U敲声=沉闷)=P(敲声=脆响)+P(敲声=沉闷)

当属性/样本之间是非独立分布时:

举个例子,x1是x2的父节点,即x2的值受x1影响,如下所示:

举个例子:

 P(敲声=脆响,触感=硬滑)=P(敲声=脆响)*P(触感=硬滑|敲声脆响)

二、极大似然估计法有啥用?

在上面一节中提到了贝叶斯定理,而极大似然法就是为了求解贝叶斯公式中的P(x|c),比如求好瓜中敲声脆响的概率P(敲声=脆响|好瓜)。讲到这里,可能有些小伙伴,有些迷糊,P(x|c)明明很清楚也很好求,为啥还要用极大似然法,原因其实很简单,下面会进行说明。

对于单一样本或者单一属性而言确实很好求,就好像求解P(敲声=脆响|好瓜),但是现实生活中我们需要求解的可能是多个属性,或者含有多个样本的样本集,即P(x1,x2,……xn|c),对于这种情况我们往往很难直接求得。

举个例子,假设对于每个属性/样本x1~xn都有0和1两个值的话,那么x1~xn的组合形式也就有2^{n}个,这样也就是说,要想使得训练集准确,训练集必须包含每一种可能性。因此,我们训练集中的训练样本数至少要有2^{n}个,而且这些训练样本还必须都不同。当n大起来或者当x1~xn的取值不仅仅只有两个值时,就会存在要么训练集中样本数量巨大导致训练过程耗时耗力的问题,要么就会存在训练集中某种组合缺失导致训练结果不准的问题,而极大似然法却恰恰可以帮助我们解决这些问题。

三、极大似然估计法

先说一下极大似然估计法估计条件概率的基本原理/策略,极大似然估计法是先假定其具有某种确定的概率分布形式,再基于训练样本对概率分布的参数进行估计(这是《西瓜书》上的原话)。

个人理解:极大似然估计法认为每一个标记c都对应一种概率分形式,比如说正态分布、均匀分布等等,而我们求条件概率就是求特定分布下的某一值的概率,比如说,标记c对应的是正态分布,求P(x=1|c),即求在这个正态分布下的x=1的概率是多少,当正态分布曲线画出来后,横轴代表数据点的值,纵轴代表数据点在该分布下的概率。因此,极大似然法就将求条件概率转换成了求标记c的具体分布,当分布曲线确定好之后,我们就可以直接在曲线上得出相应数据点的概率。

下面我将给出极大似然法的核心公式:

从上面的三条公式,我们不难看出,极大似然法最后求的是令LL(\theta_{c})达到最大的\theta _{c},这与上面所讲的极大似然估计法的原理保持一致。

其中,\theta _{c}是一个参数向量,以正态分布为例,\theta _{c}=\left [ \mu _{c},\sigma _{c} \right ],当\theta _{c}确定后,正态分布曲线就可以定下来了,D_{c}表示训练集D 中第c 类样本组成的集合,并且我们假定这些样本是独立同分布的。

至于为什么求得的\theta _{c}要使LL(\theta_{c})达到最大,原因很简单。因为我们最根本目的是为了求的一个误差最小的模型,或者说预测结果最准却得模型,即P(c|x)要达到最大,因为P(c)和P(x)是确定的,所以根据贝叶斯公式,我们要求P(c|x)达到最大就可以转换成求P(x|c)达到最大。

样本点是由采样得来的,是一定的,而极大似然估计法则认为标记c对应的是一种概率分布形式,在不同的概率分布形式下,相同的样本点的概率是不同的,所以要使的P(x|c)达到最大,就是要找到一个最佳的概率分布曲线。

当标记c确定为某一概率分布形式后,比如正态分布,通过\theta _{c}就可以确定具体概率分布曲线的形态,不同的\theta _{c}会产生不同形态的概率分布曲线,也就会导致P(x|c)出现不同的值,当P(x|c)达到最大时,LL(\theta_{c})必然达到最大。因此,求解P(x|c)的最大值,就也可以转换成求使LL(\theta_{c})达到最大的\theta _{c}

参考书籍

周志华老师的《西瓜书》

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

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

相关文章

Could not find Chrome (ver.xxxxx). This can occur if either\n

文章目录 错误解决方法 错误 Could not find Chrome (ver. 119.0.6045.105). This can occur if either\n 1. you did not perform an installation before running the script (e.g. npx puppeteer browsers install chrome) or\n 2. your cache path is incorrectly configu…

topic 之RCLCPP实现

创建节点 本节我们将创建一个控制节点和一个被控节点。 控制节点创建一个话题发布者publisher,发布控制命令(command)话题,接口类型为字符串(string),控制接点通过发布者发布控制命令&#xf…

【Linux】升级FastJSON版本-jar

摘要 在长期运行的应用服务器上,近期的安全漏洞扫描揭示了fastjson组件存在潜在的安全隐患(FastJSON是一个Java 语言实现的 JSON 解析器和生成器。FastJSON存在远程代码执行漏洞,恶意攻击者可以通过此漏洞远程执行恶意代码来入侵服务器&…

怎么解析二级域名,一个一级域名可以解析多少二级域名?

在构建网站或应用时,域名是连接用户与服务器的重要桥梁。注册了一级域名后,如何解析二级域名,以及一个一级域名可以解析多少个二级域名,是很多网站管理人员都非常关心的问题。本文国科云将简单探讨下这两个问题,并给出…

数学,LeetCode 3102. 最小化曼哈顿距离

一、题目 1、题目描述 给你一个下标从 0 开始的数组 points ,它表示二维平面上一些点的整数坐标,其中 points[i] [xi, yi] 。 两点之间的距离定义为它们的 曼哈顿距离 。 请你恰好移除一个点,返回移除后任意两点之间的 最大 距离可能的 最小…

Dynadot 2024年第一季度回顾

关于Dynadot Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮…

java进程把服务器CPU打满问题排查

1、top命令定位问题进程 2、查看进程的所有线程信息,记下占用最高的进程 top -Hp 38080553、将第2步得到的线程号转化为十六进制 printf %x\n 38080594、结果里搜索 jstack 3808055|grep -A 10 3a1b3b5、定位问题 根据上步搜索到的结果,可以看到是GC…

【PyQt5】

PyQT5线程基础(1) 分离UI主线程和耗时子线程QThread自定义信号 分离UI主线程和耗时子线程 在应用程序中,主线程负责处理用户的输入事件、更新UI元素和响应系统的回调,而耗时的任务(例如网络请求、数据库访问、图像处理…

关闭这八个电脑设置,保护个人隐私

你知道吗?电脑可能一直在偷窥你的小秘密。朋友们,一定要记得关闭这8个电脑设置哦,这样可以有效地保护我们的个人隐私。 按住键盘Windows键加i键,快速打开Windows设置。然后点击隐私选项。 我们来看基本的常规设置。里面有四个设置…

在表格中选中el-radio后, 怎么获取选中的这一行的所有数据?

演示: 图中, 选中这行数据后, 怎么获取到当前的数据? 代码: <tr v-for"item in gridData"><td><input type"radio" v-model"checkout" change"getDateFn" :data-type"item.articleType" :data-channelNam…

GEE代码实例教程详解:年度和月度土地覆盖变化分析

简介 在本篇博客中&#xff0c;我们将使用Google Earth Engine (GEE) 对土地覆盖变化进行年度和月度的分析。通过Google的Dynamic World数据集&#xff0c;我们可以识别2023年至2024年间土地覆盖的类型和变化。 背景知识 Google Dynamic World数据集 Google/DYNAMICWORLD/V…

百川工作手机实现销售管理微信监控系统

在瞬息万变的商业战场中&#xff0c;每一分效率的提升都是企业制胜的关键。传统销售管理模式已难以满足现代企业对精准、高效、合规的迫切需求。今天&#xff0c;让我们一同探索如何利用工作手机这一创新工具&#xff0c;为您的销售团队装上智能翅膀&#xff0c;开启销售管理的…

基于springboot+vue实现的厨艺交流平台(文末源码+Lw)093

93基于SpringBootVue的实现的厨艺交流平台&#xff08;源码数据库万字Lun文流程图ER图结构图演示视频软件包&#xff09; 系统功能&#xff1a; 这次开发的厨艺交流平台功能有个人中心&#xff0c;食材分类管理&#xff0c;用户管理&#xff0c;菜品分类管理&#xff0c;菜谱信…

解锁敦煌网成功秘籍:批量注册买家号测评的高效策略

敦煌网&#xff08;DHgate&#xff09;作为一个跨境电商平台&#xff0c;搭建境外本土网络环境并实现批量注册买家号下单&#xff0c;需要遵循一系列严谨的步骤和考虑多个关键因素。以下是一个概括性的指南&#xff1a; 一、环境要求 国外服务器&#xff1a;首先&#xff0c;…

HumbleBundle7月虚幻捆绑包30件军事题材美术模型沙漠自然环境大逃杀模块化建筑可定制武器包二战现代坦克飞机道具丧尸士兵角色模型20240705

HumbleBundle7月虚幻捆绑包30件军事题材美术模型沙漠自然环境大逃杀模块化建筑可定制武器包二战现代坦克飞机道具丧尸士兵角色模型202407051607 这次HumbleBundle捆绑包是UE虚幻军事题材的&#xff0c;内容非常多。 有军事基地、赛博朋克街区、灌木丛景观环境等 HB捆绑包虚幻…

7-打包安装程序

接下来假设我们想要将我们的项目分发给其他人&#xff0c;以便他们可以使用它。我们希望在各种平台上提供二进制和源代码发行版。这与我们之前在安装和测试中所做的安装略有不同&#xff0c;在安装中我们安装了从源代码构建的二进制文件。在本例中&#xff0c;我们将构建支持二…

C# 构造函数依赖注入 使用out向外传递参数

天真目前解决方法 天真 using System;namespace forCode20191 {class Program {static void Main(string[] args) {bool flag false;Tmp tt new Tmp(out flag);Console.WriteLine(flag); // 将输出 falsett.Doit();Console.WriteLine(flag); // 将输出 trueConsole.ReadKey(…

“DDoS攻击的最新防御策略:从检测到缓解的全方位方案“

DDoS攻击的最新防御策略 DDoS攻击&#xff08;分布式拒绝服务攻击&#xff09;是网络安全领域的重大威胁&#xff0c;它通过大量的恶意流量淹没目标服务器或网络&#xff0c;导致服务不可用。为了有效防御DDoS攻击&#xff0c;最新的策略强调从检测到缓解的全方位方案。 多层防…

深度学习的数学PDF

链接: https://pan.baidu.com/s/1_jScZ7dcyAWGqbrad6bbCQ?pwd9gj9 提取码: 9gj9 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦

【苍穹外卖】Day2 手把手敲完细节

目录 1. 新增员工 1.1 需求分析和设计 1.2 代码开发 ①定义DTO类&#xff1a;(在sky-pojo里&#xff09; ②EmployeeController中创建新增员工方法save() ③EmployeeService里声明save方法&#xff08;altenter&#xff09; ④EmployeeServiceImpl中实现save方法 ⑤在E…