机器学习-朴素贝叶斯

分类是机器学习最常见的任务。

定义:给定一个对象 X,将其划分到预定义好的某一个类别 yi中

–输入 X

–输出Y (取值于有限集 {y1,y 2,…yn }) 

应用:

–人群,新闻分类,Query分类,商品分类,网页分类,垃圾邮件过滤,网页排序 

不同类型的分类

类别数量:

  1. 二値分类:Y 的取值只有两种,如:email 是否垃圾邮件

  2. 多值分类:Y 的取值大于两种,如:网页分类{政治,经济,体育}

类别关系

  1. 水平分类:类别之间无包含关系

  2. 层级分类:类别形成等级关系

分类器的分类:

  1. 概率分类器:Naive Bayes(NB,朴素贝叶斯) ,EM(Expectation–Maximization)最大化期望

    1. 计算待分类对象属于每个类别的概率,选择概率最大的类别作为最终输出

  2. 空间:Perceptron(感知机), SVM( Support Vector Machine 支持向量机)

  3. 其他:KNN

以新闻分类为例子说明机器学习的流程。

  1. 特征表示:x={昨日,是,国内,投资,市场...}

  2. 特征选择:x={国内,投资,市场...}

  3. 模型选择:朴素贝叶斯分类器

  4. 训练数据:(x,y)1,(x,y)2,(x,y)3,...

  5. 模型训练:learn.exe trainingDataFile model

  6. 测试(分类):classify.exe model newDataFile

  7. 评测:Accuracy:90%

其中选择朴素贝叶斯分类器的原因:

  1. 数据量大

  2. 需要快速,高效

  3. 可以分布式

朴素贝叶斯分类(Naive Bayes,NB)

基于贝叶斯原理

  1. P(X):待分类对象自身的概率,可忽略(我们主要是比较同一个对象分别属于不同分类的概率大小关系,没必要求出概率的具体值)

  2. :每个类别的先验概率,如P(军事)

  3. :每个类别产生该对象的概率

  4. :每个类别产生该特征的概率,如P(苹果|科技)

注意 X 属于yi概率,我将其表示表示每个单词的联合概率,单词联合概率不好求,所以我们假设文档中每个词是独立,由联合概率的独立性推出第三个式子。

  随机变量X,Y是相互独立。

注意:

     由于每个单词的乘积,如果某个词在某个类型出现零次,那么就会造成概率为0的情况,这样造成文章属于该分类的概率为0.我们要进行平滑处理(打土豪分田地),这里就用加一平滑(拉普拉斯平滑),就是给每一个单词加一个默认个数:可以是0.1或者其他数据,这要需要给单词总数添加一个词表的个数。这个平滑是加在训练阶段,在分类时,如果新数据出现整个训练词表中都没有出现的词,我目前做法是丢弃。

     数据稀疏:是机器学习中很大的问题,比拉普拉斯平滑更好的解决数据稀疏的方法是:通过聚类将未出现的词找出系统相关词,根据相关词的概率求一个平均值。如果:系统有“苹果”,“葡萄”等词,但是没有“榴莲”,我们可以根据“苹果”,“葡萄”等平均值作为“榴莲”的概率,这样跟合理。

     在计算机中运算,概率为(0,1)之间的小数,连续乘积容易造成溢出。又因为我们是比较文章与分类概率大小,所以我们可以log(xy)=log(x)+log(y) 将连乘改成连加。log 函数单调递增。如果 x>y 则 log(x)>log(y)

参数估计

也就如何求各个概率。

策略:最大似然估计(maximum likelihoodestimation,MLE)

先验概率:

Count(yi):类别为yi 的对象在训练数据中出现的次数。

:所有文档数

Count(xj,yi):特征 xj 和类别 yi 在训练数据中同时出现的次数

Count(yi):类别 yi 总词数。

预测

给定 x,计算所有的p(yi|x),选择概率值最大的yi 作为输出。

评测

  1. 准确度 Accuracy:(C11+C22)/(C11+C12+C21+C22)

  2. 精确率Precision(y1):C11/(C11+C21)

  3. 召回率Recall(y1):C11/(C11+C12)

准确度只能从整体上评测分类器。

如果想知道某个分别上的分类精准情况,可以用精准率。

精准率:是分类器认为某一类中,实际是这一类的比例。

          召回率对于某些情况很重要。像垃圾邮件分类器。如果我们将一份正常邮件分成垃圾邮件,和将垃圾邮件分成正常邮件,哪个危害大?当然是将正常邮件分成垃圾邮件,因为一旦误分成垃圾邮件,客户就丢失这封邮件的信息,但是将垃圾邮件误分成正常邮件,只不过浪费客服几秒种,删除就行了。所以这是正常召回率就相当重要,我们要看有多少正常邮件被召回,我们尽量要让正常邮件的召回率为100%。

朴素贝叶斯分类特点

优点

  1. 简单有效

  2. 结果是概率(软性分类),对二值和多值同样适用。

  3. 数据量大、

  4. 需要快速,高效

  5. 可以分布式

缺点

  1. 独立性假设有时不合理。(如果需要不假设独立性,可以用最大熵分类)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一次实践:给自己的手机摄像头进行相机标定

文章目录 1. 问题引入2. 准备工作2.1 标定场2.2 相机拍摄 3. 基本原理3.1 成像原理3.2 畸变校正 4. 标定解算4.1 代码实现4.2 详细解析4.2.1 解算实现4.2.2 提取点位 4.3 解算结果 5. 问题补充 1. 问题引入 不得不说,现在的计算机视觉技术已经发展到足够成熟的阶段…

用于视觉的MetaFormer基线模型

摘要 https://arxiv.org/pdf/2210.13452 摘要——MetaFormer,即Transformer的抽象架构,已被发现在实现竞争性能中发挥着重要作用。在本文中,我们再次通过将研究重点从令牌混合器(token mixer)设计转移开,来…

leetcode每日一题day19(24.9.29)——买票需要的时间

思路:对于位置k在队伍最末尾时,位置k前的人对于某一个人需要等的时间为 ​​​​​​​min(tickets[k],tickets[i]) 对于当前的人前方的的人可以使用上述策略,但对于后方由于当前的人有更高的优先,而导致情况有所不…

51单片机应用开发---keil 创建一个新工程并用Protues 8仿真(以点亮LED为例)

实现目标 1、掌握keil V5软件 创建一个新工程; 2、具体目标:1.会新建一个工程;2.编程实现点亮开发板的LED1. 一、新建工程步骤 1.1 在桌面上新建一个名字为 LED的文件夹 1.2 双击打开Keil uVision5 软件,点击 Project —>…

目标检测技术的发展:从R-CNN、YOLO到DETR、DINO

“深度人工智能”是成都深度智谷科技旗下的人工智能教育机构订阅号,主要分享人工智能的基础知识、技术发展、学习经验等。此外,订阅号还为大家提供了人工智能的培训学习服务和人工智能证书的报考服务,欢迎大家前来咨询,实现自己的…

修改Kali Linux的镜像网站

由于官方的镜像可能会出现连接不上的问题导致无法安装我们所需要的包,所以需要切换镜像站为国内的,以下是一些国内常用的Kali Linux镜像网站,它们提供了与Kali Linux官方网站相同的软件包和资源,但访问速度更快: #官方…

【CKA】二、节点管理-设置节点不可用

2、节点管理-设置节点不可用 1. 考题内容: 2. 答题思路: 先设置节点不可用,然后驱逐节点上的pod 这道题就两条命令,直接背熟就行。 也可以查看帮助 kubectl cordon -h kubectl drain -h 参数详情: –delete-empty…

User-Agent在WebMagic爬虫中的重要性

对于需要从网站上抓取数据的开发者来说,WebMagic是一个强大的工具。它是一个简单灵活的Java爬虫框架,用于抓取网页数据。在爬虫技术中,User-Agent(用户代理)是一个关键的HTTP请求头,它告诉服务器关于客户端…

LeetCode 面试经典150题 50.Pow(x,n)

题目&#xff1a;实现 pow(x, n) &#xff0c;即计算 x 的整数 n 次幂函数&#xff08;即&#xff0c; &#xff09;。 思路&#xff1a; 代码&#xff1a; class Solution {public double myPow(double x, int n) {double ans 1;long N n;if (N < 0) {N -N;x 1 / x;}…

YOLOv11改进策略【损失函数篇】| Shape-IoU:考虑边界框形状和尺度的更精确度量

一、本文介绍 本文记录的是改进YOLOv11的损失函数&#xff0c;将其替换成Shape-IoU。现有边界框回归方法通常考虑真实GT&#xff08;Ground Truth&#xff09;框与预测框之间的几何关系&#xff0c;通过边界框的相对位置和形状计算损失&#xff0c;但忽略了边界框本身的形状和…

机器学习模型评估

前言 承接上篇讲述了机器学习有哪些常见的模型算法&#xff0c;以及适用的场景&#xff0c;本篇将继续讲述如何评估模型。模型评估的目的是选出泛化能力强的模型。泛化能力强表示模型能很好地适用于未知的样本&#xff0c;模型的错误率低、精度高。本文将从评估方法和评估指标…

汽车3d动画渲染选择哪个?选择最佳云渲染解决方案

面临汽车3D动画渲染挑战&#xff1f;选择正确的云渲染服务至关重要。探索最佳解决方案&#xff0c;优化渲染效率&#xff0c;快速呈现逼真动画。 汽车3d动画渲染选择哪个&#xff1f; 对于汽车3D动画渲染&#xff0c;选择哪个渲染器取决于你的项目需求、预算和期望的效果。Ble…

计算机毕业设计 基于协同过滤算法的个性化音乐推荐系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

<<机器学习实战>>10-11节笔记:生成器与线性回归手动实现

10生成器与python实现 如果是曲线规律的数据集&#xff0c;则需要把模型变复杂。如果是噪音较大&#xff0c;则需要做特征工程。 随机种子的知识点补充&#xff1a; 根据不同库中的随机过程&#xff0c;需要用对应的随机种子&#xff1a; 比如 llist(range(5)) random.shuf…

Ubuntu下安装向日葵:闪退

下载 https://sunlogin.oray.com/download 初次安装 $ sudo dpkg -i SunloginClient_15.2.0.63064_amd64.deb 正在选中未选择的软件包 sunloginclient。 (正在读取数据库 ... 系统当前共安装有 234281 个文件和目录。) 准备解压 SunloginClient_15.2.0.63064_amd64.deb ..…

助农小程序|助农扶贫系统|基于java的助农扶贫系统小程序设计与实现(源码+数据库+文档)

助农扶贫系统小程序 目录 基于java的助农扶贫系统小程序设计与实现 一、前言 二、系统功能设计 三、系统实现 5.1.1 农户管理 5.1.2 用户管理 5.1.3 订单统计 5.2.1 商品信息管理 5.3.1 商品信息 5.3.2 订单信息 5.3.3 商品评价 5.3.4 商品退货 四、数据库设计 1、…

帝都程序猿十二时辰

前言 2019年度国产剧《长安十二时辰》火了&#xff0c;其口碑榜首、节奏紧凑、贴合原著、电影质感&#xff0c;都是这部剧的亮点。而最令人震撼的还是剧中对大唐盛世的还原&#xff0c;长安街坊的市容市貌、长安百姓的生活日常、长安风情的美轮美奂……而关于十二时辰的话题也接…

ubuntu18.04 Anconda安装及使用

1、安装Anaconda 1)下载&#xff1a; 下载链接&#xff1a;https://www.anaconda.com/download#downloads 点击图中Free Download&#xff0c;登录并下在 下载对应版本 2&#xff09;安装 sudo bash Anaconda3-2024.06-1-Linux-x86_64.sh输入后&#xff0c;直接回车安装。 出…

大数据-156 Apache Druid 案例实战 Scala Kafka 订单统计

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

【SQL】筛选字符串与正则表达式

目录 语法 需求 示例 分析 代码 语法 SELECT column1, column2, ... FROM table_name WHERE condition; WHERE 子句用于指定过滤条件&#xff0c;以限制从数据库表中检索的数据。当你执行一个查询时&#xff0c;WHERE 子句允许你筛选出满足特定条件的记录。如果记录满…