Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >机器学习-朴素贝叶斯分类器

机器学习-朴素贝叶斯分类器

作者头像
XXXX-user
发布于 2019-09-25 03:16:05
发布于 2019-09-25 03:16:05
7670
举报
文章被收录于专栏:不仅仅是python不仅仅是python

背景介绍

什么是分类器?

分类器是一种机器学习模型,用于基于某些特征来区分不同的对象。

朴素贝叶斯分类器的原理:

朴素贝叶斯分类器是一种概率性机器学习模型,用于分类任务。分类器基于贝叶斯定理。

贝叶斯定理:

使用贝叶斯定理,我们可以找到已知B发生,A发生的可能性。在这里,B是证据,A是假设。这里所做的假设是预测变量/特征是独立的。也就是说,一个特定功能的存在不会影响其他功能。因此,它被称为朴素。

例如:

让我们以一个例子来获得更好的直觉。考虑打高尔夫球的问题。数据集如下所示。

根据一天的特点,我们对一天是否适合打高尔夫球进行分类。列代表这些功能,行代表各个条目。如果我们取数据集的第一行,则可以观察到如果前景多雨,温度高,湿度高且不大风,则不适合打高尔夫球。我们在此做出两个假设,如上所述,我们认为这些预测变量是独立的。即,如果温度高,则不一定表示湿度高。这里所做的另一个假设是,所有预测变量对结果的影响均等。即,有风的日子在决定是否打高尔夫球方面没有更多的重要性。

根据此示例,贝叶斯定理可以重写为:

变量y是类别变量(打高尔夫球),它表示是否适合打高尔夫球或没有给定条件。变量X代表参数/特征。

X给出为:

这里的x_1,x_2….x_n代表这些特征,即可以将它们映射到外观,温度,湿度和大风。通过替换X并使用链式规则扩展,我们得到:

现在,您可以通过查看数据集并将其替换为方程式来获取每个值。对于数据集中的所有条目,分母不会更改,而是保持不变。因此,可以去除分母并且可以引入比例。

在我们的例子中,类变量(y)只有两个结果,是或否。在某些情况下,分类可能是多元的。因此,我们需要找到概率最大的y类。

使用上面的函数,我们可以得到给定预测变量的类。

朴素贝叶斯分类器的类型: 多项式朴素贝叶斯: 这主要用于文档分类问题,即文档是否属于体育,政治,技术等类别。分类器使用的特征/预测词是文档中出现的单词的频率。 伯努利·朴素贝叶斯: 这类似于多项式朴素贝叶斯,但预测变量是布尔变量。 我们用于预测类变量的参数仅采用yes或no值,例如,是否在文本中出现单词。 高斯朴素贝叶斯: 当预测变量采用连续值并且不是离散值时,我们假定这些值是从高斯分布中采样的。

高斯分布(正态分布)

由于值在数据集中的显示方式发生了变化,因此条件概率公式变为:

结论:

朴素贝叶斯算法主要用于情感分析(NLP问题),垃圾邮件过滤,推荐系统等。它们快速,易于实现,但最大的缺点是预测变量要求独立。在大多数现实生活中,预测变量是相互依赖的,这会妨碍分类器的性能。

文章来源

翻译自:https://towardsdatascience.com/naive-bayes-classifier-81d512f50a7c

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 yale记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Linux内核有没有rootfs,Linux内核rootfs的初始化过程[通俗易懂]
在Linux shell中执行mount命令,通常可以看到某个做了文件系统的磁盘分区或flash分区或内存文件系统做为所谓的根文件系统被mount到了挂载点/处。
全栈程序员站长
2022/11/10
2.5K0
Linux根目录的文件系统是如何被挂载的
该方法首先拿到上面注册的rootfs文件系统,再调用vfs_kern_mount方法挂载该系统,然后将挂载结果mnt赋值给类型为struct path的变量root,同时将root.dentry赋值为mnt->mnt_root,即挂载的rootfs文件系统的根目录。
KINGYT
2019/06/11
3.8K0
Linux根文件系统(rootfs原理详解)
文件系统是os用来明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。 文件系统由三部分组成:文件系统的接口,对对象操作和管理的软件集合,对象及属性。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。
JavaEdge
2021/02/23
13.6K0
linux initramfs,Linux INITRAMFS 与 INITRD「建议收藏」
第一步:Kernel首先要注册一个RAMFS文件系统类型(实际注册的类型名称是”ROOTFS”,后续我们可以看到它实际上就是”RAMFS”);
全栈程序员站长
2022/09/22
1K0
rootfs文件_clang编译android内核
ramdisk.img是编译Android生成的一个镜像文件,最后和kernel一起打包生成boot.img镜像。ramdisk.img中主要是存放android启动后第一个用户进程init可执行文件和init.*.rc等相关启动脚本以及sbin目录下的adbd工具。
全栈程序员站长
2022/11/08
2.5K0
android rootfs的挂载流程[通俗易懂]
out/host/linux-x86/bin/mkbootfs out/target/product//root | out/host/linux-x86/bin/minigzip > out/target/product//ramdisk.img 上述命令分两步进行: 1.out/host/linux-x86/bin/mkbootfs out/target/product/*/root 生成一个cpio文件,利用cpio 可将文件或目录从文件库获取出来或将散列文件拷贝到文件库。 2.out/host/linux-x86/bin/minigzip 将生成的cpio文件压缩成一个gzip格式的文件“out/target/product/*/ramdisk.img“
全栈程序员站长
2022/11/08
2.6K0
解析Linux中的VFS文件系统之文件系统的注册(二)
继上一篇文章:https://cloud.tencent.com/developer/article/1053882 3. 文件系统的注册 这里的文件系统是指可能会被挂载到目录树中的各个实际文件系统,所谓实际文件系统,即是指VFS 中的实际操作最终要通过它们来完成而已,并不意味着它们一定要存在于某种特定的存储设备上。比如在笔者的 Linux 机器下就注册有 "rootfs"、"proc"、"ext2"、"sockfs" 等十几种文件系统。 3.1 文件系统的数据结构 在 Linux 源代码中,每种实际的文件
233333
2018/03/07
2.1K0
解析Linux中的VFS文件系统之文件系统的注册(二)
Linux根目录的文件系统是如何被挂载的 . 续
该方法中的saved_root_name变量的值是在kernel启动时,由传给kernel的root参数决定的,对应的设置方法如下:
KINGYT
2019/06/11
4.8K0
深入理解Linux文件系统之文件系统挂载(上)
我们知道,Linux系统中我们经常将一个块设备上的文件系统挂载到某个目录下才能访问这个文件系统下的文件,但是你有没有思考过:为什么块设备挂载之后才能访问文件?挂载文件系统Linux内核到底为我们做了哪些事情?是否可以不将文件系统挂载到具体的目录下也能访问?下面,本文将详细讲解Linxu系统中,文件系统挂载的奥秘。
用户7244416
2021/08/06
2K0
从 lsof 开始,深入理解Linux虚拟文件系统
原文:https://juejin.im/post/6875110082724659213 作者:有疑说
入门笔记
2022/06/02
4480
从 lsof 开始,深入理解Linux虚拟文件系统
从 lsof 开始,深入理解 Linux 虚拟文件系统!
作者:cyningsun 链接:https://juejin.im/post/6875110082724659213
杰哥的IT之旅
2020/09/28
1.4K0
从 lsof 开始,深入理解 Linux 虚拟文件系统!
文件系统专栏 | 之文件系统挂载
ext4文件系统挂载 大家可以使用以下命令挂载一个u盘到 /mnt目录下: mount -t ext4  /dev/sda1 /mnt 其中mount这个应用程序就是使用了mount函数进行系统调用,其系统调用为: SYSCALL_DEFINE5(mount, char __user *, dev_name, char __user *, dir_name,   char __user *, type, unsigned long, flags, void __user *, data) {  return
刘盼
2022/08/31
3.4K0
文件系统专栏 | 之文件系统挂载
内核文件系统挂载和Open文件
ext4挂载 在linux 5.x的内核中,实际文件系统的挂载采用新的挂载API,引入了struct fs_context用于内部文件系统挂载的信息。 应用端发起mount命令,进入mount系统调用,执行do_mount的函数 // vfs层保留该小节需要的核心字段 struct super_block { // 文件系统类型 struct file_system_type *s_type; // 文件系统super_block的操作函数 const struct super_operations
用户4700054
2022/08/17
1.1K0
300来行代码带你实现一个能跑的最小Linux文件系统
Linux作为一个类UNIX系统,其文件系统保留了原始UNIX文件系统的表象形式,它看起来是这个样子:
Linux阅码场
2019/09/02
4.9K0
300来行代码带你实现一个能跑的最小Linux文件系统
挂载文件系统出现"kernel panic..." 史上最全解决方案
bootargs为: noitinrd root=/dev/mtdblock2 rootfstype=cramfs console=ttySAC0,115200 init=/linurc mem=64M
韦东山
2020/09/30
2.1K0
Linux启动流程 梳理| 思维导图 | 流程图 | 值得收藏
嵌入式与Linux那些事
2024/06/11
3320
Linux启动流程 梳理| 思维导图 | 流程图  | 值得收藏
【openwrt】【overlayfs】Openwrt系统overlayfs挂载流程
overlayfs是一种叠加文件系统,在openwrt和安卓系统中都有很广泛的应用,overlayfs通常用于将只读根文件系统(rootfs)和可写文件系统(jffs2)进行叠加后形成一个新的文件系统,这个新的文件系统“看起来”是可读写的,这种做法的好处是:
知否知否应是绿肥红瘦
2025/02/19
3020
【openwrt】【overlayfs】Openwrt系统overlayfs挂载流程
Ext3 mount过程分析
本质上,Ext3 mount的过程实际上是inode被替代的过程。例如,/dev/sdb块设备被mount到/mnt/alan目录。那么mount这个过程所需要解决的问题就是将/mnt/alan的dentry目录项所指向的inode屏蔽掉,然后重新定位到/dev/sdb所表示的inode索引节点。在没有分析阅读linux vfs mount代码的时候,我的想法是修改dentry所指向的inode索引节点,以此实现mount文件系统的访问。经过分析,在实际的vfs mount实现过程中,还是和我原始的想法略有差别,但是,基本目标还是相同的。
py3study
2020/01/07
1.6K0
《Linux内核分析》之构造一个简单的Linux系统MenuOS 实验总结
在原来配置的基础上,make menuconfig选中如下选项重新配置Linux,使之携带调试信息
WindCoder
2018/09/20
2.3K0
《Linux内核分析》之构造一个简单的Linux系统MenuOS 实验总结
深入理解Linux文件系统之文件系统挂载(下)
注:老内核使用的是vfsmount来描述文件系统的一次挂载,现在内核都使用mount来描述,而vfsmount被内嵌到mount中,主要来描述文件系统的超级块和跟dentry。
用户7244416
2021/08/06
1.9K0
推荐阅读
相关推荐
Linux内核有没有rootfs,Linux内核rootfs的初始化过程[通俗易懂]
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档