朴素贝叶斯算法

朴素贝叶斯算法

1、概率基础

联合概率:包含多个条件且同时成立的概率

在这里插入图片描述
条件概率:事件A再另外一个事件B已经发生的条件下的发生概率。

在这里插入图片描述
条件概率的成立,A1A2相互独立

2、朴素贝叶斯算法

特征独立

P(科技|词1、词2、词3…) 文档1:词1

朴素贝叶斯公式:

在这里插入图片描述

w----给定文档的特征值(频数统计,预测文档提供)

c-----文档类别

P©:每个文档类别的概率

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

P(F1,F2,F3…)预测文档中每个词的概率

给了一些词,我们要求某些特征的概率

p(w)是公共部分可以忽略

在这里插入图片描述

例子:

在这里插入图片描述

用tf-idf统计每篇文档每个词的重要性,重要的词

预测文档:

P(科技|影院、支付宝、云计算)=P(影院、支付宝、云计算|科技)P(科技)

P(娱乐|影院、支付宝、云计算)=P(影院、支付宝、云计算|娱乐)P(娱乐)

最终预测文档为科技类文档

属于某个类别是0合适否?不合适

拉普拉斯平滑:

在这里插入图片描述

加入拉普拉斯平滑系数之后:

加了一个常数,和一个频率

在这里插入图片描述
在这里插入图片描述

比如说这里的阿尔法设置为1,一般是1,m是它的特征词次数,这里是4

朴素贝叶斯API:sklearn.naive_bayes.MultinomialNB

里面一个参数阿尔法就是拉普拉斯平滑系数

朴素贝叶斯文章分类例子:

需求:sklearn20类新闻分类

20个新闻组数据包含20个主题18000个新闻组帖子

案例流程:

1、加载20类新闻数据,进行分割

分成训练集和测试集

x_train,x_test,y_train,y_test =train_test_split(news.data,news.target ,test_size=0.25)

2、生成文章特征词

(1)先对数据集进行特征抽取

# 对数据集进行特征抽取
tf = TfidfVectorizer()

(2)以训练集当中词的列表进行每篇文章重要性统计

x_train = tf.fit_transform(x_train)
x_test = tf.transform(x_test)

3、朴素贝叶斯estimator流程进行预估

(1)输入到贝叶斯模型中

mlt = MultinomialNB(alpha=1.0)
mlt.fit(x_train,y_train)
# 预测
y_predict = mlt.predict(x_test)

(2)评估 预测和真实值

准确度是先对x_test进行预测,然后与y_test进行比较

mlt.score(x_test,y_predict)

不需要调参

朴素贝叶斯的总结:

优点:数学理论,对缺失数据不敏感,算法简单,速度快,分类准确度高。

缺点:样本属性独立性假设,样本有关联效果不好。

在这里插入图片描述

应用场景:文本分类

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值