【Python机器学习】朴素贝叶斯——使用朴素贝叶斯进行文档分类(理论基础)

机器学习的一个重要应用就是文档的自动分类。在文档分类中,整个文档(比如电子邮件)是实例,而电子邮件中的某些元素则构成特征。虽然电子邮件是一种会不断增加的文本,但我们同样也可以对新闻报道、用户流言、公文等其他任意类型的文本进行分类。我们可以观察文档中出现的词,并把每个词的出现或者不出现作为一个特征,这样得到的特征数目就会跟词汇表中的词目一样多。朴素贝叶斯是贝叶斯分类器的一个扩展,适用于文档分类的常用算法。

使用每个词作为特征并观察他们是否出现,这样得到的特征数目会非常非常多。据估计,仅在英语中,单词总数就有500000之多,为了进行英文阅读,估计需要掌握数千单词。

朴素贝叶斯的一般过程:

1、收集数据

2、准备数据:需要数值型或者布尔型数据

3、分析数据:有大量特征时,绘制特征作用不大,此时使用直方图效果更好

4、训练算法

5、测试算法

6、使用算法:一个常见的朴素贝叶斯应用是文档分类。可以在任意的分类场景中使用朴素贝叶斯分类器,不一定非要是文本。

假设词汇表中有1000个单词。要得到好的概率分布,就需要足够的数据样本,假定样本数为N。由统计学知,如果每个特征需要N个样本,那么对于10个特征将需要N^{10}个样本,对于包含1000个特征的词汇表将需要N^{1000}个样本。可以看到,所需要的样本数会随着特征数目增大而迅速增长。

如果特征之间相互独立,那么样本数就可以从N^{1000}减少到1000*N。所谓独立指的是统计意义上的独立,即一个特征或单词出现的可能性与它和其他单词相邻没有关系。举个例子,假设单词bacon出现在unhealthy后面与出现在delicious后面的概率相同。当然,我们知道这种假设并不成立,bacon尝尝出现在delicious附近,很少出现在unhealthy附近,这个假设正式朴素贝叶斯中朴素一词的含义。朴素贝叶斯分类器中的另一个假设是:每个特征同等重要。其实这个假设也有问题。

如果要判断留言板的留言是否得当,那么可能不需要看完所有1000个单词,而只需要看10~20个特征就足可以做出判断了。尽管上述假设存在一些小的瑕疵,但朴素贝叶斯的实际效果很好。

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

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

相关文章

ubuntu20.04使用systemd服务设置python程序开机自启动

1. 使用 systemd 服务设置开机自启动 假设已经有一个可执行的python程序,然后用一个sh脚本去启动python程序,正常情况使用挂起的方式nohup启动,日志输出到指定文件: sudo touch run.sh sudo chmod 777 run.shsh文件内容如下&…

如何使用 Django 搭建 Web 服务器

如何使用 Django 搭建 Web 服务器 Django 是一个强大的 Python Web 框架,帮助开发者快速构建和维护高质量的 Web 应用。它包括了许多实用的工具和功能,如 ORM(对象关系映射)、模板引擎、表单处理等。下面,我将通过原理…

recursion depth exceeded” error

有些时候不可以用jax.jit装饰器 参考资料:使用 JAX 后端在 Keras 3 中训练 GAN |由 Khawaja Abaid |中等 (medium.com)

JVM GC总结

CMS垃圾回收器 参考:垃圾回收之CMS、G1、ZGC对比:https://developer.baidu.com/article/details/2770126 CMS(Concurrent Mark Sweep)垃圾回收器是一种以获取最短回收停顿时间为目标的收集器。它非常符合在注重用户体验的应用上使…

Nginx中WebSocket配置说明

查看 laravel 的 swool扩展文档时遇到不懂的,问了文心一言 https://gitee.com/resourcesplus/laravel-s/#%E5%90%AF%E7%94%A8websocket%E6%9C%8D%E5%8A%A1%E5%99%A8 nginx语法中 upstream 和 proxy_pass 用法

51单片机15(直流电机实验)

一、序言:我们知道在单片机当中,直流电机的控制也是非常多的,所以有必要了解一些这个电机相关的一些知识,以及如何使用单片机来控制这个电机,那么在没有学习PWM之前,我们先简单的使用GPIO这个管脚来控制电机…

C#初级——枚举

枚举 枚举是一组命名整型常量。 enum 枚举名字 { 常量1, 常量2, …… 常量n }; 枚举的常量是由 , 分隔的列表。并且,在这个整型常量列表中,通常默认第一位枚举符号的值为0,此后的枚举符号的值都比前一位大1。 在将枚举赋值给 int 类型的…

学习日志:JVM垃圾回收

文章目录 前言一、堆空间的基本结构二、内存分配和回收原则对象优先在 Eden 区分配大对象直接进入老年代长期存活的对象将进入老年代主要进行 gc 的区域空间分配担保 三、死亡对象判断方法引用计数法可达性分析算法引用类型总结1.强引用(StrongReference…

AR 眼镜之-充电动画定制-实现方案

目录 📂 前言 AR 眼镜系统版本 充电动画 1. 🔱 技术方案 1.1 方案介绍 1.2 实现方案 关机充电动画 亮屏/锁屏充电动画 2. 💠 关机充电动画 2.1 关机充电动画核心处理类与路径 2.2 实现细节 步骤一:1)定制 …

uniapp map组件自定义markers标记点

需求是根据后端返回数据在地图上显示标记点&#xff0c;并且根据数据状态控制标记点颜色&#xff0c;标记点背景通过两张图片实现控制 <mapstyle"width: 100vw; height: 100vh;":markers"markers":longitude"locaInfo.longitude":latitude&…

2024年国际高校数学建模竞赛问题B:空间迁移计划和战略 成品文章分享

2024年国际高校数学建模竞赛问题B&#xff1a;空间迁移计划和战略&#xff08;2024 International Mathematics Molding Contest for Higher Education (IMMCHE)Problem B: Space Migration Program and Strategy&#xff09; 星际迁移计划中的资源分配与风险管理策略研究 摘…

yumdownloader

yumdownloader - -resolve - -destdir/data/pp zbar-devel tar -czvf pp.tar.gz pp/

开始尝试从0写一个项目--后端(三)

器材管理 和员工管理基本一致&#xff0c;就不赘述&#xff0c;展示代码为主 新增器材 表设计&#xff1a; 字段名 数据类型 说明 备注 id bigint 主键 自增 name varchar(32) 器材名字 img varchar(255) 图片 number BIGINT 器材数量 comment VARC…

git--本地仓库修改同步到远程仓库

尝试将本地分支推送到远程仓库时&#xff0c;出现一个非快速前进的错误。通常是因为远程仓库中的分支包含本地分支没有的提交。在推送之前&#xff0c;需要将远程仓库的更改合并到本地分支。 解决步骤如下&#xff1a; 切换到你的本地分支&#xff1a; 确保处于想要推送的分支…

Hive3:基本介绍

一、概述 Apache Hive是一款分布式SQL计算的工具&#xff0c; 其主要功能是&#xff1a; 将SQL语句翻译成MapReduce程序运行 Hive是单机工具&#xff0c;只需要部署在一台服务器即可。 Hive虽然是单机的&#xff0c;但是它可以提交分布式运行的MapReduce程序运行。 二、基本…

友盟U-APM——优秀的前端性能监控工具

在数字化转型浪潮的推动下,移动应用已成为企业连接用户、驱动业务增长的核心载体。然而,随着应用复杂度的日益提升,用户对于应用性能稳定性的期待也水涨船高。面对应用崩溃、卡顿、加载缓慢等频发问题,如何确保应用的流畅运行,成为产研团队亟待解决的关键挑战。在此背景下,友盟…

苦学Opencv的第九天:模板匹配

Python OpenCV入门到精通学习日记&#xff1a;模板匹配 前言 模板匹配是一种最原始、最基本的识别方法&#xff0c;可以在原始图像中寻找特定图像的位置。模板匹配经常应用于简单的图像查找场景中&#xff0c;例如&#xff0c;在集体合照中找到某个人的位置。 #mermaid-svg-N…

在Vim中编译和运行代码:一站式指南

Vim是一款功能强大的文本编辑器&#xff0c;广泛用于程序员和开发人员中。虽然Vim主要用于文本编辑&#xff0c;但它也提供了一些方便的功能来编译和运行代码。本文将详细介绍如何在Vim中编译和运行代码&#xff0c;包括设置编译快捷键、使用插件以及集成构建系统。 1. 引言 …

面试题005:面向对象的特征 之 多态性

多态的使用前提&#xff1a; 类的继承关系&#xff1a;在多态中必须存在有继承关系的子类和父类方法的重写&#xff1a;子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法。当子类重写父类的方法被调用时,只有对象继承链中的最末端的方法才会被调用。向上…

C#中的异步编程:Task、Await 和 Async

public async void DoSth() {await Task.Run(() > {//...DoSth...}); } ①函数的返回类型前加上&#xff1a; async ②函数内加上&#xff1a; await Task.Run(() > { }); ③在上面{ ... } 内添加要处理的程序代码&#xff0c; 这样运行到 DoSth() 函数就…