机器学习-04-分类算法-02贝叶斯算法

news2024/12/26 23:08:38

总结

本系列是机器学习课程的系列课程,主要介绍机器学习中分类算法,本篇为分类算法与贝叶斯算法部分。

本门课程的目标

完成一个特定行业的算法应用全过程:

懂业务+会选择合适的算法+数据处理+算法训练+算法调优+算法融合
+算法评估+持续调优+工程化接口实现

参考

机器学习最易懂之贝叶斯模型详解与python实现

机器学习之朴素贝叶斯算法原理+Python实现

图解机器学习 | 朴素贝叶斯算法详解

图解机器学习算法:从入门到精通系列教程

简单,却又反直觉的“三门问题”,暴露出很多人根本不懂“概率”

大数据中的统计学基础——Day3

机器学习定义

关于机器学习的定义,Tom Michael Mitchell的这段话被广泛引用:
对于某类任务T性能度量P,如果一个计算机程序在T上其性能P随着经验E而自我完善,那么我们称这个计算机程序从经验E中学习
在这里插入图片描述

贝叶斯算法

预备知识

先验概率、条件概率、后验概率

条件概率: 就是事件A在事件B发生的条件下发生的概率,表示为P(A∣B),读作“在B发生的条件下A发生的概率。

先验概率: 在贝叶斯统计中,某一不确定量 p的先验概率分布是指:在考虑"观测数据"前,也就是没有样本集的情况下,能表达 p不确定性的概率分布。先验概率是指根据以往的经验和分析得到的概率,往往作为“由因求果”问题中的“因”出现。

后验概率: 在贝叶斯统计中,一个随机事件或者一个不确定事件的后验概率是在考虑和给出相关证据或数据后所得到的条件概率。同样,后验概率分布是一个未知量(视为随机变量)基于试验和调查后得到的概率分布。“后验”在本文中代表考虑了被测试事件的相关证据。

现有两个随机变量A,B,其中A表示西瓜的颜色,B表示西瓜的好坏:

条件概率:
在瓜颜色是青绿的情况下,瓜是好瓜的概率,记为 P(B=好瓜∣A=青绿);
在瓜是好瓜的情况下,瓜的颜色是青绿色的概率,记为P(A=青绿∣B=好瓜)。

先验概率:
瓜的颜色是青绿的概率,即 P(A=青绿),称作是A的先验概率,因为它不用考虑任何B方面的因素;
瓜是好瓜的概率,即P(B=好瓜),称作是B的先验概率,因为它不用考虑任何A方面的因素。

后验概率:

P(A=青绿∣B=好瓜)是在瓜是好瓜的情况下,瓜的颜色是青绿色的概率,也是由于得知B的取值后知道A的概率,所以是 A的先验概率;
P(B=好瓜∣A=青绿)是 在瓜颜色是青绿的情况下,瓜是好瓜的概率,也是由于得知 A的取值后知道 B 的概率,所以是 B的先验概率

贝叶斯公式

在这里插入图片描述
在这里插入图片描述

先验概率,在贝叶斯的很多应用中不重要(因为只要最大后验不求绝对值),需要时往往用全概率公式计算得到。P(A)叫做A事件的先验概率,即一般情况下,认为A发生的概率。
条件概率,又叫似然概率,一般是通过历史数据统计得到。P(B|A)叫做似然度,是A假设条件成立的情况下发生B的概率。
后验概率,一般是我们求解的目标。P(A|B)叫做后验概率,在B发生的情况下发生A的概率,也就是要求的概率。P(B)叫做标准化常量,即在一般情况下,认为B发生的概率。

贝叶斯定理(Bayes Theorem,也称贝叶斯公式)是基于假设的先验概率、给定假设下观察到不同数据的概率,提供了一种计算后验概率的方法。

穿裙子的概率

在这里插入图片描述
求: P(女生|长裤)—穿长裤人数中是女生的概率?

要知道穿长裤的人是女生的概率,要知道穿长裤女生的人数,也要知道穿长裤的总人数,两者相除就是长裤中女生的概率。假设学校人数为U

穿长裤总人数 = 穿长裤的男生人数+穿长裤的女生人数
= 60% * U + 40% * U *50%

穿长裤女生的人数 = 40% * U * 50%

随机抽取一个穿长裤的学生是女生的概率
= 穿长裤女生的人数/穿长裤总人数
= 40% * U * 50% / ( 60% * U + 40% * U *50%)
= 0.25

假设学生穿长裤记作事件A,学生穿长裤的概率就是P(A)。学生是女生记作事件B,学生是女生的概率是P(B),求:抽取的这个穿长裤学生是女生的概率(P(B|A))?
在这里插入图片描述

抽奖活动

某公司年终决定丼行抽奖活动,从全部员工中选取一名特等奖。公司人事架构如下:
在这里插入图片描述

(1)若被抽中的人是销售部的,问该员工是女性的概率?
(2)若被抽中的人是女生的,问该员工是销售部的概率是?
解题上来要设事件!!

解:设A={被抽中的是销售部的},B={被抽中的是女生}

(1)P(B|A)=P(AB)/P(A)=(10/100)/(30/100)=1/3

(2)P(A|B)=P(AB)/P(B)=(10/100)/(40/100)=1/4

病树浇水问题

病树的主人外出,委托邻居浇水,设已知如果不浇水,树死去的概率为0.8.若浇水则树死去的概率为0.15.有0.9的把握确定邻居会记得浇水.

(1)求主人回来树还活着的概率.

(2)若主任回来树还活着,求邻居忘了浇水的概率.

在这里插入图片描述

p=(0.10.8)/(0.10.8+0.9*0.15)=0.372

朴素贝叶斯算法核心思想

贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。而朴素贝叶斯(Naive Bayes)分类是贝叶斯分类中最简单,也是常见的一种分类方法。
在这里插入图片描述

一般挑西瓜时通常要「敲一敲」,听听声音,是清脆声、浊响声、还是沉闷声。所以,我们先简单点考虑这个问题,只用敲击的声音来辨别西瓜的好坏。根据经验,敲击声「清脆」说明西瓜还不够熟,敲击声「沉闷」说明西瓜成熟度好,更甜更好吃。
在这里插入图片描述

所以,坏西瓜的敲击声是「清脆」的概率更大,好西瓜的敲击声是「沉闷」的概率更大。当然这并不绝对——我们千挑万选地「沉闷」瓜也可能并没熟,这就是噪声了。当然,在实际生活中,除了敲击声,我们还有其他可能特征来帮助判断,例如色泽、跟蒂、品类等。

朴素贝叶斯把类似「敲击声」这样的特征概率化,构成一个「西瓜的品质向量」以及对应的「好瓜/坏瓜标签」,训练出一个标准的「基于统计概率的好坏瓜模型」,这些模型都是各个特征概率构成的。

这样,在面对未知品质的西瓜时,我们迅速获取了特征,分别输入「好瓜模型」和「坏瓜模型」,得到两个概率值。如果「坏瓜模型」输出的概率值大一些,那这个瓜很有可能就是个坏瓜。

条件独立假设与朴素贝叶斯

于贝叶斯定理的贝叶斯模型是一类简单常用的分类算法。在「假设待分类项的各个属性相互独立」的情况下,构造出来的分类算法就称为朴素的,即朴素贝叶斯算法。

所谓「朴素」,是假定所有输入事件之间是相互独立。进行这个假设是因为独立事件间的概率计算更简单。

朴素贝叶斯模型的基本思想:对于给定的待分类项
在这里插入图片描述

,求解在此项出现的条件下各个类别 yi 出现的概率,哪个 P(yi,X) 最大,就把此待分类项归属于哪个类别。

朴素贝叶斯算法的定义:设
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

总结一下,朴素贝叶斯模型的分类过程如下流程图所示:
在这里插入图片描述

伯努利与多项式朴素贝叶斯
1)多项式vs伯努利朴素贝叶斯

大家在一些资料中,会看到「多项式朴素贝叶斯」和「伯努利朴素贝叶斯」这样的细分名称,我们在这里基于文本分类来给大家解释一下:
在这里插入图片描述

在文本分类的场景下使用朴素贝叶斯,那对应的特征 aj 就是单词,对应的类别标签就是 y ,这里有一个问题:每个单词会出现很多次,我们对于频次有哪些处理方法呢?

如果直接以单词的频次参与统计计算,那就是多项式朴素贝叶斯的形态。
如果以是否出现(0和1)参与统计计算,就是伯努利朴素贝叶斯的形态。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
回到上述例子,如果身高是我们判定人性别(男/女)的特征之一,我们可以假设男性和女性的身高服从正态分布,通过样本计算出身高均值和方差,对应上图中公式就得到正态分布的密度函数。有了密度函数,遇到新的身高值就可以直接代入,算出密度函数的值。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

最烧脑的悖论,意识为什么会影响未来

参考:最烧脑的悖论,意识为什么会影响未来?颠覆你认知的三门问题

今天的内容足以颠覆你对世界的认知。在一道极为简单的数学问题上,98%的人都做了错误的选择。我们先从法外狂徒张三说起,张三落网后,和李四、王麻子关押在同一所天牢。恰逢新皇登基,大赦天下,要对一批死囚犯进行赦免。然而张三、李四、王麻子这三个死囚中,只能释放一个人,另外两个人将被处死。当消息传到天牢的时候,这三个人都喜出望外,因为都有被释放的一线可能。但在欢喜过后,又是无尽的恐怖,他们不知道谁会被释放。法外狂徒张三的大脑在飞速的运转,他便跟看守套近乎,欲获得情报。可是看守根本就不吃这一套,半个字都没说。
在这里插入图片描述

于是他启动逆向思维问看守:现在都知道3个囚犯当中有两个会被处死,只有一个人被释放。李四和王麻子这两个人中必有一人被处死,即便我知道这二人当中,谁会被处死,对我来说也并没有什么好处。那么,你能不能告诉我,谁还会被处死呢?”看守听后觉得很有道理,就告诉他,李四会被处死。得到这个消息后,张三兴奋不已。
在这里插入图片描述

他认为李四被处死,自己和王麻子被释放的概率就从1/3上升到了1/2。按照张三的逻辑,他被处死的概率同样也会变为1/2。屏幕前的你,是不是和张三算出的概率一样呢?但是你知道吗这个结果是错误的。正确的答案是:李四被处死,张三被释放的概率不变,王麻子被释放的概率将提升至2/3。这是为什么呢?稍后我会专门讲到。现在我们还得从全世界智商最高人说起。
在这里插入图片描述

三门问题-让我们做个交易吧

其实这个问题源自1970年,美国纽约电视台创办的一个电视游戏节目,叫做《让我们做个交易吧》。主持人在台上放置了三扇关闭了的门,其中一扇门的后面藏着一辆跑车,其余两扇门的后面藏的则是更为便宜的东西,比如说其它两扇门的后面藏的是羊。游戏的规则就是让参与者从这三扇关闭的门中做出选择,如果参与者选中了藏有跑车的门,那么他将会获得奖品就是这辆跑车,如果选择的门后面没有跑车而是羊,
则挑战失败,没有任何奖品。对于每一个参与者来说,肯定是想选中藏着跑车的那扇门。
在这里插入图片描述

刚开始的时候,游戏规则还是比较简单的,就是嘉宾随意选一个门,主事人打开。要是抽中跑车,那就赚到了。大家看明白了吗?不论你选择开哪一扇门,中奖的概率都是1/3。几期节目之后,主持人认为这样的规则太过单调,缺乏舞台的活力。于是他在游戏环节中和参与者打心理战,经常突如其来地变换游戏规则,给参赛人和观众都来个猝不及防,既使得观众们困惑不已,又迫使参赛者“脑筋急转弯”。具体操作是这样的,在参与者选定一扇门之后,主持人并不急于的打开参与者选择的那扇门,宣布游戏的结果。而是选择打开另一扇藏着山羊的门。这里需要说明的是,主持人是知道跑车在哪扇门后面的。然后问参与者是否换门。
在这里插入图片描述
比如当一位参与者选中了1号门之后,主持人则打开了2号门,2号门后门则是一只羊。这个时候主持人就会问参与者,你要不要换门?我想大部分人的第一反应,和参与者是一样的,换门和不换门有什么区别吗?一共就只有三扇门,打开了一扇藏着羊的门。剩下的两扇门中,必定有一扇能够中奖,一扇不能。换不换的概率不都是1/2吗?这个时候你会作何选择呢?大部分的观众都支持不换门,参与者也认为换门没有意义,于是就没有换门。结果1号门的后面是一只羊。
在这里插入图片描述

这个节目非常的火爆,但是参与者却没有严肃的思考过是否应该选择换门这个问题 。这个时候有人就想到了智商最高的人玛丽莲·沃斯·莎凡特。并写信问她,你帮忙给推算推算,从科学的角度,到底该不该换门呢?经过一番思索之后,玛丽莲回复的是“应该换门”。玛丽莲认为换门后获胜的概率是不换门的两倍。也就是说换门的取胜概率为2/3,不换门则为1/3。
在这里插入图片描述

在玛丽莲收到读者的信后,就根据游戏画了一张图,她认为这个游戏只能出现以下的三种情况。参与者选择了一扇门,主持人打开了藏有羊的门,如果参与者换门出现的第一种情况,参与者选中了有跑车的门,换到了有羊的门;
在这里插入图片描述

第二种嘉宾选择了一扇有羊的门,主持人打开了一扇有羊的门,如果这个时候换门,刚好获得跑车。
在这里插入图片描述

第三种情况和第二种情况差不多,参与者选择了一扇有羊的门,主持人打开了有羊的门,那只要参与者选择换门,就会获得跑车。
在这里插入图片描述

在第二种或第三种的情况里,参与者只要选择换门,就会获胜。所以玛丽莲得出的答案就是,只要参与者选择换门,获胜的概率就会提升到2/3。
在这里插入图片描述

玛丽莲计算的结果,和我们的直觉似乎背道而驰,直觉告诉我们换门与不换门中奖的概率都是1/2,玛丽莲的答案却是2/3。这和前面张三被释放的概率一模一样。

在这里插入图片描述
1978年5月11日,《光明日报》发表本报特约评论员文章《实践是检验真理的唯一标准》,这句话放在任何国家或任何领域,永远都不会过时。网上有一个网名叫做西到咸鱼的计算机大神,他认为检验玛丽莲计算的结果是否正确的唯一办法,就是通过计算机对游戏进行反复的演算。于是他单独编写了一套程序,取名为《三门问题的验证》。
在这里插入图片描述

他用这个程序进行了10万次的推演,不换门赢得跑车的次数是33115次,换门后赢得跑车的次数为66885次。根据西到咸鱼实验的数据来看,换门后获奖的概率和玛丽莲计算出的概率很相似,提升到2/3。看来玛丽莲没有算错。

在这里插入图片描述

将3个门记为1,2,3号,假设参赛者先选择的是1号门。

记A={1号门是汽车};
B={2号门 是汽车};
C={3号门是汽车},
则P(A)=P(B)=P©=1/3。
原来的选择有1/3的机会获得 汽车。

假设主持人开启了2号门,这个事件记为D。那么参赛者坚持选择或是改变选择而赢得 汽车的概率又是多少?
在这里插入图片描述
从图中的第一列看出,当参赛者选择了1号门, 2号门被打开的概率P(D)=1.5/3;汽车在1号门 并且主持人打开了2号门的概率P(AD)=0.5/3 。
坚持选择:P(A|D)=P(AD)/P(D)=1/3
改变选择:P(CD)=1/3 P(C|D)=P(CD)/P(D)=2/3

所以,改变选择将有更大的几率获得汽车。

ID3 C4.5 CART算法比较

决策树——ID3和C4.5(理论+图解+公式推导)
策略产品经理必读系列—第七讲ID3、C4.5和CART算法详解
决策树(一)| 基础决策树 ID3、C4.5、CART 核心概要

确定方向过程

针对完全没有基础的同学们
1.确定机器学习的应用领域有哪些
2.查找机器学习的算法应用有哪些
3.确定想要研究的领域极其对应的算法
4.通过招聘网站和论文等确定具体的技术
5.了解业务流程,查找数据
6.复现经典算法
7.持续优化,并尝试与对应企业人员沟通心得
8.企业给出反馈

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

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

相关文章

Java宝典-实战小项目:图书管理系统

目录 1. 功能介绍及效果演示2. 整体框架的搭建2.1 book包2.2 operation包2.3 user包2.4 Main 3. 相关功能的实现3.1 Add(新增图书)3.2 Borrow(借阅图书)3.3 Change(修改信息)3.4 Delete(删除图书)3.5 Exit(退出系统)3.6 Return(归还图书)3.7 Search(查找)3.8 Show(展示书架) 老…

Python绘图-14绘制3D图(下)

14.7绘制3D等高线图个性化colormap 14.7.1图像呈现 14.7.2绘图代码 import numpy as np # 导入numpy库,numpy是Python的一个强大的数值计算扩展程序库,支持大量的维度数组与矩阵运算。 import matplotlib.pyplot as plt # 导入matplotlib的绘图模块p…

hyperf 二十六 数据迁移 二

教程:Hyperf 参考文章hyperf 二十五 数据迁移 一-CSDN博客 根据之前写的数据迁移的文章,已经说明Hyperf\Database\Schema\Schema::create()实际运行Hyperf\Database\Schema\Grammars\MySqlGrammar::compileCreate()生成的sql字符串。 文档所谓"在…

Games101笔记-计算机图形学概述

光栅化:把三维空间的几何形体显示在屏幕上 实时:每秒30帧的画面 曲线和曲面: 如何表示一条光滑曲线,如何表示曲面如何用简单的曲面通过细分的方法得到更复杂的曲面在形状发生变化时,面要如何变化,如何保…

STM32F103 CubeMX 定时器输出PWM控制呼吸灯

STM32F103 CubeMX 定时器输出PWM控制呼吸灯 1. 生成代码1. 1 配置外部时钟,SWD口1.2 配置定时器31.3 配置定时器2 2. 代码编写的部分 使用的cubmx 软件的版本:6.2.0 最新版本 6.10(2024年3月11日) 1. 生成代码 1. 1 配置外部时钟…

从零学算法287

287.给定一个包含 n 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。 假设 nums 只有 一个重复的整数 ,返回 这个重复的数 。 你设计的解决方案必须 不修改 数组 nums 且只…

数字电子技术笔记——组合逻辑功能

1.Adder(加法器) Half-Adder(半加器) Full-Adder(全加器) 74LS283(4-bit parallel adders) carry look-ahead adder (超前进位加法器) 2.Comparator(比较器)…

基于Python3的数据结构与算法 - 14 队列

目录 一、定义 1. 环形队列 2. 自定义队列 二、队列的内置模块 1. 双向队列 一、定义 队列(Queue)是一个数据集合,仅允许在列表的一端进行插入,另一端进行删除。进行插入的一端称为队尾(rear)&#…

python请求url下载网站中的视频

举例网站:Mini Impresora Trmica Bluetooth Porttil Inalmbrico | Envo gratis ctrlF4 先搜mp4 搜不到就搜m3u8 了 视频格式如下 ( AVI(Audio Video Interleave):是一种由微软公司开发的音频和视频文件格式。MOV&…

02_electron快速建立项目

一、安装 yarn 在此之前可以先安装 git:Git - Downloads (git-scm.com) 下面就是 yarn 安装的代码,在终端输入即可。 npm install --global yarn 检查是否安装成功: yarn --version 二、快速建立一个electron项目 其实在Getting Started - …

【HarmonyOS】鸿蒙开发之工具安装与工程项目简介——第1章

鸿蒙开发工具包下载与使用 鸿蒙开发工具包下载 下载deveco studio开发工具包 系统要求: Windows 操作系统:Windows 10/11 64 位 内存:8GB 及以上 硬盘:100GB 及以上 分辨率:1280*800 像素及以上macOS 操作系统:mac…

【rk3229 android7.1.2 替换默认输入法】

问题平台描述 问题描述解决方法 郑重声明:本人原创博文,都是实战,均经过实际项目验证出货的 转载请标明出处:攻城狮2015 Platform: Rockchip CPU:rk3229 OS:Android 7.1.2 Kernel: 3.10 问题描述 国内客户,觉得安卓自带的输入法不好用&#x…

LeetCode刷题---每月交易I

LeetCode官方题解 解题思想: 首先按照日期和国家/地区进行分组 对分组后的结果求解,使用IF函数进行过滤 涉及函数 1.在对日期截取时,使用了MySQL中的DATE_FORMAT函数,将日期转换为指定格式的日期 //2024-03-11,截取为 2024-03-…

【数据可视化】数据可视化入门前的了解

个人主页 : zxctscl 如有转载请先通知 文章目录 1. 前言2. 数据可视化概述2.1 数据可视化的定义及特性2.1.1 数据可视化的定义2.1.2 特性 2.2 数据中蕴含的信息2.3 数据可视化的作用2.3.1 模式2.3.2 关系2.3.3 异常 3. 数据可视化流程4. 数据可视化工具4.1 ECharts4…

如何在Linux部署FastDFS文件服务并实现无公网IP远程访问内网文件——“cpolar内网穿透”

文章目录 前言1. 本地搭建FastDFS文件系统1.1 环境安装1.2 安装libfastcommon1.3 安装FastDFS1.4 配置Tracker1.5 配置Storage1.6 测试上传下载1.7 与Nginx整合1.8 安装Nginx1.9 配置Nginx 2. 局域网测试访问FastDFS3. 安装cpolar内网穿透4. 配置公网访问地址5. 固定公网地址5.…

记录一下某外资的面试

文章目录 标题English introduction标题What did u do in this gap time标题What’S the big challenge in your work experience标题 4、介绍一个自己熟悉的项目或最近的项目,包括项目的背景,使用的技术,在里面的角色标题5、项目中有多少个微…

力扣--深度优先算法/回溯算法78.子集

思路分析: 首先,定义了一个类 Solution,其中包含一个成员变量 result 用于存储最终的所有子集。在类中定义了一个私有成员函数 dfs,用于执行深度优先搜索,生成所有可能的子集。主函数 subsets 初始化结果,…

Vue2(4)——iHRM组织架构

组织架构-树组件应用 树形组件-用层级结构展示信息,可展开或折叠。 属性设置 data(绑定数据)props(设置属性)- children(设置子节点的字段名)/ label(设置显示内容的字段名)default-expand-all(默认展开所有节点) 组织架构-树组件自定义结构 显示右侧结构 节点结…

个人商城系统开源(配置支付宝支付!)

原文地址:个人商城系统开源(配置支付宝支付!) - Pleasure的博客 下面是正文内容: 前言 由于近期实在没有什么话题可写和一些有趣的项目教程可以分享。所以我只能决定将我自己亲手编写的一个迷你迷你商城系统进行开源…

npm install报错,error <https://npm.community>解决方法

报错信息如下: 分析原因: 1.可能是由于node版本过低,或者过高,解决方法看我另一文章:npm install报错,npm版本过高,需要切换低版本node,过程记录 2.网络问题导致 3.切换node版本后&#xff0…