朴素贝叶斯分类方法

简介: 朴素贝叶斯分类 是对相对独立的样本间,根据特征以及类别计算相应的后验概率,所有可能的分类中概率最高的即为预测的结果。

一、什么是朴素贝叶斯分类方法

原理

朴素 即假设各样本之间相互独立

贝叶斯 就是概率中的贝叶斯公式

朴素贝叶斯分类 是对相对独立的样本间,根据特征以及类别计算相应的后验概率,所有可能的分类中概率最高的即为预测的结果。

举例

2345_image_file_copy_68.jpg

上图为某垃圾广告分类,通过观察可以发现产品类所占比例最大,即将其预测为产品类垃圾广告

二、概率基础

2.1 概率(Probability)定义

概率定义为一件事情发生的可能性

如:扔出一个硬币,结果头像朝上的几率,某天是晴天的可能性,P(X) : 取值在[0, 1]

2.2 条件概率与联合概率

联合概率

包含多个条件,且所有条件同时成立的概率

记作:P(A,B)

特性:P(A, B) = P(A)P(B)

条件概率

就是事件A在另外一个事件B已经发生条件下的发生概率

记作:P(A|B)

特性:P(A1,A2|B) = P(A1|B)P(A2|B)

注意:此条件概率的成立,是由于A1,A2相互独立的结果

2.3 贝叶斯公式

2345_image_file_copy_69.jpg

那么这个公式如果应用在文章分类的场景当中,我们可以这样看:

2345_image_file_copy_70.jpg

公式分为三个部分:

P(c):每个文档类别的概率(某文档类别数/总文档数量)

P(W│C):给定类别下特征(被预测文档中出现的词)的概率计算方法:

P(F1│C)=Ni/N (训练文档中去计算)

Ni为该F1词在C类别所有文档中出现的次数

N为所属类别C下的文档所有词出现的次数和

P(F1,F2,…) 预测文档中每个词的概率如果计算两个类别概率比较:

所以我们只要比较前面的大小就可以,得出谁的概率大

2345_image_file_copy_71.jpg

所以我们只要比较前面的大小就可以,得出谁的概率大

三、文章分类计算

假设我们从训练集中得到以下特征

2345_image_file_copy_72.jpg

计算结果为:

2345_image_file_copy_73.jpg

我们计算出来某个概率为0,合适吗?

四、拉普拉斯平滑系数

目的:防止计算出的分类概率为0

2345_image_file_copy_74.jpg

P(娱乐|影院,支付宝,云计算) =P(影院,支付宝,云计算|娱乐)P(娱乐) =P(影院|娱乐)*P(支付宝|娱乐)P(云计算|娱乐)P(娱乐)=(56+1/121+4)(15+1/121+4)(0+1/121+14)(60/90) = 0.00002

五、API

sklearn.naive_bayes.MultinomialNB(alpha = 1.0)
  • 朴素贝叶斯分类
  • alpha:拉普拉斯平滑系数

六、案例

20类新闻分类

2345_image_file_copy_75.jpg

分析:

  • 分割数据集
  • tfidf进行的特征抽取朴素贝叶斯预测

2345_image_file_copy_76.jpg

2345_image_file_copy_77.jpg

六、总结

优点:

朴素贝叶斯模型发源于古典数学理论,有稳定的分类效率。对缺失数据不太敏感,算法也比较简单,常用于文本分类。

分类准确度高,速度快

缺点:

由于使用了样本属性独立性的假设,所以如果特征属性有关联时其效果不好。

目录
相关文章
|
消息中间件 JSON Java
RabbitMQ的springboot项目集成使用-01
RabbitMQ的springboot项目集成使用-01
|
运维 Cloud Native Devops
云原生时代下的运维新思维
本文将探索在云计算和容器化技术日益成熟的今天,运维(Operations)领域的变革之路。我们将从传统运维的痛点出发,逐步引入云原生的概念,并详细讨论DevOps、持续集成/持续部署(CI/CD)、微服务架构等现代运维实践如何重塑IT运维工作。最后,通过案例分析,展示这些理念和技术在实际业务中如何落地,以及它们对运维团队技能要求的影响。
|
数据可视化 数据挖掘 项目管理
R 语言入门与介绍
R 语言入门与介绍
162 0
|
数据可视化
数据分享|R语言逐步回归模型对电影票房、放映场数、观影人数预测可视化1
数据分享|R语言逐步回归模型对电影票房、放映场数、观影人数预测可视化
|
数据可视化
数据分享|R语言逐步回归模型对电影票房、放映场数、观影人数预测可视化2
数据分享|R语言逐步回归模型对电影票房、放映场数、观影人数预测可视化
|
Java 索引
java常见的报错_java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
开发中突然报出:java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
java常见的报错_java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
|
人工智能 自然语言处理 算法
基于知识图谱的电影知识问答系统:训练TF-IDF 向量算法和朴素贝叶斯分类器、在 Neo4j 中查询
基于知识图谱的电影知识问答系统:训练TF-IDF 向量算法和朴素贝叶斯分类器、在 Neo4j 中查询
基于知识图谱的电影知识问答系统:训练TF-IDF 向量算法和朴素贝叶斯分类器、在 Neo4j 中查询
|
运维 Oracle 关系型数据库
实战篇:Oracle DataGuard 出现 GAP 修复完整步骤
实战篇:Oracle DataGuard 出现 GAP 修复完整步骤
实战篇:Oracle DataGuard 出现 GAP 修复完整步骤
|
索引 Python
pyhon tuple 元组
pyhon tuple 元组