机器学习基础——带你实战朴素贝叶斯模型文本分类

机器学习基础|多项式朴素贝叶斯算法及实战 https://www.cnblogs.com/wgwg/p/13367847.html 朴素贝叶斯 朴素贝叶斯概念 朴素贝叶斯法是一种基于贝叶斯定理与特征条件独立假设的分类方法。其中朴素指的就是条件独立 。 朴素贝叶斯在分类的时候不是直接返回分类,而是返回属于某个分类的概率。 例如对文章的类别进行判断: 计算出的是每篇文章属于某个类别的概率,哪个类别占的比例比较大,则将文章归为哪一类。简单地说,朴素贝叶斯是根据概率的大小进行分类。 概率的计算 朴素贝叶斯需要用到一些概率知识,即联合概率和条件概率。 联合 阅读详情

本文始发于个人公众号:TechFlow


上一篇文章当中我们介绍了朴素贝叶斯模型的基本原理。


朴素贝叶斯的核心本质是假设样本当中的变量服从某个分布,从而利用条件概率计算出样本属于某个类别的概率。一般来说一个样本往往会含有许多特征,这些特征之间很有可能是有相关性的。为了简化模型,朴素贝叶斯模型假设这些变量是独立的。这样我们就可以很简单地计算出样本的概率。


想要回顾其中细节的同学,可以点击链接回到之前的文章:

机器学习基础——让你一文学会朴素贝叶斯模型


在我们学习算法的过程中,如果只看模型的原理以及理论,总有一些纸上得来终觉浅的感觉。很多时候,道理说的头头是道,可是真正要上手的时候还是会一脸懵逼。或者是勉强能够搞一搞,但是过程当中总会遇到这样或者那样各种意想不到的问题。一方面是我们动手实践的不够, 另一方面也是理解不够深入。


今天这篇文章我们实际动手实现模型,并且在真实的数据集当中运行,再看看我们模型的运行效果。



朴素贝叶斯与文本分类


一般来说,我们认为狭义的事件的结果应该是有限的,也就是说事件的结果应该是一个离散值而不是连续值。所以早期的贝叶斯模型,在引入高斯混合模型的思想之前,针对的也是离散值的样本(存疑,笔者推测)。所以我们先抛开连续特征的场景,先来看看在离散样本当中,朴素贝叶斯模型有哪些实际应用。


在机器学习广泛的应用场景当中,有一个非常经典的应用场景,它的样本一定是离散的,它就是自然语言处理(Natural Language Processing)。在语言当中,无论是什么语言,无论是一个语句或是一段文本,它的最小单位要么是一个单词,要么是一个字。这些单元都是离散的,所以天生和朴素贝叶斯模型非常契合。


我们这次做的模型针对的场景是垃圾邮件的识别,这应该是我们生活当中经常接触到的功能。现在的邮箱基本上都有识别垃圾邮件的功能,如果发现是垃圾邮件,往往会直接屏蔽,不会展示给用户。早期的垃圾邮件和垃圾短信识别的功能都是通过朴素贝叶斯实现的。


在这个实验当中,我们用的是UCI的数据集。UCI大学的机器学习数据集非常出名,许多教材和课本上都使用了他们的数据集来作为例子。我们可以直接通过网页下载他们的数据,UCI的数据集里的数据都是免费的。


垃圾邮件识别


下载完成之后,我们先挑选其中几条来看看:


ham Go until jurong point, crazy… Available only in bugis n great world la e buffet… Cine there got amore wat…

ham Ok lar… Joking wif u oni…

spam Free entry in 2 a wkly comp to win FA Cup final tkts 21st May 2005. Text FA to 87121 to receive entry question(std txt rate)T&C’s apply 08452810075over18’s

ham U dun say so early hor… U c already then say…


这份数据是以txt文件类型保存,每行文本的第一个单词表示文本的类别,其中ham表示正常,spam表示是垃圾邮件。


我们首先读取文件,将文件当中的内容先读取到list当中,方便我们后续的处理。


def read_file(filename):
    file = 
朴素贝叶斯原理分析及文本分类实战 朴素贝叶斯原理分析及文本分类实战1.什么是贝叶斯2.什么是朴素贝叶斯3.如何用朴素贝叶斯来进行文本分类问题1 数据精度问题问题2 log(0)得到负无穷问题 1.什么是贝叶斯 贝叶斯本质上就是条件概率分布,(通俗来讲,条件概率分布就是当我们知道了某一条件之后,所得出的用该条件所能推测得它属于的各个类别的概率)。 (1式) w是我们的条件或者称为已知信息,c为对应的类别或者结果,那么(1)式所表达的含义就是由w推测得到c的概率大小。(我还是喜欢大白话,贝叶斯就像是破案一样,我们现在已经掌握了证据w,由证 阅读详情

相关推荐

机器学习:利用多项式朴素贝叶斯处理文本分类评价

多项式朴素贝叶斯 多 项 式 朴 素 贝 叶 斯 : sklearn.naive_ bayes.MultinomialNB(alpha=1.0, fit_prior=True, class_prior=None)主要用于离散特征分类,例如文本分类单词统计,以出现的次数作为特征值。 参数说明:alpha 为可选项,默认 1.0,添加拉普拉修/Lidstone 平滑参数;fit_pri...

梓栋DREM 4780

NLP入门实战之——基于词频和TF-IDF,利用朴素贝叶斯机器学习方法新闻分类

NLP入门实战之——基于词频和TF-IDF,利用朴素贝叶斯机器学习方法对搜狗实验室文本分类 本人是零基础的小白,现在从零开始学习NLP,这是学习的一些简单的笔记,如有错误请指正。 编译环境:Jupyter Notebook Windows x64 本文主要分为两个板块: 一是对搜狗实验室的新闻数据进行预处理(Data Preparation)从而获得所需要的特征(feature),如将数据层层处理...

popofzk的博客 3489

《机器学习实战》—— 朴素贝叶斯

文章目录一、朴素贝叶斯二、基于贝叶斯决策理论的分类方法三、数学知识准备3.1 条件概率3.2 全概率公式3.3 贝叶斯推断四、使用条件概率来分类五、文本分类5.1 从文本中构建词向量5.2 从词向量计算概率5.3 根据现实情况修改分类器六、使用朴素贝叶斯过滤垃圾邮件6.1 切分文本6.1 使用朴素贝叶斯进行交叉验证七、总结 一、朴素贝叶斯 朴素贝叶斯(Naive Bayes)是一种基于概率理论的分类算法,以贝叶斯理论为理论基础,通过计算样本归属于不同类别的概率来进行分类,是一种经典的分类算法。朴素贝叶斯是

LIAO_0312的博客 3237

白话机器学习算法理论+实战之朴素贝叶斯

1. 写在前面 如果想从事数据挖掘和数据分析的工作,掌握常用的机器学习算法是非常有必要的,比如我之前写过的一篇十大机器学习算法的小总结,在这简单的先捋一捋, 常见的机器学习算法: 监督学习算法:逻辑回归,线性回归,决策树,朴素贝叶斯,K近邻,支持向量机,集成算法Adaboost等 无监督算法:聚类,降维,关联规则, PageRank等 为了详细的理解这些,曾经看过西瓜书,统计学习方法,机器学习...

Miracle8070 3436

Halcon 3D点云处理实战:从PLY文件读取到曲面匹配的完整流程(附避坑指南)

本文详细介绍了Halcon在3D点云处理中的完整流程,从PLY文件读取到曲面匹配,特别强调了3D算子的应用技巧和避坑指南。通过实战案例和参数优化建议,帮助开发者高效处理工业视觉检测中的复杂点云数据,提升匹配精度和性能。

weixin_42535720的博客 279

完整的申请邓白氏编码的流程(手把手教你申请邓白氏编码)

申请公司的苹果开发者账号和企业级的苹果开发者账号时,都会用到邓白氏编码,也就是我们申请苹果开发者账号时需要填写的D-U-N-S Number。     申请这个邓白氏编码是免费的,但是从像华夏邓白氏公司提交申请到可以申请苹果开发者账号来用这个9位的D-U-N-S Number,需要一段时间,我申请得到D-U-N-S Number,用了8个工作日(不算周末哦)

wxw2011014003的博客 9万+

基于TI C2000的CCS安装与工程创建完整示例

手把手演示基于TI C2000系列的CCS安装过程及首个工程创建步骤,涵盖环境配置与常见问题处理,助力快速上手嵌入式开发,ccs安装和工程搭建不再难。

weixin_42476987的博客 972

如何用Hugo Stack主题打造极简技术博客?3个必改配置与5个高级美化技巧

本文详细解析了如何深度定制Hugo Stack主题,打造个性化技术博客。文章提供了3个必改配置与5个高级美化技巧,涵盖字体美学、布局重构、代码块视觉强化及细节打磨,帮助开发者超越基础部署,实现从功能到美学的进阶,提升博客质感与用户体验。

carrot的博客 570

Transformer——从原理、模型架构到内部细节介绍

Transformer模型是一种基于注意力机制的深度学习模型,最早由Google在2017年的论文《AttentionIsAllYouNeed》中提出。自其问世以来就迅速席卷了自然语言处理他(NLP)领域,并在各类主流任务上取得了新的突破,包括机器翻译、语言建模、序列标注和文本分类等。在NLP领域取得巨大成功后,迅速扩展到了计算机视觉(CV)领域,并带来了革命性的变化。这种基于自注意力机制的深度学习模型,不仅在NLP任务中力压群雄,也成为CV领域的新宠。

小拉拉的博客 1万+

从镜头到像素:深入解析Camera、Sensor与V4L2的协同工作流

本文深入解析了摄像头从物理成像到软件控制的完整工作流。详细介绍了镜头、传感器(Sensor)与V4L2框架的协同机制,涵盖光电转换、同步信号、ISP图像处理等核心环节,并通过实战演示了如何使用v4l2-ctl工具进行调试,为嵌入式开发和驱动调试提供系统指南。

weixin_29230805的博客 390

Python爬虫实战:使用最新技术爬取新华网新闻数据

在当今信息爆炸的时代,网络爬虫技术已经成为获取互联网数据的重要手段。作为国内权威新闻媒体,新华网每天发布大量高质量的新闻内容,这些数据对于舆情分析、市场研究、自然语言处理等领域具有重要价值。本文将详细介绍如何使用Python最新技术构建一个高效、稳定的新华网新闻爬虫系统。本文详细介绍了如何使用Python最新技术栈构建一个高效、稳定的新华网新闻爬虫系统。我们从基础爬虫开始,逐步添加了代理支持、用户代理轮换、请求延迟、重试机制、动态页面渲染、数据存储等高级功能,最终实现了一个生产可用的分布式爬虫系统。

2201_76125261的博客 1771

关于 Nginx 监听地址 0.0.0.0 的详细解释

0.0.0.0在Nginx配置中表示监听服务器所有网络接口(包括公网IP、内网IP和本地回环地址),这是默认配置。当使用listen 80;时,Nginx会接受通过服务器任何IP地址的80端口访问请求。相比只监听特定IP,这种配置更通用,但也意味着服务会对外网开放,需注意安全风险。可通过netstat命令验证监听状态,显示0.0.0.0:80即表示正确配置。

weixin_43674738的博客 1567

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

上一篇: 线性代数精华——从正交向量到正交矩阵
下一篇: 算法浅谈——递归算法与海盗分金问题
TechFlow
博客等级 码龄7年 347粉丝 276原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值